Rubygems, Bundler и RVM путаница - PullRequest
       12

Rubygems, Bundler и RVM путаница

63 голосов
/ 05 января 2011

Я прочитал « Отношения между Rubygems, Bundler и RVM », прежде чем спросить его снова.

Ну, есть много подобных вопросов, но люди, которые ответили, говорят, что они работают с Rubygems, RVM и Bundler, и они не объяснили, как каждый из них работает в отдельности.

Я действительно смущен тем, как эти три работают изолированно, когда мы устанавливаем драгоценные камни.Пожалуйста, не говорите мне, как вы работаете, это поможет мне, но я не узнаю, что происходит, когда мы с ними играем.

Мое замешательство может быть разбито на эти вопросы.Где установлен гем, когда:

  1. У меня просто есть Rubygems (без RVM или Bundler)?
  2. Установлены Rubygems и RVM?
  3. Rubygems, RVM и Bundler

Пожалуйста, помогите мне разобраться в этом с помощью ресурсов в Интернете или подробных ответов.

Ответы [ 4 ]

38 голосов
/ 05 января 2011
  1. Чтобы узнать, куда устанавливаются гемы, запустите echo $GEM_HOME в терминале.
  2. При использовании RVM гемы устанавливаются в вашу установку RVM, так как она меняет $ GEM_HOME. Запуск echo $GEM_HOME теперь покажет путь к вашей установке RVM.
  3. Когда в смесь добавляется Bundler, gems будет либо установлен в $GEM_HOME, либо, если вы укажете путь при запуске bundle install, будет установлен по этому пути. Чтобы узнать, где находится драгоценный камень через Bundler, вы можете использовать bundle show gemname, чтобы получить полный путь.
4 голосов
/ 05 января 2011

Используйте gem env, чтобы перечислить пути к драгоценным камням в каждом контексте.

Без RVM gem env сообщит пути к системным библиотекам гемов.

С помощью RVM gem env сообщит о путях к библиотеке гемов, управляемых RVM.

Bundler управляет зависимостями приложений и устанавливается в библиотеку gem в вашей среде. Если вы используете RVM + Bundler, гемы будут установлены в каталогах управляемых гемов RVM. Если вы используете его без RVM, bundler установит гемы в системные каталоги гемов.

0 голосов
/ 09 июня 2011

Чтобы найти путь, где установлен драгоценный камень, используйте:

gem which gem_name

Чтобы найти исполняемые файлы (например, html2haml), используйте:

which executable_name

Чтобы избежать ввода bundle exec html2haml, который рекомендуется командой Bundler, используйте мой rubygems-bundler gem.

0 голосов
/ 06 января 2011

Я тоже пытаюсь понять, как это работает. Блог " Советы по использованию Ruby, RVM, Passenger, Rails, Bundler, ... в разработке " помог мне получить лучший обзор.

Кстати, это перевод французской статьи, французская версия лучше.

...