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

Можно ли настроить "gem install" для установки исполняемых файлов вне/usr/bin/по умолчанию?

По умолчанию, когда вы sudo gem install thegemname, он установит исполняемые файлы в /usr/bin/

Есть ли способ изменить это? Например, чтобы установить их в /usr/local/rubygems/bin (или любой другой путь)?

Путь, по-видимому, не жестко закодирован в файл gemspec, поэтому я не понимаю, почему это не должно быть возможным (хотя у меня очень мало опыта с Ruby/Gems)

4b9b3361

Ответ 1

Смотрите http://www.rubygems.org/read/chapter/11 и укажите ~/.gemrc, который определяет переменную gemhome.

Например:

gemhome: /usr/local/rubygems

Вы также можете поместить этот файл в /etc/gemrc

В качестве альтернативы вы можете установить GEM_HOME env-variable:

$ export GEM_HOME=/tmp/gemtest
$ gem install bundler
$ ls /tmp/gemtest/bin/
bundle

Ответ 2

Я добавляю это как ответ, так что это очевидно, когда я снова сталкиваюсь с этой проблемой:)

Сначала переместите все ячейки в /var/lib/gems/1.8/bin/ на /usr/bin/. Если вы этого не сделаете, то удаление или обновление драгоценного камня не приведет к удалению двоичного файла из исходного каталога bin.

Вы также можете удалить старый путь из $PATH

Затем отредактируйте ~/.gemrc и добавьте (или обновите) следующую строку:

gem: --bindir /usr/bin

Это переопределяет драгоценный камень, так что он всегда использует/usr/bin/как каталог bin.

Не нужно обновлять путь (особенно беспорядочный для многопользовательских машин).

Ответ 3

В ОС X исполняемый каталог переопределяется на /usr/bin в файле /Library/Ruby/Site/1.8/rubygems/defaults.rb

# The default directory for binaries
def self.default_bindir
  if defined? RUBY_FRAMEWORK_VERSION then # mac framework support
    '/usr/bin'
  else # generic install
    ConfigMap[:bindir]
  end
end

Как хакерская работа, я изменил /usr/bin на мое место в выбранном месте, которое работает правильно. Кажется, что нет никакого способа переопределить bindir из конфигурации ~/.gemrc?