Nokogiri gem이 OS X Mavericks에 설치되지 않습니다. 같은 오류가

설치 실패 표시 :

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에 내장 된 루비 버전이 사용하고 싶은 보석과 호환 될 수 있다고 가정 할 수 없습니다. 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*