当前位置:  开发笔记 > 后端 > 正文

可以将"gem install"配置为在/ usr/bin /之外安装可执行文件吗?

如何解决《可以将"geminstall"配置为在/usr/bin/之外安装可执行文件吗?》经验,为你挑选了2个好方法。

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

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

该路径似乎没有硬编码到gemspec文件中,所以我不明白为什么这不可能(尽管我对Ruby/Gems的经验很少)



1> BryanH..:

我正在添加这个作为答案,以便当我再次遇到这个问题时很明显:)

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

您可能还希望删除旧路径 $PATH

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

gem: --bindir /usr/bin

这会覆盖gem,因此它总是使用/ usr/bin /作为bin目录.

无需更新路径(特别是多用户机器的杂乱).



2> csl..:

请参阅http://www.rubygems.org/read/chapter/11并指定~/.gemrc定义gemhome变量的定义.

例如:

gemhome: /usr/local/rubygems

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

或者,您可以设置GEM_HOMEenv变量:

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

更新(10年后):

安德烈罗迪奥诺夫建议使用

gem: --bindir /usr/bin


谢谢!我希望你不介意我更新你的答案.我在rubygems.rb周围进行了测试 - bin目录附加到gemhome,似乎没有任何明显的方法来覆盖它,但是将gemhome设置为/Library/Ruby/Gems/1.8/(在OS X上)会给出一个bin路径/Library/Ruby/Gems/1.8/bin这是完美的
嘎,不太完美.Mac发行版有一个默认的/ usr/bin覆盖.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有