programing

gem을 설치할 수 없음 - gem 네이티브 확장을 빌드하지 못함 - 해당 파일을 로드할 수 없음 -- mkmf(LoadError)

instargram 2023. 6. 6. 00:25
반응형

gem을 설치할 수 없음 - gem 네이티브 확장을 빌드하지 못함 - 해당 파일을 로드할 수 없음 -- mkmf(LoadError)

루비 1.9.3

젬파일 부분

#...............
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 install ruby-dev

또는 루비 버전에 따라 작동하지 않는 경우 다음과 같은 방법을 실행합니다.

sudo apt-get install ruby1.9.1-dev

당신의 문제를 해결해야 합니다.


아직도 안 돼요?ruby-dev를 설치한 후 다음을 시도합니다.

sudo apt-get install make

Linux의 경우 WSL(Windows Subsystem for Linux)을 설치해야 .build-essential패키지:

sudo apt install build-essential

이 문제를 해결하기 위해 2시간 동안 기러기 쫓기를 막 마쳤습니다.게시된 답변 중 저에게 맞는 답변이 없습니다.Mac(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 사용자의 경우:

이렇게 하면 문제가 쉽게 해결됩니다.

brew install cocoapods

jquery-rails를 설치하려고 할 때도 같은 문제가 있었습니다.해결책은

sudo apt-get install zlibc zlib1g zlib1g-dev

나중에 이 문제가 발생할 경우를 대비하여 Mac을 사용하고 있으며 'xcode-select --install'을 사용하여 명령줄 도구를 설치해야 했습니다.

저는 루비의 다른 버전을 설치해야 한다는 것을 발견했습니다.명령 실행

$ sudo apt-get install ruby1.9.1-dev

그런 다음 확장을 설치합니다.

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

$ sudo apt-get install g++
  1. ㅠㅠruby-dev됨().
  2. ㅠㅠmake됨().
  3. 그래도 오류가 발생하면 제안된 패키지를 찾습니다.▁something와 같은 것을 .gem install pg lib lib를 .libpq-dev(sudo apt-get install libpq-dev).

MacOS 10.15(카탈리나)와 11(Big Sur)에 코코팟을 설치하기 위해 작은 hackMD를 만들었습니다.

https://hackmd.io/ @sBJPLHRESGQCKQV8ZjP1A/S1UY3W7HP

MacOS Catalina(MacOS 10.15)에 Cocoapod 설치.및 Big Sur(MacOS 11)

  1. xcode 구성 요소가 설치되어 있는지 확인합니다.

  2. 링크에서 직접 '명령줄 도구'(약 500MB)를 다운로드하십시오(애플 계정이 필요합니다). https://developer.apple.com/downloads/index.action

  3. 다운로드한 파일 설치

  4. 설치 클릭

  5. 터미널에 COCOAPODS 파일 설치sudo gem install -n /usr/local/bin cocoapods

이것은 저에게 효과가 있었습니다. bundle config --global build.snappy --with-opt-dir="$(brew --prefix snappy)"

또한 libmysqlclient-dev가 설치되도록 보장합니다(Ubuntu 14.04).

몇 시간의 고통 끝에 결국 나에게 효과가 있었던 것.

만약 당신이 양조장을 운영한다면..

brew install ruby

터미널 출력/로그에서 Ruby가 설치된 경로를 식별하고, brew가 '당신의 PATH에 이것을 추가할 수도 있습니다'라고 제안하면 그렇게 할 것입니다.예를 들어, 내 것은.

/usr/local/lib/ruby/gems/3.0.0/bin

를 실행하여 경로에 추가합니다(괄호 생략).

echo 'export PATH"{the_path_you_found_above}:$PATH"' >> ~/.bash_profile

를 실행하여 환경을 업데이트합니다.

source ~/.bash_profile

이제 설치를 실행해 보십시오.

sudo gem install middleman

만약 당신이 맥 사용자라면 당신은 사용 중인 클랑 버전을 업데이트해야 합니다. 나는 이것을 검색하고 제거된 xcode 명령줄 도구를 설치했지만 도움이 되지 않았습니다.도망친gcc -v그리고.Apple clang version 11.0.0 (clang-1100.0.33.8그것은 출력이었습니다.그때 나는 달렸습니다.xcode-select -s /Library/Developer/CommandLineTools/그리고 clang 버전이 다음으로 업데이트되었습니다.Apple clang version 12.0.0 (clang-1200.0.32.29)그 후 번들 설치에 성공했습니다.이것이 도움이 되길 바랍니다.

단어 검색 앱을 만들다가 cocoapod를 설치해야 했고 mac을 포맷하고 xcode를 다시 설치한 후에도 cocoapod를 설치하고 싶을 때 오류가 발생했습니다.

이에 대한 해결책은 다음과 같습니다.

이 문서의 최신 버전인 코코아 포드 1.9.0은 2.3.7보다 새로운 버전의 루비에 의존하는 것처럼 보입니다.그러나 macOS Mojave에는 Ruby 2.3.7만 포함되어 있으므로 몇 가지 다른 옵션이 있습니다.

    Upgrade to macOS Catalina and get Ruby 2.6.3
    Use Ruby Version Manager to install a newer version of Ruby
    Install an older version of CocoaPods
    sudo gem install cocoapods -v 1.8.4

3번 했어요.

sudogem 설치 cocoapods -v 1.8.4

Mac에서는 다음과 같이 작동합니다.

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

솔루션을 검색한 결과 루비 1.8이 아닌 -dev 패키지가 필요한 것으로 나타났습니다.그래서 만약 루비 1.9.1을 가지고 있다면,

sudo apt-get install ruby1.9.1-dev

또는 일반 루비 버전을 설치하려면 다음을 사용합니다(@lamplightdev 설명에 따름).

sudo apt-get install ruby-dev

고쳐야 합니다.

파일이 실제로 있는지 확인하기 위해 mkmf를 찾습니다.

먼저 터미널에서 Xcode 버전을 설정합니다.

sudo xcode-select -switch /Applications/Xcode.app

그런 다음 설치:

sudo gem install cocoapods

언급URL : https://stackoverflow.com/questions/13767725/unable-to-install-gem-failed-to-build-gem-native-extension-cannot-load-such

반응형