【问题标题】:Add a Gem Path?添加宝石路径?
【发布时间】:2017-05-31 20:14:24
【问题描述】:

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

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

我想添加一条路径。我看到有人 suggesting 在我的 .bashrc 文件中添加类似 export GEM_PATH = ... 的内容,但我担心这会替换现有的 gem 路径。

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

【问题讨论】:

标签: ruby rubygems rvm


【解决方案1】:

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

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

【讨论】:

  • 当我 echo $GEM_PATH 时,我得到一个空行,尽管在 gem environment 中看到多个条目。
【解决方案2】:

我认为不可能只添加路径而不覆盖。

回答你的问题在

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

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2014-04-11
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多