
저는 CentOS 5.3에서 Ruby 1.9.3을 실행하고 있습니다. libyaml과 함께 소스에서 Ruby 1.9.3을 컴파일하여 설치했습니다. 또한 rbenv를 사용하여 버전을 관리하고 있으므로 rbenv가 Ruby 버전을 보관하는 ~/.rbenv/versions/1.9.3-p286에 컴파일된 설치를 배치했습니다.
모든 것이 잘 작동하고 있으며 이제 Gems를 설치하고 있습니다. 그러나 특히 하나의 gem은 아직 설치되지 않았으므로 종속성이 누락된 것 같습니다. 내부 gem이므로 RubyGems에는 나열되지 않지만 gem 설치 결과는 다음과 같습니다.
Building native extensions. This could take a while...
ERROR: Error installing vmc-helper:
ERROR: Failed to build gem native extension.
/home/fs/.rbenv/versions/1.9.3-p286/bin/ruby extconf.rb
checking for expat.h... no
checking for xmlparse.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
저는 Debian 사용자이므로 Redhat/RPM 패키지 등에 대한 경험이 없으므로 이 Gem을 설치하기 위해 시스템에 어떤 종속성이 누락되어 있는지 잘 모르겠습니다.
위에서 누락된 헤더 파일을 설치하기 위해 어떤 패키지를 설치해야 하는지 알려줄 수 있는 사람이 있나요?
답변1
누락된 파일을 찾으십시오.
checking for expat.h... no
checking for xmlparse.h... no
이제 yum
해당 파일을 제공하는 패키지를 검색하는 데 사용하십시오.
yum provides */expat.h
여기에는 여러 패키지가 표시됩니다. 당신이 찾고 있는 것은 /usr/include/expat.h
표준 포함 디렉터리를 포함하는 것입니다. 따라서 표시된 패키지를 설치하십시오.
yum install expat-devel
다른 파일에 대해 프로세스를 반복합니다.
yum provides */xmlparse.h
여기서는 실패하고 오류가 발생합니다 No matches found
. 이 경우, gem 소스 코드를 읽거나 개발자에게 연락하여 어떤 패키지를 갖고자 했는지 알아내야 합니다. 이는 시스템 요구 사항으로 gem 문서에 나열되어야 합니다(개발자가 문서 작성을 귀찮게 한 경우).