Рубигемы, путаница Bundler и RVM
Я прочитал "Отношения между Rubygems, Bundler и RVM", прежде чем повторять его.
Ну, таких вопросов много, но люди, которые ответили, говорят, что работают с Rubygems, RVM и Bundler, и они не объяснили, как каждая из них работает изолированно.
Я действительно смущен тем, как три работают изолированно, когда мы устанавливаем драгоценные камни. Пожалуйста, не говорите мне, как вы работаете, что мне поможет, но я не узнаю, что происходит, когда мы с ними играем.
Мое замешательство можно разбить на эти вопросы. Где камень установлен, когда:
- У меня только Rubygems (без RVM или Bundler)?
- Установлены Rubygems и RVM?
- Установлены Rubygems, RVM и Bundler?
Пожалуйста, помогите мне понять этот материал либо с помощью ресурсов в Интернете, либо с помощью ваших подробных ответов.
Ответы
Ответ 1
- Чтобы узнать, где установлены камни, запустите
echo $GEM_HOME
в терминале.
- При использовании RVM в вашу установку RVM устанавливаются драгоценные камни, поскольку он изменяет $GEM_HOME. Выполнение
echo $GEM_HOME
теперь будет показывать путь к вашей установке RVM.
- Когда Bundler добавлен в микс, драгоценные камни будут установлены либо в
$GEM_HOME
, либо если вы укажете путь при запуске bundle install
, будет установлен на этот путь. Чтобы узнать, где драгоценный камень через Bundler, вы можете использовать bundle show gemname
, чтобы получить полный путь.
Ответ 2
Используйте gem env
, чтобы перечислить пути gem в каждом контексте.
Без RVM gem env
сообщается о путях библиотеки системных драгоценных камней.
С RVM gem env
будут сообщаться пути библиотеки библиотеки, управляемые RVM.
Bundler управляет зависимостями приложений и устанавливается в библиотеку gem в вашей среде. Если вы используете RVM + Bundler, драгоценные камни будут установлены в управляемых RVM каталогах драгоценных камней. Если вы используете его без RVM, bundler установит драгоценные камни в справочниках системных драгоценных камней.
Ответ 3
Я также пытаюсь понять, как это работает. Блог "" Советы по использованию Ruby, RVM, Passenger, Rails, Bundler,... в разработке" помогли мне получить лучший обзор.
Кстати, это перевод французской статьи, французская версия лучше.
Ответ 4
Чтобы найти путь, в котором установлен камень, выполните следующие действия:
gem which gem_name
Чтобы найти исполняемые файлы (например, html2haml), используйте:
which executable_name
Чтобы избежать ввода bundle exec html2haml
, который рекомендуется командой Bundler, используйте мой rubygems-bundler gem.