2011-10-04 83 views
542

我試圖安裝軌Ubuntu Ubuntu Natty Narwhal 11.04,使用ruby1.9.1。`需要':沒有這樣的文件加載 - mkmf(LoadError)

我使用包含dev軟件包的apt-get install ruby1.9.1-full安裝了ruby。我GOOGLE了錯誤,所有人都建議我安裝我已經擁有的1.9.1-dev。

Building native extensions. This could take a while... 
ERROR: Error installing rails: 
    ERROR: Failed to build gem native extension. 

     /usr/bin/ruby1.8 extconf.rb 
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError) 
    from extconf.rb:36 


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection. 
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out 
+1

我有一個並行錯誤試圖安裝watir-webdriver。它也被更正了安裝ruby1.0.1-dev – kaleidic

+0

可能重複[Rails安裝在Ubuntu上失敗,「無法加載這樣的文件-mkmf」](http://stackoverflow.com/questions/12731904/rails-installation-failed -on-Ubuntu-with-can-load-such-file-mkmf) –

回答

966

一些尋求解決原來需要的-dev包,而不僅僅是ruby1.8後。所以,如果你有ruby1.9.1

sudo apt-get install ruby1.9.1-dev 

,或者安裝通用紅寶石版本,使用(根據@lamplightdev評論):

sudo apt-get install ruby-dev 

應該修復它。

嘗試locate mkmf以查看該文件是否實際存在。

+217

以下將安裝與您當前安裝的紅寶石版本匹配的開發包: sudo apt-get install ruby​​-dev – lamplightdev

+0

耶爲我工作。如果您只想安裝當前的ruby版本,請運行ruby -v以查找版本。 –

+3

@lamplightdev沒有爲我工作,ruby版本是1.9.3,它安裝1.8如果我試圖安裝ruby-dev –

17

你試過:

sudo apt-get install ruby1.8-dev 
+3

我在使用1.9.1,我爲什麼要安裝ruby1.8-dev? –

+3

你的錯誤指的是ruby1.8 –

+0

這實在是太奇怪了,我確實安裝了1.9.1,但它讀取1.8,當我運行ruby -v時,我得到:ruby 1.8.7(2010-08-16 patchlevel 302)[x86_64- linux] –

0

您可以使用RVM(Ruby的版本管理器),這有助於管理你的機器,這是非常有幫助的,你發展的紅寶石的所有版本(遷移到不穩定釋放的穩定版本時)

或Linux操作系統( Ubuntu的)去 sudo apt-get install ruby1.8-dev

然後sudo gem install rails,以驗證它做rails -v它會顯示在軌道上

版本

後,您可以安裝包(需要寶石的發展)

+0

您仍然可以在Linux上使用RVM。我這樣做(但安裝rails時仍存在此mkmf錯誤的問題) – thesecretmaster

183

這是爲我工作的答案。在上述評論,但值得其應有的地位作爲答案的Ubuntu 12.04紅寶石1.8.7

sudo apt-get install ruby-dev 
# if above doesnt work make sure you have build essential 
sudo apt-get install build-essential 
+0

還值得注意的是,如果您要使用ubuntu軟件中心,則可以爲ruby-dev添加一個附件,您可以爲「Header用於編譯擴展模塊的文件'。 – RightHandedMonkey

+0

在我看到註釋或答案之前,我使用'sudo apt-get install ruby​​1.9.1-dev'和ruby 1.9.3,並且允許我構建rails擴展。不確定這樣的不匹配版本是否會導致我後來頭疼,但應該注意的是,正確使用正式接受的答案進行了一些更改。 – DWils

+0

如果您有RVM,該怎麼辦?那麼你還沒有你需要的ruby版本嗎? – thesecretmaster

35

我還需要建立必要的安裝:

sudo apt-get install build-essential 
+0

這是在這裏的票..我想我也必須安裝ruby-dev,但它不工作,直到我安裝構建至關重要。一百萬感謝 – unc0nnected

29

的問題仍然是遞歸的在Ubuntu 13/04/13.10/14.04

sudo apt-get install ruby1.9.1-dev 

摸索出適合我沒關係。所以如果你使用的是Ubuntu 13.04/13.10/14.04,那麼使用它真的會派上用場。

即使ruby版本是1.9.3,這也能正常工作。這是存在於倉庫沒有ruby1.9.3-dev的,因爲...

+1

是的,這一個爲我工作以及ruby1.9.3。 ruby1.9.3-dev的ubuntu存儲庫中沒有包。 – DWils

+1

在Ubuntu 14.04以及... – CMPSoares

+0

沒有更多...從rvm.io安裝rvm後用--ruby - 也許最好的apt-get刪除ruby之前 – dagelf

10

當安裝包

sudo apt-get install ruby-dev 

偉大的作品對我來說,解決問題 薄荷16 ruby​​1.9.3

相關問題