能否将 "gem install "配置为默认在/usr/bin/之外安装可执行文件?[英] Can "gem install" be configured to install executables outside /usr/bin/ by default?

本文是小编为大家收集整理的关于能否将 "gem install "配置为默认在/usr/bin/之外安装可执行文件?的处理方法,想解了能否将 "gem install "配置为默认在/usr/bin/之外安装可执行文件?的问题怎么解决?能否将 "gem install "配置为默认在/usr/bin/之外安装可执行文件?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

默认情况下,当您sudo gem install thegemname它将将可执行文件安装到/usr/bin/

有没有办法改变此问题?例如,将它们安装到/usr/local/rubygems/bin(或任何其他路径)中?

这条路径似乎并没有被用硬编码为GEMSPEC文件,所以我不明白为什么这是不可能的(尽管我对Ruby/gems的经验很少)

推荐答案

请参阅 并指定定义Gemhome变量的~/.gemrc.

例如:

gemhome: /usr/local/rubygems

您也可以将此文件放在/etc/gemrc

另外,您可以设置 >

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

更新(10年后):

Andrey Rodionov建议使用

gem: --bindir /usr/bin

其他推荐答案

我将其添加为答案,因此当我再次遇到这个问题时,很明显:)

首先,将/var/lib/gems/1.8/bin/中的所有垃圾箱移至/usr/bin/.如果您不这样做,那么卸载或更新宝石将不会从原始bin目录中删除二进制文件.

您也可能希望从$PATH

中删除旧路径

接下来,编辑~/.gemrc并添加(或更新)以下行:

gem: --bindir /usr/bin

这覆盖了宝石,因此它始终使用/usr/bin/作为bin dir.

无需更新路径(尤其是多用户机器的混乱).

其他推荐答案

OS X上,可执行目录被覆盖为/Library/Ruby/Site/1.8/rubygems/defaults.rb在文件/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更改为所需的bin位置,该位置正常工作.似乎没有任何方法可以从~/.gemrc config?

中覆盖bindir

本文地址:https://www.itbaoku.cn/post/786325.html