programing

json gem 설치 중 오류 발생 'mkmf.rb가 루비의 헤더 파일을 찾을 수 없습니다'

iphone6s 2023. 3. 23. 22:23
반응형

json gem 설치 중 오류 발생 'mkmf.rb가 루비의 헤더 파일을 찾을 수 없습니다'

콘텍스트에서는 방화벽이 있는 리모트서버상에 있습니다.나는 프록시를 통해 내 환경을 설정하고 있다. 있다ruby 1.8.7install을 하면... gem install ( gem install ) 。

sudo gem install --http-proxy <host address>:<port> json

다음의 에러가 표시됩니다.

Building native extensions.  This could take a while...
ERROR:  Error installing json:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h

Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/json-1.8.1 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

뭐가 문제인지 잘 몰라서 검색해봤더니

힌트 있나요?감사합니다!

mimoralea가 밝힌 현대 시대 업데이트:

루비 2.0 또는 2.2를 사용하는 경우(@patrick-davey 감사합니다).

sudo apt-get install ruby2.0-dev
sudo apt-get install ruby2.2-dev
sudo apt-get install ruby2.3-dev

또는 일반적인 방법:

sudo apt-get install ruby-dev

또는

sudo apt-get install ruby`ruby -e 'puts RUBY_VERSION[/\d+\.\d+/]'`-dev

당신이 올린 첫 번째 링크는 당신의 경우입니다.루비 개발 환경이 설치되어 있지 않습니다.개발 env는 루비 확장자를 컴파일하기 위해 필요합니다.이 확장자는 주로 에 기재되어 있습니다.C이치노모든 것이 다운로드되어 컴파일이 실패합니다.

를 i you i i ★★★★★★★★★★★★★★★★★★★★★★★★」ruby-dev )ruby-devel머신에 합니다.rpm을 사용합니다.

gcc패키지도 필요할 수 있습니다.

시험:

$ sudo apt-get install ruby-dev

또는 Redhat distro의 경우:

$ sudo yum install ruby-devel

또는 [open]Su의 경우SE:

$ sudo zypper install ruby-devel

MacOS 10.14의 Xcode 11의 경우 Xcode 설치 및 명령줄 도구 설치 및 라이센스 동의 후에도 이 문제가 발생할 수 있습니다.

sudo xcode-select --install
sudo xcodebuild -license accept

문제는 Xcode 11이 macOS 10.15 SDK를 출하하고 있다는 것입니다.이 SDK는 macOS 10.14의 ruby 2.3용 헤더를 포함하고 있지 않습니다.를 실행하여 이것이 고객의 문제임을 확인할 수 있습니다.

ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

Xcode 11을 탑재한 MacOS 10.14에서는 존재하지 않는 패스가 출력됩니다.

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

, macOS 10.14 SDK에 macOS 10.14 SDK를 합니다./Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk. 답변에 된 것처럼 다른 답변과 같이 오래된 헤더 파일을 설치하여 시스템 디렉토리를 오염시킬 필요는 없습니다.SDK」 「SDK」 「SDK」 「SDK」 「SDK」 「SDK」 「2」 「SDK」 「SDK」 「SDK」 「SDK 「SDK」 「SD」 「2」 「. 3」가검출됩니다.

sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

이것으로 올바르게 인쇄됩니다.

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

저저마마 likewise likewise likewise likewise likewise likewise likewise likewise.gem installSDK를 사용합니다.

현재 Xcode SDK로 다시 전환하려면

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

루비 2.0 또는 2.2(@patrick-davey) 또는 2.3(@juanitofatas)을 사용하고 있는 경우.

sudo apt-get install ruby-dev
sudo apt-get install ruby2.0-dev
sudo apt-get install ruby2.2-dev
sudo apt-get install ruby2.3-dev

여기 패턴이 보이시죠?

Brightbox를 통해 Ubuntu에 Ruby를 설치했는데, Ruby-dev가 Ruby의 트렁크인 줄 알았기 때문에 이 문제가 발생했습니다.그래서 설치하지 않았습니다.ruby2 를 인스톨 합니다.3-dev 수정:

sudo apt-get install ruby2.3-dev

Mac OS X에서 이 기능을 사용하는 경우 XCode가 이미 설치되어 있더라도 다음 명령을 실행하여 XCode 명령줄 도구를 설치해야 할 수 있습니다.

sudo xcode-select --install

또한 다음 명령을 실행하여 XCode 약관에 동의해야 합니다.

sudo xcodebuild -license

cygwin을 사용하여 다음 명령을 실행하는 데 동일한 문제가 발생했습니다.

$ gem install rerun

아래 sygwin 패키지를 설치하여 해결했습니다.

  • 루비 디벨
  • libffi-devel
  • gcc 코어
  • gcc-g++
  • 만들다
  • automake1 。15

대부분의 투표된 솔루션이 내 머신에서 작동하지 않았습니다(Linux mint 18.04).꼼꼼히 살펴본 결과 g++가 없어졌습니다.해결 방법

sudo apt-get install g++

