Эффективная разница между «gem install --bindir ~ / path / to / folder» и «--user-install» в Ruby

1119
jsejcksn

В данный момент у меня нет желания изучать Ruby, но я просто хочу знать, в чем разница, gem install --bindir ~/path/и gem install --user-installпока каждый из путей в моем $PATH.

2

1 ответ на вопрос

3
JakeGould

Посмотрите ссылку на команду Ruby GEM здесь :

-n, -​-bindir DIR - Directory where binary files are located  -​-[no-]user-install - Install in user’s home directory instead of GEM_HOME. 

Эффективно и оперативно вы - как конечный пользователь, использующий Ruby - действительно не заметите разницы, если пути к файлам будут в вашем $PATH. Но каждая команда явно имеет дело с различным аспектом файловой системы установки Ruby GEM.

- -bindir

-​-bindirотносится к binичной directory. Многие Ruby GEMS устанавливают файлы сценариев Ruby как часть своей основной библиотечной функции, но также устанавливают «двоичный файл» как часть процесса установки. Это означает, что если вы программист на Ruby, вы, возможно, захотите установить Ruby GEM, чтобы иметь доступную ссылку на его основной код в вашем собственном коде. Но двоичный файл, который выполняет эквивалентную или «вспомогательную» задачу, устанавливается вместе с этими файлами библиотеки Ruby GEM. С точки зрения управления файловой системой, некоторые пользователи могут захотеть установить эти двоичные файлы в отдельный каталог вместо каталога по умолчанию Ruby GEMs.

- -user установить

Таким образом, в то время -​-bindirкак опция контроля, где устанавливаются двоичные файлы, связанные с Ruby GEMs, -​-user-installявляется ручным переопределением для того места, где устанавливаются все файлы Ruby GEM; двоичные файлы, библиотеки и тому подобное. Используя его, -​-user-installвы инструктируете Ruby GEM устанавливать GEM в ~/.gemкаталоге, который, конечно же, находится в домашнем каталоге вашего пользователя. Без этой -​-user-installопции файлы Ruby GEM будут установлены везде, где находится GEM_HOMEпуть по умолчанию .

Изменение пути к файлу по умолчанию с помощью --user-installничего не повлияет на работу. Ruby GEM будут просто устанавливаться в ~/.gemкаталог, который находится в вашем домашнем каталоге, и Ruby будет знать, как проверить там, а также свой собственный путь по умолчанию для обновлений.

Спасибо, что нашли время, чтобы уточнить это для меня. Повлияет ли использование `--user-install` на самоцвет (например, на [Jekyll] (https://jekyllrb.com/)) на работу, будущие обновления и т. Д.? Или Ruby был написан для работы одинаково, независимо от того, находятся ли гемы в `GEM_HOME` или где-то еще? jsejcksn 8 лет назад 0
@jsejcksn Изменение пути к файлу по умолчанию с помощью `--user-install` не окажет негативного влияния на работу. Независимо от того, какой новый путь будет добавлен, он будет просто добавлен в ваш файл `~ / .gemrc`, чтобы ваша локальная установка Ruby могла отслеживать его, как и все остальное, и делать все, что нужно для поддержания работоспособности. JakeGould 8 лет назад 0
У меня нет файла `~ / .gemrc`, даже после установки. Вы подразумевали, что установка создаст его или это еще один шаг, который мне нужно сделать вручную? jsejcksn 8 лет назад 0
@jsejcksn Мой плохой на `~ / .gemrc`; Я перепутал концепции и теперь понимаю, что локально установленные Ruby GEM будут установлены по пути `~ / .gem`, который, конечно же, находится в домашнем каталоге вашего пользователя. Обновил мой ответ, чтобы прояснить это. JakeGould 8 лет назад 0

Похожие вопросы