通过RVM安装Ruby时的不同搜索路径

时间:2014-06-07 18:05:08

标签: ruby rubygems puppet

我正在使用Puppet和Librarian Puppet。 Puppet通过系统的包管理器,Librarian Puppet通过Ruby gem安装。它只适用于我通过Debian的软件包管理器安装Ruby(1.9.3)。当我使用相同或其他版本的RVM(> = 1.9.3)时,我从图书馆员那里得到一个错误,说它无法找到木偶。 require 'puppet'中的第4行local.rb导致了图书馆员的问题。不建议使用基于gem的gem安装,我不希望这样做。经过几个小时的调试,我发现当你使用包管理器或RVM时,Ruby的搜索路径会有所不同。使用RVM和Ruby 2.1.2,我得到:

    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby/2.1.0
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby/2.1.0/x86_64-linux
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/vendor_ruby/2.1.0
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/vendor_ruby/2.1.0/x86_64-linux
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/vendor_ruby
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0
    /usr/local/rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux

puppet.rb位于/usr/lib/ruby/vendor_ruby。如果我通过Debian的包管理器安装Ruby,那么这条路径就是搜索路径的一部分!

    /usr/local/lib/site_ruby
    ...
    /usr/lib/ruby/vendor_ruby

有没有通过gem安装puppet的解决方案?

1 个答案:

答案 0 :(得分:0)

librarian-puppet需要puppet gem来解析依赖关系'使用git和path模块时的Modulefile。不适用于Forge模块

https://github.com/rodjek/librarian-puppet/blob/master/lib/librarian/puppet/source/local.rb#L8 https://github.com/rodjek/librarian-puppet/pull/62