`필수 ':로드 할 파일이 없습니다 — mkmf (LoadError)


563

ruby1.9.1을 사용하여 Ubuntu Natty Narwhal 11.04에 레일을 설치하려고했습니다.

apt-get install ruby1.9.1-fulldev 패키지를 포함하는 ruby를 설치했습니다 . 나는 오류를 봤으며 모두 내가 이미 가지고있는 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

또는 일반적인 루비 버전을 설치하려면 @lamplightdev 주석에 따라 사용하십시오.

sudo apt-get install ruby-dev

고쳐야합니다.

시도 locate mkmf파일이 실제로이 있는지.


220
다음은 현재 설치된 루비 버전과 일치하는 dev 패키지를 설치합니다 : sudo apt-get install ruby-dev
lamplightdev

그래, 나를 위해 일했다. 현재 루비 버전 만 설치하려면 ruby ​​-v를 실행하여 버전을 찾으십시오.
Dan Bradbury

3
@lamplightdev 나를 위해 일하지 않았다, 루비 버전은 1.9.3이고 1.8을 설치하고 있었다. 만약 루비 -dev를 설치하려고한다면
Karthik T

1
설치 ruby-all-dev했습니다. 아마도 모든 버전에서 작동합니다.
jcubic

AWS에서는 SOAP가 더 이상 사용되지 않으므로 aws-sdk에도 필요합니다. 이해 관계자가 프로덕션 빌드에서 -dev에 반대 할 경우 걱정이됩니다. (SDK도 스릴하지 않습니다).
mckenzm

185

이것이 나를 위해 일한 대답입니다. 위의 의견에 있었지만 우분투 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

우분투 소프트웨어 센터를 사용하려면 ruby-dev 용 애드온이 있으며 '확장 모듈 컴파일을위한 헤더 파일'을 선택할 수 있습니다.
RightHandedMonkey 1

sudo apt-get install ruby1.9.1-dev의견이 나이 답변을보기 전에 루비 1.9.3과 함께 사용 하여 레일 확장을 만들 수있었습니다. 이와 같은 불일치 버전으로 인해 나중에 두통이 발생하는지 확실하지 않지만 공식적으로 허용되는 답변을 약간 변경하여 레일이 올바르게 설치되었다는 점에 유의해야합니다.
DWils

RVM이 있으면 어떻게합니까? 그렇다면 이미 필요한 루비 버전이 없습니까?
thesecretmaster

37

또한 빌드 필수 설치가 필요했습니다.

sudo apt-get install build-essential

이 티켓은 바로 여기에 있습니다. ruby-dev도 설치해야한다고 생각하지만 빌드 필수를 설치하기 전까지는 작동하지 않았습니다. 백만 감사
unc0nnected

30

문제는 여전히 우분투 13 / 04 / 13.10 / 14.04에서 재귀 적입니다.

sudo apt-get install ruby1.9.1-dev

나를 위해 잘 작동했습니다. 따라서 Ubuntu 13.04 / 13.10 / 14.04를 사용하는 경우 실제로 사용하면 편리합니다.

루비 버전이 1.9.3 인 경우에도 작동합니다. 리포지토리에 사용 가능한 ruby1.9.3-dev가 없기 때문입니다 ...


1
네, 루비 1.9.3에서도 저에게 효과적이었습니다. ruby1.9.3-dev의 우분투 저장소에는 패키지가 없습니다.
DWils

더 이상은 ... --ruby와 함께 rvm.io에서 rvm을 설치 한 후 작동했으며 아마도 루비를 제거하는 것이 가장 좋습니다.
dagelf

18

시도해 보셨습니까?

sudo apt-get install ruby1.8-dev

3
1.9.1을 사용하고 있는데 왜 ruby1.8-dev를 설치해야합니까?
Omar S.

이것은 정말 이상합니다. 1.9.1을 설치했지만 ruby ​​-v를 실행할 때 1.8을 읽습니다. ruby ​​1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
Omar S.

2
당신은 당신의 시스템의 기본 루비로 루비 1.8 설정
마테오 Alessani

10

번들을 설치할 때 비슷한 오류가 발생했습니다.

sudo apt-get install ruby-dev

저에게 효과적이며 문제를 해결합니다. Mint 16 ruby1.9.3




0

머신에서 모든 루비 버전을 관리하는 데 도움이되는 RVM (Ruby 버전 관리자)을 사용할 수 있습니다. 이는 개발에 매우 ​​도움이됩니다 (불안정한 릴리스로 안정적인 릴리스로 마이그레이션 할 때)

또는 리눅스 (우분투) sudo apt-get install ruby1.8-dev

그런 다음 레일에 버전이 표시 sudo gem install rails되는지 확인하십시오. rails -v

그 후에 번들 (개발에 필요한 gem)을 설치할 수 있습니다


여전히 Linux에서 RVM을 사용할 수 있습니다. 나는 그렇게하고있다 (그러나 여전히 레일을 설치할 때이 mkmf 오류 문제가 있음)
secretmaster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.