`ต้องการ ': ไม่มีไฟล์ดังกล่าวที่จะโหลด - mkmf (LoadError)


563

ฉันพยายามติดตั้งรางบน Ubuntu Natty Narwhal 11.04 โดยใช้ ruby1.9.1

ฉันติดตั้งทับทิมโดยใช้apt-get install ruby1.9.1-fullซึ่งมีแพ็คเกจ dev ฉัน googled ข้อผิดพลาดและทุกคนแนะนำว่าฉันติดตั้ง 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

คำตอบ:


979

หลังจากการค้นหาบางอย่างสำหรับการแก้ปัญหาก็จะเปิดออกแพคเกจเป็นสิ่งจำเป็นไม่เพียง-dev ruby1.8ดังนั้นถ้าคุณได้ruby1.9.1ทำ

sudo apt-get install ruby1.9.1-dev

หรือเพื่อติดตั้ง ruby ​​version ทั่วไปให้ใช้ (ตามความคิดเห็น @lamplightdev):

sudo apt-get install ruby-dev

ควรแก้ไข

ลองlocate mkmfดูว่าไฟล์นั้นมีอยู่จริงหรือไม่


220
ต่อไปนี้จะติดตั้งแพ็คเกจ dev ตรงกับรุ่นทับทิมที่คุณติดตั้งอยู่ในปัจจุบัน: sudo apt-get install ruby-dev
lamplightdev

ใช่ทำงานให้ฉัน รัน ruby ​​-v เพื่อค้นหาเวอร์ชันหากคุณต้องการติดตั้ง ruby ​​version ปัจจุบันเท่านั้น
Dan Bradbury

3
@lamplightdev ทำงาน did not สำหรับฉัน, รุ่นทับทิมเป็น 1.9.3 และมันก็ติดตั้ง 1.8 ถ้าผมพยายามที่จะติดตั้งทับทิม dev
คาร์ทิค T

1
ฉันติดตั้งruby-all-devแล้วอาจใช้งานได้กับทุกรุ่น
jcubic

สิ่งนี้จำเป็นสำหรับ aws-sdk ด้วยในขณะนี้ที่ SOAP เลิกใช้แล้วสำหรับ AWS กังวลว่าผู้มีส่วนได้ส่วนเสียคัดค้านอะไรก็ตาม - ต้องมีการสร้างงานสร้าง (SDK ไม่ได้ทำให้พวกเขาตื่นเต้น)
mckenzm

185

นี่คือคำตอบที่เหมาะกับฉัน อยู่ในความคิดเห็นข้างต้น แต่สมควรได้รับสถานที่ที่ถูกต้องเป็นคำตอบสำหรับ 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

นอกจากนี้ยังเป็นที่น่าสังเกตว่าหากคุณต้องการใช้ศูนย์ซอฟต์แวร์อูบุนตูมีส่วนเสริมสำหรับ ruby-dev คุณสามารถเลือก 'ไฟล์ส่วนหัวสำหรับการรวบรวมส่วนขยายโมดูล'
RightHandedMonkey

ฉันใช้sudo apt-get install ruby1.9.1-devกับทับทิม 1.9.3 ก่อนที่ฉันจะเห็นความคิดเห็นหรือคำตอบนี้และนั่นทำให้ฉันสามารถสร้างส่วนขยายรางได้ ไม่แน่ใจว่าเวอร์ชั่นที่ไม่ตรงกันเช่นนั้นจะทำให้ฉันปวดหัวในภายหลังหรือไม่ แต่ควรสังเกตว่าทางรถไฟติดตั้งอย่างถูกต้องโดยใช้การเปลี่ยนแปลงเล็กน้อยของคำตอบที่ยอมรับอย่างเป็นทางการ
DWils

ถ้าคุณมี RVM ถ้าอย่างนั้นคุณไม่มีเวอร์ชั่นทับทิมที่คุณต้องการอยู่แล้ว?
thesecretmaster

37

ฉันยังต้องการการติดตั้งสิ่งจำเป็นสำหรับสร้าง:

sudo apt-get install build-essential

นี่คือตั๋วตรงนี้ .. ฉันคิดว่าฉันต้องติดตั้ง ruby-dev ด้วย แต่มันก็ไม่ทำงานจนกว่าฉันจะติดตั้ง build-essential เช่นกัน หนึ่งล้านขอบคุณ
unc0nnected

30

ปัญหายังคงเกิดขึ้นซ้ำใน Ubuntu 13/04 / 13.10 / 14.04

และ

sudo apt-get install ruby1.9.1-dev

ทำงานออกมาสำหรับฉันโอเค ดังนั้นหากคุณใช้ Ubuntu 13.04 / 13.10 / 14.04 การใช้งานนี้จะมีประโยชน์จริงๆ

วิธีนี้ใช้ได้แม้กับ ruby ​​version 1.9.3 นี่เป็นเพราะไม่มี ruby1.9.3-dev ใน Repository ...


1
อ๋ออันนี้ใช้ได้สำหรับฉันเช่นเดียวกับ ruby1.3.3 ไม่มีแพ็คเกจในที่เก็บ ubuntu สำหรับ ruby1.9.3-dev
DWils

ไม่ได้อีกต่อไป ... ทำงานหลังจากติดตั้ง rvm จาก rvm.io ด้วย --ruby - และอาจเป็นการดีที่สุดที่จะรับเอา ruby ​​apt ออกก่อน
dagelf

18

คุณเคยลองไหม:

sudo apt-get install ruby1.8-dev

3
ฉันใช้ 1.9.1 ทำไมฉันต้องติดตั้ง ruby1.8-dev
Omar S.

นี่มันแปลกจริง ๆ ฉันติดตั้ง 1.9.1 แต่มันอ่าน 1.8 เมื่อฉันเรียกใช้ ruby ​​-v ฉันได้รับ: ruby ​​1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
Omar S.

2
คุณได้ตั้งค่า ruby ​​1.8 เป็น ruby ​​ที่เป็นค่าเริ่มต้นในระบบของคุณ
Matteo Alessani

10

ฉันได้รับข้อผิดพลาดคล้ายกันเมื่อติดตั้งชุดข้อมูล

sudo apt-get install ruby-dev

ใช้งานได้ดีสำหรับฉันและแก้ปัญหามิ้นท์ 16 ruby1.9.3



1

คุณมี Ruby 1.8 อยู่ดังนั้นคุณต้องอัปเกรดเป็นอย่างน้อย 1.9 เพื่อให้ทำงานได้

ถ้าเป็นเช่นนั้นให้ตรวจสอบวิธีการติดตั้งพลอยทับทิมเฉพาะรุ่น

หากวิธีนี้ไม่ช่วยให้ติดตั้งใหม่ruby-devอีกครั้ง


0

คุณสามารถใช้ RVM (ตัวจัดการเวอร์ชันทับทิม) ซึ่งช่วยในการจัดการ ruby ​​ทุกรุ่นบนเครื่องของคุณซึ่งเป็นประโยชน์อย่างมากสำหรับการพัฒนาของคุณ (เมื่อย้ายไปยังรุ่นที่ไม่เสถียรไปสู่รุ่นเสถียร)

หรือสำหรับ Linux (Ubuntu) sudo apt-get install ruby1.8-dev

จากนั้นsudo gem install railsเพื่อตรวจสอบว่า rails -vมันจะแสดงเวอร์ชั่นบนราง

หลังจากนั้นคุณสามารถติดตั้งบันเดิล (อัญมณีที่จำเป็นสำหรับการพัฒนา)


คุณยังสามารถใช้ RVM บน linux ได้ ฉันกำลังทำเช่นนั้น (แต่ยังคงมีปัญหาของข้อผิดพลาด mkmf นี้เมื่อติดตั้งราง)
thesecretmaster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.