Установить гем в локальной папке

У меня ограниченные привилегии на общей машине, которую я использую, поэтому я не могу установить гемы так, как я привык. Например:

$ gem install request-log-analyzer
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory. 

Можно ли установить драгоценный камень локально? (если это имеет значение, я пытаюсь установить этот драгоценный камень.)

Я видел несколько постов о переполнении стека, в которых говорилось об использовании Bundler или gemfiles, но я не устанавливаю этот гем для проекта Ruby on Rails - я просто хочу использовать его отдельно.

Я использую Linux, но не знаю, какой именно.

3 ответа

Решение

Добавить --local пометить к вашей установке:

gem install --local request-log-analyzer

Если это вызывает какие-либо проблемы, попробуйте загрузить драгоценный камень вручную и указать gem непосредственно к нему, используя:

gem install --local path/to/gem/filename.gem

Если вы хотите установить его у себя дома, в соответствии с rubygems:

Когда вы используете опцию --user-install, RubyGems установит гемы в каталог внутри вашего домашнего каталога, что-то вроде ~/.gem/ruby ​​/1.9.1. Команды, предоставленные установленными вами камнями, в конечном итоге окажутся в ~/.gem/ruby ​​/1.9.1/bin. Чтобы установленные там программы были доступны для вас, вам нужно добавить ~/.gem/ruby ​​/1.9.1/bin в переменную окружения PATH.

Команда для этого будет просто

gem install --user-install request-log-analyzer

Ты можешь попробовать: gem install --user-install gem_name

Вы можете просто использовать RVM: Ruby Version Manager. Это полный менеджер версий, аналогичный диспетчеру версий узлов (nvm) и т. Д., Который позволяет вам иметь разные версии ruby ​​и разные коллекции гемов для каждого проекта. Это делает работу по сохранению гемов изолированными друг от друга, а также от системного рубина, но за счет изучения полного менеджера версий.

При запуске без рута он устанавливается локально в ~/.rvm и не влияет на других пользователей.

Другие вопросы по тегам