[json] json gem ‘mkmf.rb를 설치하는 동안 오류가 루비에 대한 헤더 파일을 찾을 수 없습니다’
상황에 따라 방화벽이있는 원격 서버에 있습니다. 프록시를 통해 환경을 설정하고 있습니다. 나는있다 ruby 1.8.7
. 보석 설치하려고 할 때 ..
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
문제가 무엇인지 확신하지 못했기 때문에 googled를 발견했습니다.
-
gem install : gem 기본 확장을 빌드하지 못했습니다 (헤더 파일을 찾을 수 없음) -여기에있는 지침은 설치중인 gem과 관련된 것으로 보입니다.
-
json gem 설치 방법-gem native 확장을 빌드하지 못했습니다 . 약간 다른 오류 인 것 같습니다.
힌트가 있습니까? 감사!
답변
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
게시 한 첫 번째 링크는 정확한 경우입니다. 루비 개발 환경이 설치되어 있지 않습니다. 개발 환경은 대부분로 작성된 루비 확장명을 컴파일하는 데 필요합니다 C
. 프록시는 문제와 아무 관련이 없습니다. 모든 것이 제대로 다운로드되고 컴파일이 실패합니다.
대상 시스템에 ruby-dev
( ruby-devel
rpm 기반 배포판 용) 패키지 를 설치하는 것이 좋습니다 .
gcc
패키지도 필요할 수 있습니다.
시험:
$ sudo apt-get install ruby-dev
또는 Redhat 배포판의 경우 :
$ sudo yum install ruby-devel
또는 [open] SuSE의 경우 :
$ sudo zypper install ruby-devel
답변
들어 맥 OS 10.14에 엑스 코드 (11) 이도 엑스 코드를 설치하고 명령 줄 도구를 설치하고 라이센스에 동의 한 후 발생할 수
sudo xcode-select --install
sudo xcodebuild -license accept
문제는 Xcode 11이 macOS 10.15 SDK를 제공하지만 여기에는 ruby2.6 용 헤더가 포함되어 있지만 macOS 10.14의 ruby2.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
그러나 Xcode 11은 내에 macOS 10.14 SDK를 설치합니다 /Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk
. 다른 답변에서 제안한대로 이전 헤더 파일을 설치하여 시스템 디렉토리를 오염시킬 필요는 없습니다. 대신 해당 SDK를 선택하면 적절한 ruby2.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
마찬가지로 gem install
해당 SDK를 선택하는 동안 작동해야합니다.
현재 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
다음 cygwin 패키지를 설치하여 해결했습니다.
- 루비-데벨
- libffi-devel
- gcc 코어
- gcc-g ++
- 하다
- automake1.15
답변
대부분의 투표 솔루션이 내 컴퓨터에서 작동하지 않았습니다 (linux mint 18.04). 주의 깊게 살펴본 후 g ++이 누락되었음을 발견했습니다. 로 해결
sudo apt-get 설치 g ++