添加宝石路径?

时间:2017-05-31 20:14:25

标签: ruby rubygems rvm

当我运行gem environment时,我会得到一个包含以下内容的列表:

  
      
  • GEM路径:      
        
    • /home/rescue/.rvm/rubies/ruby-2.3.3/lib/ruby/gems/2.3.0
    •   
    • /home/rescue/.gem/ruby/2.3.0
    •   
  •   

我想添加一条路径。我看到有人suggestingexport GEM_PATH = ...之类的内容添加到我的.bashrc文件中,但我担心这会取代现有的宝石路径。

除了已存在的路径外,我如何添加其他路径?

3 个答案:

答案 0 :(得分:1)

当您运行echo $GEM_PATH时,您可能会看到两条用冒号分隔的路径。它是设置env变量中多个路径的标准。

如果您想添加更多目录,那么您可以添加1个路径,而无需使用EXPORT GEM_PATH=$GEM_PATH:/your/new/path删除旧路径

答案 1 :(得分:0)

我认为不可能只是在没有覆盖的情况下添加路径。

回答你的问题在

https://github.com/rubygems/rubygems/blob/master/lib/rubygems.rb#L404

 when 'GEM_HOME', 'GEM_PATH', 'GEM_SPEC_CACHE'
 .... 
 @paths = Gem::PathSupport.new ENV.to_hash.merge(target)

代码很复杂,但您可以读到只能通过其中一个'GEM_HOME', 'GEM_PATH', 'GEM_SPEC_CACHE'变量设置路径。

然后gem将这些变量作为构造函数放置到设置路径的Gem::PathSupport

https://github.com/rubygems/rubygems/blob/master/lib/rubygems/path_support.rb

答案 2 :(得分:0)