избягвайте проверката на http, когато инсталирате домашно направен скъпоценен камък

Работя върху набор от скъпоценни камъни за моето приложение.

Когато инсталирам някой от моите собствени скъпоценни камъни, програмата за скъпоценни камъни ще провери спецификациите на rubugems (евентуално за зависимости). С подробен флаг мога да виждам съобщения като:

GET http://rubygems.org/latest_specs.4.8.gz
302 Found
GET http://production.s3.rubygems.org/latest_specs.4.8.gz
200 OK
GET http://rubygems.org/specs.4.8.gz

Проблемът е, че работя върху тези скъпоценни камъни и че пакетирам/преинсталирам няколко пъти всеки ден, а процесът на инсталиране е доста дълъг.

Тъй като съм почти сигурен, че всички външни зависимости на gem са изпълнени, има ли начин да кажете на tel gem да не проверява зависимостите от rubygems.org и да избегне евентуално бавния http трафик?

За разбирането,

_dl


person devlearn    schedule 21.09.2010    source източник
comment
да, това върши работа! Благодаря   -  person devlearn    schedule 22.09.2010


Отговори (2)


Ако искате да предпазите неща като rubygems.org от достъп като част от вашата компилация, можете да използвате вътрешен gemserver като GemInABox, за да хоствате скъпоценните камъни, които ще използвате във вашата организация.

След това просто се уверете, че сте предали опциите --clear-sources и --source на gem.

Например:

gem install bundler --clear-sources --source http://your.corporate.gemserver.here.com 

Това ще ви позволи да запазите проблемите със свързаността и изоставането на мрежата от вашата CI компилация, като по този начин елиминирате друг източник на вариации в компилацията.

Преди беше опцията --source на gem да се използва като единствен източник за търсене на gem. От някъде през 2009 г. нататък се промени, за да комбинира източника, предоставен като опция, с източниците по подразбиране, дефинирани за скъпоценни камъни, един от които е http://rubygems.org.

За съжаление, това означаваше, че ако работите с gem в машина, която е затворена и дори не може да има достъп до http прокси, ще откриете, че инсталирането на gem се проваля поради мрежови проблеми, тъй като ще ви омръзне и ще се опита да търси http://rubygems.org, въпреки че сте му казали да не търси там.

Ръководството на Rubygems е малко по-назад от кривата, а опцията --clear-source не е документирана в ръководството. Вижда се само ако погледнете изходния код. Надявам се това да бъде взето и използвано от други, за да им спести малко време.

Наздраве Стюарт

person Stuart Blair    schedule 18.11.2011

Използвате ли бижутер, за да създадете скъпоценния камък?

Можете да използвате rake install, за да инсталирате скъпоценния камък

person jordinl    schedule 21.09.2010
comment
Не, ние не използваме jeweller, скъпоценният камък се инсталира като част от процес, където се извиква командният ред за скъпоценни камъни. Така че наистина имам нужда от gem опция и --ignore-dependencies прави точно това, от което имам нужда. - person devlearn; 27.09.2010