2011-02-05 2 views
0

Apple의 개발 패키지가 설치되지 않은 컴퓨터에 Nokogiri를 설치하려고합니다.Nokogiri를 Apple의 개발 패키지 (Xcode)없이 설치하십시오.

관리자 권한이없는 백그라운드에서 nokogiri를 설치할 수 있어야합니다. Nokogiri는 어떤 OS X 10.5 이상의 컴퓨터에도 설치하기를 원하는 스크립트의 일부입니다.

나는 이것을 시험해 보았습니다.

gem install nokogiri

는 그리고이있어.

WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and 
     /usr/bin aren't both writable. 
WARNING: You don't have /Users/linus/.gem/ruby/1.8/bin in your PATH, 
     gem executables will not run. 
Building native extensions. This could take a while... 
ERROR: Error installing nokogiri: 
    ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h 


Gem files will remain installed in /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4 for inspection. 
Results logged to /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out 

검색 후 this이 발견되었습니다.

Apple은 Xcode가 포함 된 프레임 워크 의 헤더를 제공하지만 OS는 제공하지 않습니다. Xcode를 설치 한 후 업그레이드했기 때문에 Xcode를 다시 설치해야 Ruby 헤더 을 얻을 수 있습니다. Xcode는 설치 DVD에 포함되어 있으며 Optional Installs 디렉토리에서 찾을 수 있습니다.

답변

3

Nokogiri는 표준 XML 파서 인 libxml2를 사용합니다. libxml2에 액세스하려면 C 라이브러리를 사용해야하고 Nokogiri의 Ruby 인터페이스를 libxml2의 C (Apple의 Xcode가 들어오는 곳)에 연결해야합니다.

XCode는 필요한 컴파일러, 링커, 헤더 파일, make를 제공합니다. .. 즉, 모든 것을 작동시키는 데 필요한 모든 것.

이론상으로 이론적으로 XCode가있는 Mac에서 Nokogiri를 만든 다음 Ruby 버전과 libxml2 버전과 같은 다른 모든 항목이있는 한 결과물을 다른 Mac으로 복사 할 수 있습니다. 그것은 우리가 Mac이나 Unix 기반 시스템에서 일하는 일반적인 방식이 아니므로 대다수의 사람들이 필요하지 않은 부분에 담대히 나갈 수 있습니다. 그래서 포함되어 있습니다. 개발자가 당신을 도울 수있는 Nokogiri-Talk mail list. 그들은 정확히 어떤 부분을 복사해야하는지, 그리고 원하는대로 작동하도록 설치해야하는 부분을 알 수 있습니다.

XCode에 대한 참고 사항 : Snow Leopard와 함께 제공되는 DVD의 버전은 버그가 있으므로 사용해서는 안됩니다. 대신 Apple's XCode Developer site에서 버전을 다운로드하십시오. 로그인이 필요하지만 등록은 무료입니다.

컴파일이나 XCode가 필요없는 대안은 Ruby의 ReXML XML 구문 분석기를 사용하는 것입니다. 이것은 기본적으로 Ruby에 포함되어 있습니다. 그것은 모든 Nokogiri 케이크를 지원하지 않지만 이미 있습니다.

관련 문제