Nokogiri gem이 OS X Mavericks에 설치되지 않습니다.


1

설치 실패 표시 :

checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
checking for libiconv_open() in -liconv... no
libiconv is missing.

그러나 nokogiri의 mkmf.log를 보면 다음과 같은 오류가 표시됩니다.

ld: warning: ignoring file /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib

ld: warning: ignoring file /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib

ld: warning: ignoring file /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib

xcode가 있고 명령 도구가 설치되어 있습니다. 내 ~ / .bash_profile에 64 비트 컴파일 강제 설정 : export ARCHFLAGS = "- arch x86_64"

나는 Homebrew를 통해 libxml2, libxslt 및 libiconv를 설치했으며 각각은 링크되어 있습니다. 나는이 모든 것을 ARCHFLAG없이 .bash_profile에 설치하려고 시도했다.

나는 또한 apple-gcc42를 설치하고 연결된 방법을 찾았습니다.

나는 경로를 libxml2, libxslt 및 libiconv에 / usr / local / Cellar /에 전달하여 nokogiri 설치를 시도했지만 위와 같은 오류가 발생하여 설치가 여전히 실패합니다.

나는 이것에 적어도 하루를 낭비했다 - 단지 하나의 루비 보석을 설치하려고 노력했다. 나는 실제로 발전하기 위해 돌아가고 싶다.

아무도 도와 줄 수 있니?


어느 루비를 사용하고 있습니까? 기본 OS X 또는 RVM 관리 루비? RVM 관리 2.1.1에서는 'gem install nokogiri'에 아무런 문제가 없습니다. Xcode 5.1.1을 사용하고 있습니다. 자체 libxml2 및 설치 nokogiri-1.6.3.1을 빌드하고 설치합니다.
Ian C.

답변:


1

OS X에 내장 된 루비 버전이 사용하고 싶은 보석과 호환 될 수 있다고 가정 할 수 없습니다. App Store / Software Update / softwareupdate를 사용하지 않는 한 OS X에 포함 된 루비 버전을 제거하거나 업데이트하거나 업그레이드하지 마십시오. 대부분의 rubier는 OS X에서 제공되는 루비를 사용하는 것을 귀찮게하지 않는다고 말할 것입니다.하지만 여러 버전의 루비를 설치할 수 있습니다. 루비 버전 관리자 당신이 많은 보석을 사용하려고한다면.

루비는 한 번 사용하기 쉽지만 지금은 반드시 지원해야하는 버전의 수가 많습니다. 보석 개발자는 이미 루비 설치가 완벽 할 때 다른 버전에서 루비의 새 버전을 설치해야 할 때가 있습니다 ! Grr. 지원 정보가있을 수 있지만 루비는 정말로 새내기를 시작했습니다. 새 정보를 제공하는 낚시 릴처럼 보이기 때문입니다. IMO, 루비가 깨졌습니다. 누군가 그것을 꺼내어 정정을 위해 깔끔하게 꺼내야합니다. 나는 그 사람이 아니야. 나 아니야.

brewinistas 열정에도 불구하고, 자제 패키지 관리자는 미숙 한 패키지 관리 솔루션의 전형적인 통증이 있습니다. 나는 사용한다 맥 포트 모든 설치 작업을 관리 할뿐만 아니라 내가 원하는 보석을 사용하는 데 필요한 다양한 버전의 루비 설치를 지원합니다. MacPorts에는 적절한 버전의 xcode가 필요합니다. xcode_5.1.1.dmg Mavericks의 최신 버전입니다. rvm은에서 MacPorts를 사용합니다. 태만 설치되어있는 경우.

제공된 로그에서 누락 된 항목이 나타납니다. 그것이 MacPorts (그리고 성숙한 패키지 관리자)에 대해 좋은 점입니다. 그들이 설치되지 않은 경우 당신을 위해 의존을 돌보아줍니다.

MacPorts 설치

 curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2

 tar xf MacPorts-2.2.1.tar.bz2

 cd MacPorts-2.2.1

 ./configure

 make

 sudo make install

 cd ..

 rm -rf Macports-*

 sudo /opt/local/bin/port -v selfupdate

$ PATH에 MacPorts를 추가하십시오 :

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

MacPorts가 루비에 대해 가지고있는 것을 보아라.

 port search ruby |less

그리고 / 또는 nokogiri를 설치하기 만하면됩니다.

 sudo port -vsk install ruby19 libxml2 libxslt 

 sudo gem install nokogiri

 port -vfp clean ruby19 libxml2 libxslt

시도하는 데 문제가 있으면 시도하십시오.

 sudo port upgrade outdated

MacPorts는 OS X 버전의 버전이나 홈브류 (불필요한 것을 제외하고는)에 영향을 미치지 않으며, / opt에 설치하는 모든 것을 유지하면서 삭제를 쉽게 만듭니다 (그러나 이것은 루비가 보석을 가지고있는 곳과는 아무런 관련이 없습니다 ~ / .gem ). 하지만 너 진짜로 가야 해. 알고있다 그리고 맥 포트를 사랑해, 네 친구 야.

MacPorts를 완전히 제거하는 방법

 sudo port -dfp uninstall --follow-dependencies installed

 sudo port -dfp uninstall all

 sudo rm -rf /opt/local  

 sudo rm -rf /Library/Tcl/macports*

고마워, 나는 이것을 시도하고 i386 / x64 (나는 여기에서 포맷 할 수 없다)와 관련된 유사한 오류를 얻는다 : ld : 경고 : 파일 무시 /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.1 /ports/x86_64-apple-darwin13.1.0/libxslt/1.1.26/lib/libxslt.dylib, 링크 된 아키텍처가 아닌 x86_64 용 파일이 작성되었습니다 (i386). /Library/Ruby/Gems/2.0.0/ gems / noko 85 ld : 경고 : 파일 무시 /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin13.1.0/libxml2/2.8.0/lib/libxml2.dylib , 링크 된 아키텍처가 아닌 x86_64 용으로 만들어진 파일 (i386) : /Library/Ruby/Gems/2.0.0/gems/nokog
user3591456

어떤 시스템을 사용하고 계신지 말씀하지 않으 셨을 것입니다. 아마도 시스템이 64 비트 커널을 사용하도록 강제하는 것만 큼 간단 할 것입니다 (10.6을 사용하고 있다면 후속 시스템은 이미 64 비트 커널을 사용해야합니다). 64 비트 모드를 사용하려면 Mac이 시작될 때 '6'및 '4'키를 누르고 있으십시오. 터미널을 열고 다음을 입력하십시오. nvram boot-args="arch=x86_64" 다음과 같이 32 비트 모드로 재설정합니다. sudo nvram boot-args=""
chillin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.