2013-07-19 126 views
0

我有一個木偶顯明安裝Zurb基金會寶石:運行puppet apply木偶安裝寶石失敗,但創業板安裝反正

class compass { 
    package { ["rubygems"]: 
     ensure => 'installed' 
    } 
    package { ['zurb-foundation']: 
     ensure => '3.0.6', 
     provider => 'gem', 
     require => Package['rubygems'] 
    } 
} 

這會導致以下錯誤:

err: /Stage[main]/Compass/Package[zurb-foundation]/ensure: change from absent to 3.0.6 failed: Could not update: Execution of '/usr/bin/gem install -v 3.0.6 --include-dependencies --no-rdoc --no-ri zurb-foundation' returned 1: INFO: `gem install -y` is now default and will be removed 
INFO: use --ignore-dependencies to install only the gems you list 
Building native extensions. This could take a while... 
ERROR: Error installing zurb-foundation: 
    ERROR: Failed to build gem native extension. 

     /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError) 
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from extconf.rb:4:in `<main>' 


Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.0 for inspection. 
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.0/ext/ffi_c/gem_make.out 
at /etc/puppet/manifests/classes/compass.pp:25 

但是,這樣做一個gem list產生以下結果:

# gem list 

*** LOCAL GEMS *** 

chunky_png (1.2.8) 
compass (0.12.2) 
fssm (0.2.10) 
rake (10.1.0) 
rb-fsevent (0.9.3) 
sass (3.2.0.alpha.277) 
zurb-foundation (3.0.6) 

錯誤r導致puppet apply無法正確完成,因爲失敗的依賴項會跳過很多項目。我能做什麼?

回答

3

我認爲問題在於你沒有爲你的ruby安裝ruby開發工具包(這就是用來構建本地擴展的東西)。

你要添加類似(取決於你的Ruby版本可能不同):

package { 'ruby-dev': 
    ensure => installed, 
    before => Package['zurb-foundation'], 
} 

這將使得創業板被正確建立,讓你的傀儡運行結束了。

+0

這就像一個魅力。謝謝。 – phidah