Подтвердить что ты не робот

Установка gem в локальной папке

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

$ 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. 

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

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

Я запускаю Linux, но не уверен, какой вкус.

4b9b3361

Ответ 1

Добавьте флаг --local в свою установку:

gem install --local request-log-analyzer

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

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

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

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

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

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

Ответ 2

Ты можешь попробовать:

gem install --user-install gem_name

Ответ 3

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

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