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
뭐가 문제인지 잘 몰라서 검색해봤더니
gem install: gem native 확장자를 빌드하지 못했습니다(헤더 파일을 찾을 수 없습니다).여기서 설명하는 내용은 설치하는 gem에 한정되어 있는 것 같습니다.
json gem 설치 방법 - gem 네이티브 확장을 빌드하지 못했습니다.이것은 약간 다른 에러인 것 같습니다.
힌트 있나요?감사합니다!
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
'programing' 카테고리의 다른 글
| Spring Boot Data JPA with H2 and data.sql - 테이블을 찾을 수 없음 (0) | 2023.03.23 |
|---|---|
| WooCommerce 커스텀 필드 - 다중 선택 (0) | 2023.03.23 |
| woocommerce 관리 주문 페이지 편집 방법 (0) | 2023.03.23 |
| 상태에서의 어레이에 값을 추가하는 가장 좋은 방법은 무엇입니까? (0) | 2023.03.23 |
| XSLT는 JSON에 상당합니다. (0) | 2023.03.23 |