`Yêu cầu ': không có tệp nào để tải - mkmf (LoadError)


563

Tôi đã cố gắng cài đặt đường ray trên Ubuntu Natty Narwhal 11.04, sử dụng ruby1.9.1.

Tôi đã cài đặt ruby ​​bằng cách sử dụng apt-get install ruby1.9.1-fullgói dev. Tôi đã xử lý 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 đã có một lỗi song song khi cố gắng cài đặt watir-webdo. Nó cũng được sửa bằng cách cài đặt ruby1.0.1-dev
kaleidic

Câu trả lời:


979

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

sudo apt-get install ruby1.9.1-dev

hoặc để cài đặt phiên bản ruby ​​chung, hãy sử dụng (theo nhận xét @lamplightdev):

sudo apt-get install ruby-dev

nên sửa nó

Hãy thử locate mkmfxem các tập tin là thực sự ở đó.


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

yeah 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.
Dan Bradbury

3
@lamplightdev Không hoạt động 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ố cài đặt ruby-dev
Karthik T

1
Tôi đã cài đặt ruby-all-dev, nó có thể sẽ hoạt động cho tất cả các phiên bản.
jcubic

Điều này cũng được yêu cầu cho aws-sdk vì SOAP không được dùng cho AWS. Một lo lắng nếu các bên liên quan phản đối bất cứ điều gì -dev trên một bản dựng sản xuất. (SDK cũng không hồi hộp chúng).
mckenzm

185

Đây là câu trả lời làm việc cho tôi. Có trong các ý kiến ​​trên, nhưng xứng đáng với vị trí xứng đáng của nó như là câu trả lời cho ubfox 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

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

Tôi đã sử dụng sudo apt-get install ruby1.9.1-devvới ruby ​​1.9.3 trước khi tôi thấy nhận xét 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 khớp như thế sẽ khiến tôi đau đầu sau này, nhưng cần lưu ý rằng đường ray được cài đặt chính xác bằng cách sử dụng một thay đổi nhỏ của câu trả lời được chấp nhận chính thức.
DWils 16/03 '

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

37

Tôi cũng cần cài đặt bản dựng:

sudo apt-get install build-essential

Đây là vé ngay tại đây .. Tôi tưởng tượng mình 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 lời cảm ơn
nhận vào

30

Vấn đề vẫn là đệ quy trên Ubuntu 13/04 / 13.10 / 14.04

sudo apt-get install ruby1.9.1-dev

làm việc cho tôi được 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ày sẽ thực sự hữu ích.

Điều này hoạt động ngay cả khi phiên bản ruby ​​là 1.9.3. Điều này là do không có ruby1.9.3-dev có sẵn trong Kho lưu trữ ...


1
Đúng, cái này cũng có tác dụng với tôi trên ruby1.9.3. Không có gói nào trong kho ubfox cho ruby1.9.3-dev.
DWils 16/03 '

không còn nữa ... đã hoạt động 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

18

Bạn đã thử chưa:

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?
Omar S.

Điều này thật kỳ lạ khi 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]
Omar S.

2
bạn có ruby ​​1.8 được đặt làm ruby ​​mặc định trên hệ thống của bạn
Matteo Alessani

10

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

sudo apt-get install ruby-dev

Hoạt động rất tốt cho tôi và giải quyết vấn đề Mint 16 ruby1.9.3




0

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

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

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

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


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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.