我正在使用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的解决方案?
答案 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