如何在RHEL 6/x86-64中扩充Gem搜索路径并安装bones-3.8.4.gem?
如何为自定义安装的Ruby扩充Gem搜索路径
针对你在RHEL 6/x86-64系统中自定义安装Ruby 2.4.4后,需要安装bones-3.8.4.gem并扩充Gem搜索路径的需求,这里提供几种可行的方案:
方法一:临时设置环境变量(单次生效)
这个方法适合单次安装操作,重启终端后配置会失效,不用修改任何文件。
首先,先查看当前Ruby的Gem默认搜索路径:
/tmp/ruby24/bin/gem env path
接着把你的自定义站点目录、厂商目录对应的Gem子路径(通常是{目录}/ruby/gems/2.4.0结构)添加到GEM_PATH环境变量中:
export GEM_PATH="/tmp/ruby24/lib/ruby/gems/2.4.0:/tmp/ruby24p/lib/ruby/gems/2.4.0:/tmp/ruby24p/vendor/lib/ruby/gems/2.4.0:$GEM_PATH"
设置完成后,直接执行安装命令即可:
/tmp/ruby24/bin/gem install bones-3.8.4.gem
方法二:修改Gem配置文件(永久生效)
如果希望后续所有Gem操作都自动识别这些路径,可以修改Gem的配置文件:
- 先找到Gem配置文件的位置:
/tmp/ruby24/bin/gem env gemrc
通常会输出用户家目录下的.gemrc,或者系统级的配置文件路径。
- 编辑该配置文件,添加
gempath配置项,把需要的路径列进去:
gempath: - /tmp/ruby24/lib/ruby/gems/2.4.0 - /tmp/ruby24p/lib/ruby/gems/2.4.0 - /tmp/ruby24p/vendor/lib/ruby/gems/2.4.0
保存配置后,后续使用gem命令时就会自动搜索这些路径了。
方法三:安装Gem时直接指定目标路径
如果你只是想把bones gem安装到自定义路径(刚好是Ruby已识别的站点目录),可以在安装时直接指定--install-dir参数:
/tmp/ruby24/bin/gem install bones-3.8.4.gem --install-dir /tmp/ruby24p/lib/ruby/gems/2.4.0
或者用--path参数统一指定所有依赖的安装路径:
/tmp/ruby24/bin/gem install bones-3.8.4.gem --path /tmp/ruby24p/lib
因为你在编译Ruby时已经指定了--with-sitedir=/tmp/ruby24p/lib,所以安装到这个路径下的Gem会被Ruby自动识别。
内容的提问来源于stack exchange,提问作者Albert Chin
相关产品推荐
相关产品推荐

