gem을 설치할 수 없음-gem 기본 확장을 빌드하지 못했습니다-해당 파일을로드 할 수 없습니다 — mkmf (LoadError)


172

루비 1.9.3

Gemfile의 일부

#...............
gem "pony"
gem "bcrypt-ruby", :require => "bcrypt"
gem "nokogiri" 
#..................

보석을 설치하려고 할 때 오류가 발생합니다

alex@ubuntu:~/$ bundle
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
#####............................................................
Installing bcrypt-ruby (3.0.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot continue.
Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling.

그런 다음이 일을하고 있습니다

sudo gem install bcrypt-ruby -v '3.0.1'
Building native extensions.  This could take a while...
ERROR:  Error installing bcrypt-ruby:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

오류도 발생합니다.

내가 놓친 게 무엇입니까?


답변:


428

비슷한 질문이 있습니다.

일반적으로 해결책은 다음과 같습니다.

sudo apt-get 설치 ruby-dev

또는 루비 버전에 따라 작동하지 않으면 다음과 같이 실행 하십시오 .

sudo apt-get 설치 루비 1.9.1-dev

문제를 해결해야합니다.


그래도 작동이 안되는? ruby-dev를 설치 한 후 다음을 시도하십시오 :

sudo apt-get 설치 확인


그러나 1.9.3 루비 만 있습니다.
Alexandre

5
ruby 1.9.3은 ruby ​​1.9.1의 별칭입니다.

6
설치 후 ruby1.9.1-dev나는 또한했다 sudo apt-get install make. 감사합니다!
wasatchwizard

6
sudo apt-get install ruby(버전을 지정하지 않고) 명령으로 루비를 설치했다면 설치 sudo apt-get install ruby-dev
만해

7
나는 우분투 16.04에서 당신이 또한 필요하다는 것을 발견했다sudo apt-get install gcc make
Treur

13

WSL (Linux 용 Windows 서브 시스템)의 경우 설치 build-essential패키지 가 필요 합니다.

sudo apt install build-essential

1
다른 제안들 중 어느 것도 그렇게하지 않는 것처럼 저를 위해 그것을 해결했습니다. 내 설정 : Win10 Pro + WSL with Ubuntu 18.04 + Ruby 2.5. 감사!
cjs1978

1
Ubuntu Server Hyper-V VM도 마찬가지입니다.
Jorge Yanes Diez

1
Docker
Miguel Mota의

이것은 Typhoeus를 설치할 때 Ubuntu 18.04 LTS를 정기적으로 설치하는 데 효과적이었습니다. 거기에 도착하기 위해 나이를 먹었다, 감사합니다!
RemakingEden

8

jquery-rails를 설치하려고하는 것과 동일한 문제가 발생했습니다. 수정은

sudo apt-get install zlibc zlib1g zlib1g-dev

1
설치 만하면 zlib1g-dev여기에 필요한 것이 제공 될 것입니다.
lindes

4

다른 버전의 루비를 설치해야한다는 것을 알았습니다. 그래서 명령을 실행

$ sudo apt-get install ruby1.9.1-dev

그런 다음 확장 프로그램을 설치하십시오

g ++이 없다는 문제가 발생하면 다음 명령을 실행하여 설치할 수 있습니다

$ sudo apt-get install g++

4

이 문제를 해결하기 위해 2 시간의 거위 추적을 완료했습니다. 게시 된 답변 중 어느 것도 나를 위해 일하지 않았습니다. Mac에서 Im (Mojave 버전 10.14.6, Xcode 버전 11.3).

루비 파일 헤더가 누락되어 실행해야합니다. open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

내가 설치 한 CommandLineTools 버전에 "Packages"폴더가 없기 때문에 처음에는 작동하지 않았습니다. 따라서 다음과 같이 제거하고 다시 설치했습니다.

rm -rf /Library/Developer/CommandLineTools

xcode-select --install

그런 다음 이전 명령을 다시 실행했습니다.

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

설치 후 오류가 수정되었습니다!


이것은 나를 위해 일했습니다. macOS 10.14.6 (18G1012)에 있습니다. Xcode 11.3.
palmi

감사. Flutter 개발을 위해 "sudo gem install cocoapods"를 설치할 때 솔루션이 효과적이었습니다.
Venkataraman K

3

미래의 누군가 가이 문제를 겪고 있다면 Mac을 사용하고 있으며 'xcode-select --install'을 사용하여 명령 줄 도구를 설치해야했습니다.


1
이것은 나를 위해 일했습니다. 필자의 경우 El Capitan으로 업그레이드 할 때까지 빌드가 제대로 작동했기 때문에 머리를 긁적이었습니다.
bruce1337

2
  1. ruby-dev설치되어 있는지 확인하십시오
  2. make설치되어 있는지 확인하십시오
  3. 여전히 오류가 발생하면 제안 된 패키지를 찾으십시오. 비슷한 것을 설치하려고한다면 gem install pglib libpq-dev( sudo apt-get install libpq-dev)도 설치해야합니다 .

1

libmysqlclient-dev가 설치되어 있는지 확인하는 데 도움이됩니다 (Ubuntu 14.04).


1

이것은 나를 위해 일했습니다. bundle config --global build.snappy --with-opt-dir="$(brew --prefix snappy)"


0

Mac에서는 저에게 효과적입니다.

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2

0

해결책을 찾은 후에는 ruby1.8뿐만 아니라 -dev 패키지가 필요한 것으로 나타났습니다. ruby1.9.1이 있다면

sudo apt-get install ruby1.9.1-dev

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

sudo apt-get install ruby-dev

고쳐야합니다.

파일이 실제로 있는지 확인하려면 mkmf를 찾으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.