SUSE를 사용하는 경우

sudo yast2 -i ruby-devel

Xcode 11 / macOS Catalina

11 / Xcode 11 / macOS Catalina 에 ./Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg이치

는 「」로./usr/include경로의 : "SDK":

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

은 most디 can음음, 음음음음 of of of of of of of of of of of of of of of of of of 의 출력을 하여 확인할 수 .xcrun --show-sdk-path를 「」에 CPATH경유로 )를 합니다.bundle은 일반적으로 찾을 수 있습니다.

을 나의 my my my my my my my로 했다.CPATH 집에서는.zshrc 삭제:

export CPATH="$(xcrun --show-sdk-path)/usr/include"

을 연 후 실행 중)source .zshrcmkmf.rb가 /usr/lib/ruby/ruby.h에 있는 루비의 헤더 파일을 찾을 수 없습니다.라는 에러 메세지가 표시되지 않게 되어, 루비젬이 올바르게 인스톨 됩니다.

비MacOS 플랫폼 구축에 관한 주의사항

비플랫폼을 , 이 해당 오류가 합니다.OS/tvOS/시계OS와 같은 비 macOS 플랫폼을 구축하는 경우, 이 변경으로 인해 해당 플랫폼에 macOS SDK가 포함되므로 빌드 오류가 발생합니다., , , , , , 둘 중 하나를 CPATH 시 또는 합니다.xcodebuild다음과 같이 합니다.

CPATH="" xcodebuild --some-args

Fedora 21 이상에서는 터미널을 열고 Ruby Development 파일을 루트로 설치하기만 하면 됩니다.

dnf install ruby-devel

Mac 10.14에서는 헤더 파일이 올바른 위치에 설치되지 않은 것 같습니다.다른 수정사항과 같이 경로를 변경하는 대신 다음과 같은 작업을 수행할 수 있었습니다.

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

지시사항을 따르면 이 문제가 해결되었습니다.

ruby-devel 설치 후 gcc 설치가 필요할 수 있습니다.

Xcode -> 프리퍼런스 -> 로케이션

명령줄 도구를 Xcode 11.2.1로 변경

최소 패키지가 아닌 전체 루비를 설치해야 합니다.사용하는 올바른 명령어는 다음과 같습니다.

sudo apt install ruby-full

다음 명령어에서도 완전한 루비는 설치되지 않습니다.

sudo apt-get install ruby2.3-dev

Ubuntu 18의 경우 설치 시 언급된 로그 파일을 확인한 후

결과가 /var/canvas/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/nio4r-2.5.2/gem_make.out에 기록됨

와 함께

less /var/canvas/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/nio4r-2.5.2/gem_make.out

나는 그것을 알아챘다.make를 찾을 수 없습니다.인스톨 완료자

sudo apt-get install make

모든 게 성공했어

MacOS 10.15와 코코패드를 탑재한 Xcode 12에서도 같은 문제가 발생했습니다.xcode-select 명령어가 빌드할 SDK를 가리키고 있는지 확인합니다.그 후에는 문제없이 구축될 것입니다.

Joki의 답변(아래)과 IF의 힌트를 따르기 전에:

  • MacOS 10.14.6 탑재

  • /Library/Developer/CommandLineTools/SDK/에 MacOSX.sdk(기호), MacOSX10.14.sdk, MacOSX10.15.sdk 폴더가 있습니다.

  • MacOSX10.15.sdk를 아무 곳으로나 이동(관리자 권한 필요)

  • 심볼릭 링크 삭제(admin 권한 필요)

  • /Library/Developer/CommandLineTools/SDKs/에서 (관리자 권한 필요)를 사용하여 MacOSX10.14.sdk 폴더에 대한 다른 심볼 링크를 만듭니다.

    sudo ln - s / Library / Developer / CommandLineTools / SDKs / MacOSX 10 . 14 . sdk MacOSX . sdk

  • 이제 조키의 대답을 따라갈 수 있어

경고! MacOSX10.15.sdk 폴더를 /Library/Developer/CommandLineTools/SDKs/로 다시 이동하면 다음 명령이 실행됩니다.

ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

MacOSX10.15.sdk 폴더가 기본 폴더처럼 다시 표시됩니다.요즘은 어떻게 고쳐야 할지 모르겠어요!수정이 가능할 때까지 폴더를 압축하고 원래 폴더를 저장해 두는 것이 좋습니다.

macOS RubyMine Gem 설치 실패

이 에러 메세지의 문제는, RubyMine으로 Gem을 인스톨 하려고 했을 때입니다.글로벌 루비 버전을 변경한 것이 마음에 들지 않았습니다.rbenv그래서 시스템 디폴트 Ruby 버전으로 되돌려서 수정했습니다.

rbenv global system

RubyMine을 재기동했습니다.

sudo apt-get --reinstall install ruby

ubuntu 16.04로 시험해 보세요.

언급URL : https://stackoverflow.com/questions/20559255/error-while-installing-json-gem-mkmf-rb-cant-find-header-files-for-ruby

반응형