2011-10-04 26 views
542

Tôi đã cố cài đặt đường ray trên Ubuntu Natty Narwhal 11.04, sử dụng ruby1.9.1.`require ': không tải tập tin như vậy - mkmf (LoadError)

Tôi đã cài đặt ruby ​​sử dụng apt-get install ruby1.9.1-full có chứa gói dev. Tôi googled lỗi và tất cả đã đề nghị tôi cài đặt 1.9.1-dev mà tôi đã có.

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

Tôi đã gặp lỗi song song khi cố cài đặt watir-webdriver. Nó cũng đã được sửa chữa bằng cách cài đặt ruby1.0.1-dev – kaleidic

+0

có thể trùng lặp của [cài đặt Rails không thành công trên Ubuntu với "không thể tải tập tin như vậy - mkmf"] (http://stackoverflow.com/questions/12731904/rails-installation-failed -on-ubuntu-với-không-tải-như-tệp-mkmf) –

Trả lời

966

Sau khi một số tìm kiếm một giải pháp nó quay ra gói -dev là cần thiết, không chỉ ruby1.8. Vì vậy, nếu bạn có ruby1.9.1 làm

sudo apt-get install ruby1.9.1-dev 

hoặc cài đặt phiên bản ruby ​​chung, sử dụng (theo bình luận @lamplightdev):

sudo apt-get install ruby-dev 

nên sửa chữa nó.

Hãy thử locate mkmf để xem tệp có thực sự ở đó không.

+217

sau đây sẽ cài đặt gói dev phù hợp với phiên bản ruby ​​hiện cài đặt của bạn: sudo apt-get install ruby-dev – lamplightdev

+0

vâng làm việc cho tôi. chạy ruby ​​-v để tìm phiên bản nếu bạn chỉ muốn cài đặt phiên bản ruby ​​hiện tại. –

+3

@lamplightdev Không hoạt động đối với tôi, phiên bản ruby ​​là 1.9.3 và nó đã được cài đặt 1.8 Nếu tôi cố gắng cài đặt ruby-dev –

17

Các bạn đã thử:

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

Tôi đang sử dụng 1.9.1, tại sao tôi phải cài đặt ruby1.8-dev? –

+3

lỗi của bạn là đề cập đến ruby1.8 –

+0

Điều này thật kỳ lạ thực sự tôi đã cài đặt 1.9.1 nhưng nó đọc 1.8, khi tôi chạy ruby ​​-v Tôi nhận được: ruby ​​1.8.7 (2010-08-16 patchlevel 302) [x86_64- linux] –

0

Bạn có thể sử dụng RVM (Ruby phiên bản quản lý) giúp trong việc quản lý tất cả các phiên bản của ruby ​​trên máy tính của bạn, mà là rất hữu ích cho bạn phát triển (khi chuyển sang phiên bản không ổn định để phát hành ổn định)

hoặc cho Linux (ubuntu) đi cho sudo apt-get install ruby1.8-dev

sau đó sudo gem install rails để xác minh nó làm rails -v nó sẽ hiển thị phiên bản trên đường ray

sau đó bạn có thể cài đặt bó (đá quý cần thiết cho sự phát triển)

+0

Bạn vẫn có thể sử dụng RVM trên Linux. Tôi đang làm điều đó (nhưng vẫn có vấn đề về lỗi mkmf này khi cài đặt đường ray) – thesecretmaster

183

Đây là câu trả lời phù hợp với tôi. Là trong các ý kiến ​​trên, nhưng xứng đáng vị trí xứng đáng của nó như là câu trả lời cho ubuntu 12.04 ruby ​​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

Cũng cần lưu ý rằng nếu bạn muốn sử dụng trung tâm phần mềm ubuntu có một add-on cho ruby-dev bạn có thể chọn cho 'Header các tệp để biên dịch các mô-đun mở rộng '. – RightHandedMonkey

+0

Tôi đã sử dụng 'sudo apt-get install ruby1.9.1-dev' với ruby ​​1.9.3 trước khi tôi nhìn thấy chú thích hoặc câu trả lời này, và điều đó cho phép tôi xây dựng phần mở rộng đường ray. Không chắc chắn nếu các phiên bản không phù hợp như vậy sẽ gây ra cho tôi bất kỳ đau đầu nào sau này, nhưng cần lưu ý rằng các thanh ray được cài đặt đúng bằng cách sử dụng một sự thay đổi nhỏ của câu trả lời được chấp nhận chính thức. – DWils

+0

Nếu bạn có RVM thì sao? Sau đó, bạn không có phiên bản ruby ​​bạn cần? – thesecretmaster

35

tôi cũng cần build-essential cài đặt:

sudo apt-get install build-essential 
+0

Đây là vé ngay tại đây .. Tôi tưởng tượng tôi cũng phải cài đặt ruby-dev nhưng nó không hoạt động cho đến khi tôi cài đặt bản dựng thiết yếu. một triệu cảm ơn – unc0nnected

29

Vấn đề vẫn là là đệ quy trên Ubuntu 13/04/13,10/14,04

sudo apt-get install ruby1.9.1-dev 

làm việc ra cho tôi không sao. Vì vậy, nếu bạn đang sử dụng Ubuntu 13.04/13.10/14.04 thì việc sử dụng nó sẽ thực sự có ích.

Tính năng này hoạt động ngay cả khi phiên bản ruby ​​là 1.9.3. Đây là vì không có ruby1.9.3-dev sẵn trong kho ...

+1

Vâng, điều này làm việc cho tôi cũng như trên ruby1.9.3. Không có gói nào trong kho ubuntu cho ruby1.9.3-dev. – DWils

+1

Trên Ubuntu 14.04 cũng ... – CMPSoares

+0

không còn nữa ... làm việc sau khi cài đặt rvm từ rvm.io với --ruby - và có lẽ tốt nhất để apt-get loại bỏ ruby ​​trước – dagelf

10

Tôi đã nhận lỗi tương tự khi cài đặt gói

sudo apt-get install ruby-dev 

Các công trình lớn cho tôi và giải quyết vấn đề Mint 16 ruby1.9.3

1

Bạn đã Ruby 1,8, do đó bạn cần nâng cấp lên ít nhất 1.9 để làm cho nó hoạt động.

Nếu vậy, sau đó kiểm tra How to install a specific version of a ruby gem?

Nếu điều này sẽ không giúp đỡ, sau đó cài đặt lại ruby-dev một lần nữa.

Các vấn đề liên quan