Можно ли настроить gem install для установки исполняемых файлов вне / usr / bin / по умолчанию? - PullRequest
18 голосов
/ 02 декабря 2008

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

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

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

Ответы [ 4 ]

20 голосов
/ 21 апреля 2010

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

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

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

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

gem: --bindir /usr/bin

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

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

13 голосов
/ 02 декабря 2008

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

Например:

gemhome: /usr/local/rubygems

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

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

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

Обновление (10 лет спустя):

Андрей Родионов ниже предлагает использовать

gem: --bindir /usr/bin
2 голосов
/ 02 декабря 2008

В OS 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?

0 голосов
/ 24 апреля 2019

Чтобы установить исполняемый файл в нужный каталог, можно использовать параметр командной строки --bindir:

sudo gem install thegemname --bindir /usr/local/rubygems/bin

Пробовал эту опцию успешно с версией gem 2.0.14.1.

Чтобы получить дополнительные параметры командной строки, введите gem install --help в командной строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...