установка пакета и RVM

#ruby-on-rails #rvm #bundler

#ruby-on-rails #rvm #bundler

Вопрос:

Я запустил «bundle install» в существующем приложении Rails 3, в котором есть драгоценные камни в vendor / cache (я предполагаю, что они были упакованы с помощью «bundle package» ранее) и действительные Gemfile и Gemfile.блокировка файлов.

Что я увидел, так это то, что он создал folder .bundle в моем домашнем каталоге.

Я также использую RVM. Когда я попробовал «список драгоценных камней», я не увидел ни одного из установленных драгоценных камней в vendor / cache.

Я делаю что-то не так? Везде, где говорится в статьях о пакете, выполните «bundle» или «bundle install», чтобы установить драгоценные камни в Gemfile и Gemfile-файл.блокировка файлов. Связана ли проблема с использованием RVM?

Спасибо за любой совет.

Комментарии:

1. Посмотрите в папке, возвращенной rvm gemdir . Вот где они должны быть установлены.

2. Но их там нет? Должен ли я выполнить следующее: установка пакета rvm gemdir ?

3. По сути, bundler создает структуру каталога следующим образом: ruby/1.8/{bin, кэш, документ, драгоценные камни, спецификации}. Тогда мой вопрос заключался бы в том, как заставить bundle install создать эту структуру каталога в соответствующем rvm ruby, т. Е. поместить кэш пакета. драгоценные камни и спецификации в кэш rvm ruby, драгоценные камни и спецификации? Есть ли способ это сделать?

4. Bundler будет использовать Gemfile для установки в текущий gemdir. Я думаю , что когда драгоценные камни будут проданы, вам нужно будет сделать это отдельно. Также я не думаю, что в списке драгоценных камней будут показаны продаваемые драгоценные камни (я могу ошибаться). Посмотрите документы. Также может помочь этот Railscast .

Ответ №1:

Если вы дадите аргумент для bundle install , он продолжит установку драгоценных камней внутри этого каталога, даже если вы rm -rf этот каталог и начнете с нуля с чистого bundle install , как отмечено в комментарии Эмиля. Этот новый каталог по умолчанию используется bundler, и он даже заменяет то, что вы объявляете в .rvmrc файле.

Чтобы удалить это ограничение, просто отредактируйте .bundle/config файл и удалите файл с объявлением BUNDLE_PATH , например,

 BUNDLE_PATH: /usr/local/lib/
  

Комментарии:

1. Это то, что, наконец, сделало это за меня. После удаления этой строки в .bundle/config он поместил все в соответствующее rvm место, как мне и было нужно.

Ответ №2:

Загляните rvm env gemdir , также проверьте, что у вас установлено .rvmrc в терминах gemset. Сделайте bundle install , и он должен получить все драгоценные камни.

Проверьте, .bundle выполнив $ cat .bundle , чтобы увидеть его содержимое, и проверьте, копирует ли он драгоценные камни в vendor/ruby . Это будет иметь место только в том случае, bundle install --path vendor/ruby если было предоставлено (Ссылка).

Комментарии:

1. Я нашел проблему. Когда вы предоставляете аргумент для установки пакета, он продолжает устанавливать gems внутри этого каталога, даже если вы rm -rf этот каталог и начинаете с нуля с чистой «установки пакета».

2. Действительно. .bundle необходимо отредактировать, чтобы это не вступило в силу при будущих запусках bundle install .