ruby – 如何配置gem才能使用系统宝石?
发布时间:2020-12-17 02:27:22 所属栏目:百科 来源:网络整理
导读:我想配置gem只使用系统宝石 – 永远不要在$HOME / .gem中.这是因为我正在编写一个将访问Gem.path的脚本,我不希望它返回我的主目录中的gems路径. 我很确定我没有在我的.bashrc,.bash_login等中明确设置GEM_HOME或类似内容. 但是Gem.path首先返回我的homedir宝
我想配置gem只使用系统宝石 – 永远不要在$HOME / .gem中.这是因为我正在编写一个将访问Gem.path的脚本,我不希望它返回我的主目录中的gems路径.
我很确定我没有在我的.bashrc,.bash_login等中明确设置GEM_HOME或类似内容. 但是Gem.path首先返回我的homedir宝石: irb > Gem.path => ["/home/nfm/.gem/ruby/1.9.1","/usr/local/lib/ruby/gems/1.9.1"] 我可以阻止这种情况发生吗?在哪里配置?或者它只是首先在homedir中查看的默认值? 如果我无法配置,我可以使用regexp hackery返回gems的系统路径吗? 更多细节: which ruby /usr/local/bin/ruby ruby --version ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] gem env - RUBYGEMS VERSION: 1.3.7 - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [x86_64-linux] - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1 - RUBY EXECUTABLE: /usr/local/bin/ruby - EXECUTABLE DIRECTORY: /usr/local/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /usr/local/lib/ruby/gems/1.9.1 - /home/nfm/.gem/ruby/1.9.1 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ 更新: 显然这可以在?/ .gemrc中配置: # Note the use of a symbol before the colon - the string version doesn't work! :gempath: - /usr/local/lib/ruby/gems/1.9.1 但是,如果你启动irb,这似乎没有生效.这与配置文件是YAML这一事实有关,显然当irb启动时没有加载yaml(不确定这个!): $irb > Gem.path => ["/home/nfm/.gem/ruby/1.9.1","/usr/local/lib/ruby/gems/1.9.1"] > Gem.configuration.path => ["/usr/local/lib/ruby/gems/1.9.1"] # Ready for a WTF moment? > Gem.path => ["/usr/local/lib/ruby/gems/1.9.1"] 所以,下面的答案似乎是获得正确行为的唯一一致方法,即使你假设?/ .gemrc可以工作,并且将是一个更好的方式来包装你的配置. 但是,在我的?/ .gemrc中设置:gempath:在Rails应用程序中我的Rakefile中的脚本的上下文中工作,可能是因为yaml被明确加载. 不确定yaml到底发生了什么,但这个解释似乎与我在这里看到的一致. 修改! :P 解决方法
在这里覆盖它:
#in ~/.bashrc export GEM_PATH=/usr/local/lib/ruby/gems/1.9.1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |