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

Укажите каталог установки gem

У меня здесь проблемы. Я работаю с проектом Rails 2.3 (работая над производственным сервером через ssh - не спрашивайте, почему). Вот Gemfile. Когда delayed_jobs пытается запустить, на выходе говорится, что мне нужно установить жгут пробки. Проблема в том, что gemdir является /var/lib/gems/ 1.8/, и у меня нет правил записи для этого каталога. Однако есть каталог под ~/projects/shared/gems/ruby ​​/1.8/gems, где я могу писать.

Как определить путь установки для драгоценного камня?

4b9b3361

Ответ 1

Вы можете добавить следующее в свой файл config.ru:

ENV['GEM_HOME']="#{ENV['HOME']}/projects/shared/gems/ruby/1.8/gems"
ENV['GEM_PATH']="#{ENV['GEM_HOME']}:/var/lib/ruby/gems/1.8"
require 'rubygems'
Gem.clear_paths

Это скажет вашему стойку, где искать драгоценные камни.

Также настройте свой сервер .bashrc:

export GEM_HOME="$HOME/projects/shared/gems/ruby/1.8/gems"
export GEM_PATH="$GEM_HOME:/var/lib/ruby/gems/1.8"

Ответ 2

Переменная среды GEM_HOME определяет местоположение установки драгоценного камня. Вам нужно установить его в нужное место. Команда является специфичной для ОС.

В Windows это set

set GEM_HOME=[path]/projects/shared/gems/ruby/1.8/gems

Linux будет export

export GEM_HOME=~/projects/shared/gems/ruby/1.8/gems

Ответ 3

Чтобы установить foo gem в указанную папку, используйте параметр --install-dir, т.е.

$ gem install --install-dir /path/to/gems/folder foo

Это помогает, когда:

  • нельзя использовать bundle install - например. если вы хотите установить сам пакет или хотите установить драгоценный камень (который не указан в Gemfile) в папку bundle
  • sudo gem install команда не работает из-за отсутствия разрешений на запись для пути установки по умолчанию.

Надеюсь, что это поможет.

Ответ 4

Вы также можете просто установить путь установки пакета, используя конфигурационный файл Bundler. Я написал сообщение , которое вы можете проверить, если вы найдете его полезным.