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

루비 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

오류도 발생합니다.

내가 놓친 게 무엇입니까?



답변

비슷한 질문이 있습니다.

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

sudo apt-get 설치 ruby-dev

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

sudo apt-get 설치 루비 1.9.1-dev

문제를 해결해야합니다.


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

sudo apt-get 설치 확인


답변

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

sudo apt install build-essential


답변

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

sudo apt-get install zlibc zlib1g zlib1g-dev


답변

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

$ sudo apt-get install ruby1.9.1-dev

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

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

$ sudo apt-get install g++


답변

이 문제를 해결하기 위해 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

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


답변

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


답변

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