Невозможно установить Gems из Vendor Cache - PullRequest
4 голосов
/ 10 февраля 2012

Несмотря на то, что Capistrano выполняет установку комплекта с флагом --local гемы из кэша поставщика НЕ ​​УСТАНАВЛИВАЮТСЯ в путь общего комплекта. Вместо этого мне сообщают, что:

Кажется, что некоторые драгоценные камни отсутствуют в вашем каталоге vendor / cache.

Не удалось найти libv8-3.3.10.4 ни в одном из источников

libv8-3.3.10.4 определенно находится в вендоре / кэше. Кто-нибудь знает, почему bundler не устанавливает драгоценные камни из кэша?

Полная команда, которую выполняет Capistrano, приведена ниже.

"cd /home/ari/apps/air/releases/20120209214139 && bundle install --gemfile /home/ari/apps/air/releases/20120209214139/Gemfile --path /home/ari/apps/air/shared/bundle --deployment --local --quiet --without development test"

1 Ответ

0 голосов
/ 20 июня 2012

С bundle help install:

--local
          Do not attempt to connect to rubygems.org,  instead  using  just
          the  gems already present in Rubygems' cache or in vendor/cache.
          Note that if a more appropriate platform-specific gem exists  on
          rubygems.org, it will not be found.

Примечание: libv8 создает собственные расширения при первой установке.Это может вызвать проблемы, если вы продадите гем для одной платформы и попытаетесь использовать его на другой.

Либо гемы отсутствуют в кэше Rubygems на сервере, либо гемы отсутствуют в vendor/cacheв вашем развертывании.Поэтому, если вы видите драгоценный камень в вашем каталоге vendor/cache, то, возможно, упаковщик не знает, где искать ваши vendor/cache драгоценные камни.

Что выдает cd /home/ari/apps/air/releases/20120209214139 && bundle list?Если его там нет, но вы можете найти его на сервере, то вы знаете, что упаковщик не знает, где находятся гемы vendor/cache.

Попробуйте сделать gem env через свой логин и сравнитепротив gem env выход через Capistrano.Посмотрите, отличаются ли выходные данные GEM PATHS.

...