Nokogiri 설치 실패 -libxml2가 누락되었습니다.
저는 항상 "노코기리 설치" 튜토리얼의 문서를 따라 노코기리 설치 문제를 해결했습니다.
그런데 이번에는 종속물을 모두 설치하고도 노코기리가 설치되지 않았습니다.다음 오류가 발생합니다.
libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html>
libxml2 및 libxslt 디렉토리를 지정하여 설치해 보았습니다.
sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/
하지만 같은 오류를 반환했습니다.
다른 관련 Stack Overflow 기사를 모두 팔로우했지만 아무도 도움이 되지 않았습니다.해결책이 있는 사람?
실제로 이 두 패키지를 모두 설치해야 할 수도 있습니다.
sudo apt-get install libxslt-dev libxml2-dev
먼저 종속성을 설치합니다.
sudo apt-get install libxslt-dev libxml2-dev
그래도 오류가 발생하면 컴파일러 도구 체인이 없을 수 있습니다.
sudo apt-get install build-essential
빌드 도구 체인이 누락된 경우 "libxml2 is missing" 오류가 발생합니다(적어도 Debian Lenny에서 이 문제를 마주쳤습니다).
Nokogiri 빌드는 libxml2 헤더 파일이 있는지 확인하기 위해 테스트 컴파일을 수행하지만 "libxml2가 누락됨"과 "libxml2를 테스트할 컴파일러가 누락됨"을 구별하지 않습니다.
Mac OS X(Mavericks)에서 라이브러리 설치brew
및 설정NOKOGIRI_USE_SYSTEM_LIBRARIES=1
그 보석을 설치하기 전에 저를 위해 묘기를 부렸습니다.
요약:
이전에 설치한 경우 보석을 제거합니다.
gem uninstall nokogiri
홈브루를 사용하여 설치
libxml2
,libxslt
그리고.libiconv
:brew install libxml2 libxslt libiconv
연결할 라이브러리의 경로를 지정하는 보석을 설치합니다.
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
방금 페도라 13에서 같은 문제가 있었습니다.실망스럽고 실패한 검색 후에
gem install nokogiri
저는 그것을 설치하고 libxml2 오류를 피할 수 있었습니다.yum
.
다음을 통해 보석을 설치하기만 하면 됩니다.yum
대신에gem
명령:
su
yum search rubygem-nokogiri #this find the proper package name
yum install rubygem-nokogiri.i686
이것은 페도라에 대한 올바른 답을 찾는 데 도움이 되었고, Ruby 패키지 관리를 위해 RVM을 사용하고 있기 때문에
yum install rubygem-nokogiri
Ruby 보석과 종속성을 모두 RVM 환경이 아닌 시스템으로 끌어들일 것이며, 이는 매우 좌절스럽고 겸손한 경험으로 이어질 것입니다.
노코기리 윰 보석을 찾으시면 다음과 같습니다.
yum provides rubygem-nokogiri
그리고 루비젬-노코기리의 종속성 목록을 가져와 누락된 라이브러리를 보여주었습니다.그 후에 나는 도망쳤습니다.
yum install libxml2-devel libxslt libxslt-devel
이제 노코기리는 페도라와 노코기리 설치를 컴파일합니다.D'oh! 개발 라이브러리에서 노코기리를 컴파일하려면 헤더가 필요합니다.
Mac OS X(Mavericks)에서 이러한 솔루션이 작동하지 않는 경우 다음을 시도합니다.
ARCHFLAGS="-arch x86_64" gem install nokogiri
또는
ARCHFLAGS="-arch i386" gem install nokogiri
시스템 아키텍처에 따라 다릅니다.
일반적으로 보석을 만들기 위해 개발 파일이 필요합니다.시도:
sudo apt-get install libxslt-dev libxml2-dev
(방금 에릭이 댓글로 똑같이 제안한 것을 보았습니다.)
Chocolaty, Windows 8.1 x64 및 DevKit x64로 설치할 수 있었습니다.
cinst libxml2
cinst libxslt
cinst libiconv
gem install nokogiri --
--with-xml2-include=C:\Chocolatey\lib\libxml2.2.7.8.7\build\native\include
--with-xml2-lib=C:\Chocolatey\lib\libxml2.redist.2.7.8.7\build\native\bin\v110\x64\Release\dynamic\cdecl
--with-iconv-include=C:\Chocolatey\lib\libiconv.1.14.0.11\build\native\include
--with-iconv-lib=C:\Chocolatey\lib\libiconv.redist.1.14.0.11\build\native\bin\v110\x64\Release\dynamic\cdecl
--with-xslt-include=C:\Chocolatey\lib\libxslt.1.1.28.0\build\native\include
--with-xslt-lib=C:\Chocolatey\lib\libxslt.redist.1.1.28.0\build\native\bin\v110\x64\Release\dynamic
경로의 버전 번호가 올바른지 확인해야 합니다.
Microsoft의 NuGet 저장소를 추가해야 할 수도 있습니다.
-Source "https://go.microsoft.com/fwlink/?LinkID=230477"
다음과 같습니다.
sudo yum install -y libxml2 libxml2-devel
RHEL 서버에서.
xCode libxml2에 으로 제공하기 에서 위 어느 .--with-xml2-include
.
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 --use-system-libraries
다음을 수행하여 Fedora 20에 Nokogiri 1.6.5를 설치할 수 있었습니다.
export NOKOGIRI_USE_SYSTEM_LIBRARIES=true
실행 중:
gem install nokogiri
이 문제를 겪고 있는 다른 사용자를 위해 프로젝트 디렉토리 내에서 이 명령을 실행하여 해결했습니다.
gem install nokogiri -- --use-system-libraries
업데이트: 다시 이 문제에 부딪혔고 저에게 효과가 있는 보석을 업데이트하려고 했습니다.
gem update nokogiri
libxml2를 설치해 보셨습니까?루비 보석이 아니라 운영 체제의 표준 설치 프로세스를 통해.예를 들어 Ubuntu/Debian의 경우:
sudo apt-get install libxml2
OS X의 최신 버전에는 이미 설치되어 있어야 합니다.
OSX 사용자의 경우, 이전에 Nokogiri를 설치한 적이 있지만 추가한 새 버전의 Ruby를 사용하는 등 오류가 발생하고 다음과 같은 메시지는 다음과 같습니다.
The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
이는 앱스토어를 통해 XCode 업그레이드가 수동 또는 자동으로 수행되었으며 그 이후로 XCode를 열지 않았음을 나타낼 수 있습니다.
그렇다면 XCode를 열고 새 라이센스에 동의한 다음 Nokogiri를 성공적으로 설치할 수 있어야 합니다.
X 제는 Mac OS X를 사용하려고 입니다.sudo gem install
보석을 설치할 때 수퍼유저 권한을 사용하지 않는 것이 원칙일 때.
제 경우에는 루비의 시스템 설치를 수정하려고 했는데, 그것은 좋은 생각이 아닙니다.rbenv를 하고, 2.후 rbenv로 했습니다.global
이것은 rbenv의 문서에서 나온 용어입니다.그 후 노코기리는 간단한 것으로 스스로를 설치할 수 있었습니다.
gem install nokogiri
해킹이나 해결책이 필요하지 않았고, 환경만 적절히 설정했을 뿐 나머지는 노코기리가 완벽하게 처리했습니다.
위의 게시물에 따라 다음과 같은 명령을 사용하여 vagrant-aew를 설치할 수 있었습니다.
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 vagrant plugin install vagrant-aws
Windows x64의 경우:
gem inst nokogiri --pre --platform ruby
자세한 내용은 다음 스레드를 확인하십시오. https://github.com/sparklemotion/nokogiri/issues/864
다음 패키지를 실행하여 노코기리를 설치할 수 있었습니다.
$ dnf group install "C Development Tools and Libraries"
$ dnf install ruby-devel libxml2-devel patch
TLDR ===
지침에 명시된 대로 최신 clang 컴파일러로 Ruby를 빌드하거나 적어도 Rubygems가 Nokogiri의 기본 확장자 libxml 및 libxsl을 컴파일하는 데 사용할 버전과 동일합니다.
RVM을 .--with-ggc=clang
플래그가 제게 해준 것입니다.
rvm install 2.2 --with-gcc=clang
를 바꿉니다.2.2
원하는 버전으로. --with-gcc=clang
소스에서 RVM을 빌드하고 이를 위해 clang을 사용합니다. 그렇지 않으면 RVM이 미리 빌드된 이진 Ruby를 사용할 수 있으므로 문제가 발생했습니다.
그런 다음 번들러 또는 루비젬을 사용하여 노코기리를 정상적으로 설치합니다.
심층 ===
저는 한동안 이것과 씨름했습니다. gem install nokogiri
나에게 준 것:
checking for xmlParseDoc() in libxml/parser.h... no
checking for xmlParseDoc() in -lxml2... no
checking for xmlParseDoc() in -llibxml2... no
를 중mkmf.log
본 적 있어요.
conftest.c:15:27: error: too few arguments to function call, single argument 'cur' was not specified
int t(void) { xmlParseDoc(); return 0; }
Nokogiri는 자체 libxml 및 libxsl을 제공합니다(1.6.4 기준).Nokogiri의 parser.h 로컬 복사본(gem 설치 디렉토리 아래에 있음)에 정의된 서명은 다음과 같습니다.
xmlParseDoc (const xmlChar *cur);
그래서 밀폐된 confortest.c 파일의 메소드 호출이 parser.h의 헤더 파일과 어떻게 일치하지 않는지 당황했습니다.
아마도 바이너리 루비를 설치했을 것이라는 것을 알았을 때, 나는 다음을 사용하여 제거했다가 다시 설치했습니다.--with-gcc=clang
을 강요하고가 해결되었습니다.
rvm uninstall 2.2
rvm install 2.2 --with-gcc=clang
gem install nokogiri
저는 왜 헤더 libxml로 /usr/include/libxml2/libxml/parser.h
노코기리의 로컬 복사본과 동일한 서명이 있습니다.
이상하지만, 효과가 있었습니다.그냥 쨍그랑 루비를 컴파일하는 것만 확인하세요.
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
버전을 변경합니다.
언급URL : https://stackoverflow.com/questions/6277456/nokogiri-installation-fails-libxml2-is-missing
'programing' 카테고리의 다른 글
파이썬에서 파일 경로에서 폴더 경로를 추출하려면 어떻게 해야 합니까? (0) | 2023.06.15 |
---|---|
data.table 열 순서 변경 방법(복사하지 않음) (0) | 2023.06.15 |
Excel 파일에서 Apache POI XSSF 읽기 (0) | 2023.06.15 |
이 프로그램은 종을 울립니다! (0) | 2023.06.15 |
각도 인터셉트카 제외 특정 URL (0) | 2023.06.15 |