libiconv가 없어서 Mac OS에서 Nokogiri 설치가 실패하는 이유는 무엇입니까?


159

Mac OS 10.9.3에 Nokogiri를 설치하려고하는데 시도한 결과에 관계없이 다음 오류 메시지와 함께 설치가 실패합니다.

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** 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.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out

" Nokogiri 설치 "에 설명 된대로 소스에서 brew 및 libiconv 빌드를 사용하여 libxml2 및 libxslt 빌드 및 설치를 포함하여 웹에서 많은 도움을 얻은 후에도 오류는 동일하게 유지됩니다.

Nokogiri에 대한 설치를 실행하려고 할 때 libxml2 및 libxslt는 잘 보이지만 libiconv는 아닙니다.

이러한 것들에 대해 잘 알고있는 사람이라면 누구나 노코 기리 설치 방법을 알고 있습니까?


사용하려는 정확한 명령을 표시하지 않으므로 어두운 곳에서 답변을 시도합니다. 항상을 사용 gem install nokogiri하지만 RVM을 사용하여 Mac OS Ruby 설치를 관리합니다. libxml 및 libxslt는 iconv와 관련이 없으므로 지원 포럼 인 Nokogiri-talk에 대해 질문하는 것이 좋습니다 . Nokogiri를 설치할 때 iconv 문제가 있다는 것을 기억하지 못하고 많은 컴퓨터에 있습니다.
Tin Man

1
그 동안 github에서 github : gitgit.com/tenderlove/nokogiri/issues/442 에 대한 자세한 정보가 담긴 티켓을 열었습니다 .
polarblau

2
여기에 OSX 엘 캐피 탄에 같은 문제를 해결하기 위해 링크의 estebantorr.es/blog/2015/10/02/Nokogiri-in-El-Capitan은
SBS

" sudo gem install nokogiri". sudogem을 설치하거나 기본 Ruby를 수정하는 데 사용하지 마십시오 . 대신 rbenv 또는 RVM을 사용하여 별도의 Ruby를 관리하십시오. 이것은 스택 오버플로에서 여러 번 다루어집니다.
Tin Man

nokogiri 설치 전에 xz 제거 를 시도 했습니까 ?
lifeisfoo

답변:


237

나는 같은 문제가 있었다. 불행히도 " Nokogiri 설치 "에는 Iconv 문제가 포함되지 않습니다. 문제를 해결하는 방법은 다음과 같습니다.

먼저 homebrew를 설치 하면 인생을 더 편하게 할 수 있습니다. 이미 설치 한 경우 다음과 같이 업데이트하여 최신 수식을 가져와야합니다.

brew update

참고 : OSX 10.9 이상에서는 libiconv를 설치할 수 있도록 xCode 명령 도구를 설치해야 할 수도 있습니다.

xcode-select --install

그런 다음 최신 버전의 libiconv를 설치하십시오.

brew install libiconv

그런 다음 보석을 설치하십시오

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

5
"brew install libiconv"및 "brew link libiconv"를 수행하면 nokogiri를 성공적으로 설치할 수있었습니다. 나는 brew가 설치 한 특정 버전의 libiconv에 대한 의존도가 높지 않기를 바라고 있습니다.
Steven Chanin 2016 년

87
내가 brew install libiconv뱉어 낼 때 : 오류 : libiconv에 사용할 수있는 공식이 없습니다. Apple은 OS X와 ​​함께 libiconv를 배포합니다 ./usr/lib에서 찾을 수 있습니다. 일부 빌드 스크립트가 올바르게 감지하지 못합니다. 기존 공식에서 솔루션을 확인하십시오.
세스 브로

62
Mavericks를 실행중인 경우 Xcode의 명령 줄 도구를 설치해야 할 수 있습니다 xcode-select --install. 이것은 나를 위해 문제를 해결했습니다.
Michael Stalker

34
당신은 여전히 얻을 수없는 경우 brew install libiconv: 올바른 공식을 얻을이 사용brew tap homebrew/dupes
jamesdlivesinatree

15
OS X Yosemite(10.10) 나는 그 brew일 을 할 필요가 없었 습니다. 단지는 xcode-select --install나를 위해이 문제를 해결했습니다.
bjfletcher

84

시스템 라이브러리를 사용해보십시오. OSX는 최신 버전의 libiconv와 함께 제공되지만 기본 설치 스크립트에 문제가있는 것 같습니다

gem install nokogiri -- --use-system-libraries

편집 : Geoff가 언급 한 번 들러를 사용하는 경우 다음을 수행 할 수 있습니다.

bundle config build.nokogiri --use-system-libraries

5
번 들러를 사용하는 경우 "bundle config build.nokogiri --use-system-libraries"를 실행할 수 있습니다.
Geoff Evason

1
마지막으로 "번들 설정 build.nokogiri --use-system-libraries"가 작동했습니다. 그렇게되면 싫어
NILS를 petersohn

1
Mac OS 10.10 Yosemite에서 나를 위해 일했습니다.
Lloyd Dewolf

gem install 명령 도중에 여분의 "-"가 필요한 이유는 무엇입니까?
렘브란트 Q. 아인슈타인

3
10.10.3에서 실패했습니다. 로 Xcode 6.3 libxml2 version 2.6.21 or later is required!.
Rivera

36

@Cory의 솔루션에는 정답이 포함되어 있지만 Mavericks의 솔루션은 실제로 최상위 솔루션보다 훨씬 간단하므로 필요한 단계만으로 다시 게시하고 있습니다.

매버릭스 (OSX 10.9+) :

Xcode 명령 행 도구를 설치하십시오.

xcode-select --install

그런 다음 보석을 설치하십시오.

gem install nokogiri

4
요세미티에서 작동합니다. 아래로 스크롤하여 이전 답변을 사용하지 않아서 다행입니다.
yuяi

이 팁을 주셔서 감사합니다! mavericks에 나를 위해 매력을 일했다
아이스크림

내 솔루션을 사용해 보셨습니까? xcode intsalation이 필요하지 않습니다.
Filip Kis

이것은 Nokogiri 문서 ( nokogiri.org/tutorials/installing_nokogiri.html#mac_os_x ) 의 공식 솔루션 이며 El Capitan에서 작동 한 유일한 솔루션입니다 . 수락 된 솔루션이 작동하지 않았습니다.
Johannes

El Capitan에서 저를 위해 일했습니다. Nokogiri docs @Johannes에 대한 링크에 감사드립니다-정말 유용합니다. 모든 사람은 "시스템 라이브러리 사용"이라는 나쁜 해결책은 피해야합니다.
Polsonby

19

마침내이 문제를 해결할 수있었습니다. 위의 해결책 중 어느 것도 나를 위해 완전히 고치지 않았습니다.

gem install nokogiriOSX Lion 10.7.2에서 시도 할 때이 오류가 발생했습니다 . 우선,이 오류는 nokogiri가 libxslt 또는 libxml2를 찾을 수 없어도 동일한 오류가 발생하기 때문에 libiconv가 누락되었다고 말함으로써 실제 문제를 숨 깁니다.

그래서 나는 Homebrew 섹션 ( http://nokogiri.org/tutorials/installing_nokogiri.html) 의 지침을 따랐습니다 (현재 최신 버전의 libxml2를 설명하기 위해 약간 수정되었습니다).

brew install libxml2
brew link libxml2

# install libxslt from source
wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
tar -zxvf libxslt-1.1.26.tar.gz
cd libxslt-1.1.26
./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8
make
sudo make install

이 시점에서 나는 노코 기리 사이트의 지시에 따라 시도했다

gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

그러나 소스에서 libxslt를 빌드 할 때 /include폴더가 펑키 한 장소에 설치되기 때문에 여전히 실패했습니다 . 따라서 다음 libinclude같이 및 폴더를 별도로 지정해야합니다 .

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt

이것은 여전히 ​​작동하지 않으므로 (동일한 libiconv 오류) 세 개의 필수 라이브러리 (libxslt, libxml2 및 libiconv)를 모두 지정하려고했습니다.

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8

이제 다른 오류가 발생했습니다! 여전히 오류이지만 적어도 다릅니다. make 프로세스가 실패했습니다 :

in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64

어? 많은 인터넷 검색을 한 후, 나는이 기적의 게시물을 보았습니다. http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required -건축물/

분명히 OSX Lion은 나쁜 버전의 libz 라이브러리 ( libz.dylib, libz.1.dylib, libz.1.2.4.dylib)와 함께 제공되며 Xcode SDK의 최신 버전으로 바꿔야합니다. 이 기사는 내가 할 수있는 것보다 더 잘 설명하므로 특정 지침은 위의 링크를 읽으십시오.

이것들이 교체되면, 나는 달렸다

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8

다시 모든 것이 잘되었습니다. 나는 이것이 다른 누군가를 돕기를 바랍니다.


나는 같은 문제가 있었지만 opt / local / lib에서 다음 파일을 제거하는 것을 발견했습니다 : libz.dylib 및 libz.1.dylib 그리고 나머지 지침에 따라 트릭을 수행했습니다.
Undistraction

1
/ opt / local은 MacPorts 설치를 나타냅니다. homebrew와 Macports를 사용하고 있다면, 당신의 경우와 같이 약간의 펑키 니스가 생길 것입니다. 가장 좋은 해결책은 Macports를 제거하고 패키지 관리자를 위해 homebrew를 사용하는 것입니다.
Cory

Mavericks (OSX 10.9+)에 대한 새로운 간단한 솔루션을 아래에 추가했습니다.
Micah Winkelspecht

17

군중에게 내 목소리를 추가하기 만했지만 mkmf.log는 x86_64 아키텍처의 심볼을 찾을 수 없다는 내용을 말했습니다. 이 솔루션을 우연히 발견했습니다.

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries

원래의 아수를 위해 아무것도 해결하지 못할 수도 있지만, 이것은 누군가를 도울 수 있습니다.

참고 : nokogiri는 루비 애플리케이션 사용에있어 가장 높은 장벽이었습니다. 누군가 다른 버전에 의존 할 때마다 그것을 빌드하는 방법을 알아야합니다. 그리고 제 문제는 매번 다릅니다.


1
노코 기리 정서에 동의합니다. 마다. 단일. 시각.
jbnunn

이 형태로 저에게는 ARCHFLAGS="-arch x86_64" sudo gem install nokogiri -- --use-system-libraries효과가 없었지만 효과가
있었습니다

이것은 나에게도 훨씬 쉬운 해결책이었습니다. ARCHFLAGS를 사용하지 않았습니다. sudo gem install nokogiri---use-system-libraries
ryudice

8

gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

이것은 macos에서 나를 위해 일했습니다. 그것은 또한 버전과 함께 작동1.6.6.4


--with-xml2-includeCatalina에서 나를위한 옵션 없이 일했습니다 ... gem install nokogiri --version=1.6.6.2 -- --use-system-libraries
ryanc

6

사용하고 있습니다 .. OS X 10.9.4 Homebrew 0.9.4

이 스레드에서 nokogiri를 성공적으로 설치하고 누락 된 libiconv를 수정하는 내 여름이 있습니다.

Homebrew http://brew.sh/를 설치 하거나 아래 명령을 사용하여 최신으로 업데이트하십시오

brew update

libxml2 libxslt 설치

brew install libxml2 libxslt

libxml2 libxslt를 모두 링크

brew link libxml2 libxslt

--force를 사용하라는 경고가 표시되면 아래 명령을 사용하십시오.

brew link --force libxml2 libxslt

libiconv를 설치할 수 있도록 xCode 명령 도구를 설치하십시오.

xcode-select --install

libiconv 설치

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install

마지막 단계, 노코 기리 설치!

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

5

나는 이것을 Yosemite실행 Ruby 2.1.4하여 해결 했다.

  1. xCode 6.1이 설치되어 있는지 확인한 다음
  2. xcode-select --install그런 다음
  3. 앱 스토어에서 클릭 업데이트 하고 명령 줄 도구의 최신 버전을 설치합니다 (이 분명히 xcode-select --installdoes't 할 - 한숨)
  4. 그런 다음 bundle install정상적으로 작동했습니다.

나는 또한 brew install libiconv너무했지만 단계가 필요하다고 확신하지 않습니다.


나는 그것이 필요하다고 생각하지 않습니다 brew install libiconv-나는 적절한 패키지를 찾는 것을 귀찮게하지 않았으며 이것은 나에게 잘 작동했습니다. 물론, 이전에 ruby ​​2.1.1과 함께 nokogiri를 설치했을 때부터 내 컴퓨터에 있었을 수 있습니다.
jmstone617

"AppStore에서 업데이트를 클릭하고 최신 버전의 명령 줄 도구 (xcode-select --install이 수행하지 않음-한숨을 쉬십시오)를 설치하십시오."– 사용 가능한 업데이트가 없습니다. Xcode에서 명령 줄 도구를 어떻게 업데이트합니까? 환경 설정 패널의 "다운로드"섹션에 나타나지 않습니다.
chadoh

이것은 앱 스토어에 가지 않고 나를 위해 일했습니다. 커맨드 라인 도구와 OS (요세미티)를 업데이트 한 다음 실행 xcode-select --install하여 Nokogiri를 설치할 수있었습니다.
스틸

xcode-select --install .. brew install libxml2 .. bundle config build.nokogiri --use-system-libraries .. bundle install
Zack Burt

4

나는 많은 것을 시도했지만 아무것도 나를 위해 일하지 않았다. 그런 다음 iconv 설명서를 마침내 찾았고 하루를 절약했습니다!


매우 감사합니다. 그것은 나의 하루도 구했다.
pisaruk

3

mkmf 파일을 보면 nokogiri (또는 gem, 모르겠다)가 / op / local /에서 종속성을 찾으려고 시도합니다. 나에게는 그것들을 찾는 올바른 길이 아닙니다.

nokogiri가 올바른 위치에서 라이브러리를 찾도록 강요하면 (홈브류를 사용합니다)

$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

노코 기리에서 고칠 수있는 것이 있을지도 모릅니다.

HTH,


3

libiconv는 Homebrew 0.9에서 제거되었습니다. 이제 소스에서 libiconv를 컴파일 한 다음 nokogiri gem을 설치할 때 설치를 참조하는 것이 좋습니다. Nokogiri 설치 페이지 의 Homebrew 0.9 섹션에서 Nokogiri 설치 지침을 참조하십시오.


오늘 기준으로 $ brew install libiconv를 실행할 수 있었고 libiconv-1.14.tar.gz를 다운로드하여 설치했습니다
Evolve

2

gem의 빌드 디렉토리에서 mkmf.log 파일을 확인하십시오 (예 : /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log). 더 많은 정보가 있습니다. 필자의 경우, Nokogiri는 라이브러리 검색 경로에 / opt / local / lib를 추가하고 GNU Backgammon은 호환되지 않는 libiconv를 설치했습니다.


2

MacPorts에 libxml2 및 libxslt를 설치했다고 가정하면 have_func ( 'iconv_open', 'iconv.h') 호출에 사용되는 포함 경로 및 링크 경로 순서가 일치하지 않아서이 오류가 계속 발생합니다.

간단한 (패치) 솔루션 : / usr / local / lib에서 libiconv. * 삭제


나는 libxml2를하고 MacPorts를 설치 libxslt를을했습니다,하지만 libiconv이 없습니다 * / usr / local / lib에 파일을 저장합니다.
발레 스키 아 보니

2
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

위와 동일하게 홈 브루 및 gem 설치를위한 솔루션입니다 (버전에 따라 변경 사항이 적용됨)

그러나 Gemfile 및 번들 설치를 사용하는 경우 설치하기 전에 번들 구성을 적용해야합니다 (여기 코드).

$ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

다시, 변경 사항을 적용하는 것은 버전에 따라 다릅니다

이것이 도움이되기를 바랍니다.

크레딧 : https://gist.github.com/1344331


2

Mountain Lion에서도 비슷한 문제가있었습니다. 이전에 rvm 패키지를 통해 libiconv를 설치했으며 ruby ​​1.9.3 / Mountain Lion / nokogiri에는 더 이상 필요하지 않습니다.

https://rvm.io/packages/ 의 조언에 따라 $ rvm_path / usr 디렉토리를 삭제하고 루비 1.9.3을 다시 빌드했습니다. 그 후 노코 기리 설치는 단순한 보석 설치였습니다. brew / macports / manual source installs와 혼동하지 마십시오!


2

매버릭스 에서이 작업을 수행 할 수도 있습니다.

gem 설치 nokogiri---use-system-libraries = true --with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.9.sdk / usr / include / libxml2

xcode가 설치되어 있는지 확인하십시오.


동일한 솔루션도 10.7.5에서도 작동합니다. gem install nokogiri---use-system-libraries = true --with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer /SDKs/MacOSX10.7.sdk/usr/include/libxml2
tolginho

2

OS X 10.10 Yosemite에서 오늘 노코 기리와 한동안 싸우고있었습니다.

어떤 이유로 내 환경이 엉망이되었습니다.

which bundle그리고 which gem저를 포기했다 /usr/bin/bundle/usr/bin/gem대신~/.rbenv/shims/gem

나를 수정하는 데 도움이 된 것은 sudo rm -i /usr/bin/gem /usr/bin/bundle

1. 종속 3. (재) 제거 내 프로젝트 디렉토리 2로 다시 전환 종속 libs와 -installed : 나는 것으로는 후했다 brew install libxml2 libiconv libxslt 4. 5.했다 (rbenv와) 내 루비 버전의 신선한 설치 gem install bundler (6)과 bundle install어떤없이 달렸다 문제.

Nokogiri 그 후 괜찮 았습니다.

참고로 :

╰─% cat .bundle/config           
---
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_JOBS: 4

╰─% which ruby bundle gem
~/.rbenv/shims/ruby
~/.rbenv/shims/bundle
~/.rbenv/shims/gem

1
hindsight (항상 20/20 임)에서 아마도 rbenv를 먼저 추가하기 위해 PATH env-variable을 조정했을 수 있습니다.
Sam Figueroa

1

홈브류를 0.9로 업그레이드해야합니다

다음 단계를 따르십시오

brew install libxml2 libxslt
brew link libxml2 libxslt
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

폴더 라이브러리 버전을 다시 확인해야합니다.


링크와 sudo는 문제를 일으킬 것입니다. 몇 가지 이유로 술통 전용입니다. 유지 관리가 더 쉽기 때문에 추출 공식을 사용하십시오. brew create http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz && brew install libiconv

1

HOMEBREW 사용자

homebrew를 사용하는 경우이 문제를 해결하기위한 올바른 솔루션 :

xcode-select --install

대화 상자에서 "Get Xcode"를 선택하십시오.

brew unlink libiconv
gem install nokogiri

xcode-select 단계는 Xcode 설치 및 Xcode Command Line Utils 설치를 수정합니다. O / S 업그레이드 또는 백업에서 복원하는 데 문제가 있기 때문에 /usr/include/iconv.h가 없다는 것을 알았습니다. xcode-select를 실행 한 후 해당 헤더 파일과 /usr/lib/libconv.dylib가 없으면 Xcode를 응용 프로그램 폴더에서 휴지통으로 끌어다 놓고 다시 설치 한 다음 Xcode 용 명령 줄 도구를 수동으로 다운로드해야합니다 에서 https://developer.apple.com/downloads/index.action 과하면 해당를 설치합니다.

그런 다음 homebrew에서 libiconv를 연결 해제해야합니다. 당신은 이것을 필요로하지 않습니다. clang은 실제로 /usr/include/iconv.h에서 /usr/local/include/iconv.h를 선택하고 #iconv_open을 libiconv_open으로 정의하지만 libiconv_open이없는 /usr/lib/libiconv.dylib에 대해 링크합니다. mkmf가 libiconv를 찾지 못하는 원인입니다. 당신이해야 할 일은 nokogiri가 그것을 찾을 수 없도록 iconv.h의 링크를 제거하는 것입니다.

그런 다음 정상적으로 노코 기리를 만드십시오.

신규 사용자의 경우 xcode-select를 사용하여 xcode를 설치하고 nokogiri를 설치하기 만하면되지만,이 질문을 찾은 경우 Mavericks를 새로 설치하지 않고 설치가 완료된 것 같습니다.

여기에있는 다른 답변 중 일부는 분명히 틀립니다. 그들 대부분은 사제에서 libiconv를 사용하려고 시도하는데 이는 완전히 필요하지 않습니다. brew link libiconv실제로 clang이 혼란스러워서 homebrew 헤더 파일을 읽고 시스템 라이브러리에 연결하려고 시도하는 문제를 실제로 일으키는 답변 . --use-system-librariesnokogiri는 번들로 제공되는 libxml2 및 libxslt 라이브러리와 링크되어야하므로 다른 버전의 라이브러리와 호환되지 않기 때문에 제안한 답변 은 좋지 않습니다. 소스에서 컴파일하려는 답변은 절망적으로 지나치게 복잡합니다.

TL; DR :

  • Xcode 설치 업그레이드 및 / 또는 수리
  • 문제를 야기하는 사용을 시도한 후 homebrew libiconv 연결을 해제하십시오
  • 정상적으로 노코 기리를 건설하십시오

RVM 사용자

이전 RVM 설치는 시스템 라이브러리와 충돌하는 rvm 디렉토리에 libiconv가 숨겨져있을 수 있습니다. 자세한 내용은 https://stackoverflow.com/a/11809261/506908 을 참조하십시오.

MacPorts 사용자

/opt/local/lib/libiconv.dylib를 사용하는 경우 nokogiri는 검색 한 디렉토리 목록에 해당 경로를 추가하고 홈 브루 크 libiconv를 선택하고 시스템 라이브러리와 충돌하는 방법과 유사한 MacPorts 설치를 찾습니다. 당신은 시도 할 수 있습니다:

sudo port uninstall libiconv

의존성으로 인해 실패하면 MacPorts 버전과 직접 연결을 시도해 볼 수 있습니다.

gem install nokogiri -- --with-iconv-dir=/opt/local

gem install nokogiri -- --with-iconv-dir=/opt/localMacPorts가 libiconv설치된 상태
에서도 제대로

1

이것은 나를 위해 일했다

sudo env ARCHFLAGS = "-arch x86_64"gem 설치 nokogiri : 1.6.6.2---use-system-libraries --with-xml = / usr / local / Cellar / libxml2 / 2.9.3 / --with-iconv- dir = / usr / local / Cellar / libiconv / 1.14


--use-system-libraries와 --with-iconv-dir의 결합으로 나를 위해 해냈습니다
aaaarrgh

0

오늘 아침에 매버릭스로 업그레이드 한 후이 문제가 발생했습니다. 우리는 많은 일을했습니다. 그러나 누군가이 문제를 겪고 있다면 여기에 시도해야 할 것이 있습니다.

'xcode-select --install'을 실행 한 다음 명령 줄 도구를 설치했습니다 (놀랍게도 OS ugrade에서 업데이트되지 않았습니다). 나는 'rvm implode'를 실행했습니다 (나중에 다시 빌드 할 것입니다).

우리는 두 가지 오류 출력 파일을 하나로 묶었습니다.

~ / .vagrant.d / gems / gems / nokogiri-1.6.3.1 / ext / nokogiri / gem_make.out

~ / .vagrant.d / gems / gems / nokogiri-1.6.3.1 / ext / nokogiri / tmp / x86_64-apple-darwin12.5.0 / ports / libxml2 / 2.8.0 / configure.log

c 컴파일러가 놀라운 설정을 사용하고 있음을 나타내는 것 같습니다.

나는 'env'를 달렸다.

포함 된 출력 :

...
CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2
...
CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2
...

이 파일들은 파일 시스템에 존재하지 않았습니다 ...

이러한 모든 변경 사항이 새로운 터미널 창으로 이동 한 후 모든 것이 새로워졌습니다. 방랑자 선반 설치 (노코 기리 설치)가 잘 작동했습니다.

참고 : 새 창에서 'env'를 실행할 때 더 이상 CC 또는 CXX에 대한 설정이 없습니다 ...

이것의 핵심 부분을 확신하지 못하거나, 주문이 중요하다면, 이것이 작동하도록하는 데 역할을하는 것으로 보이는 부분을 재생성하려고했습니다.


명령이 gem install nokogiri성공 했습니까? "이미 설치됨"메시지가 표시되거나 성공적으로 설치 되었습니까?
Spundun

예. Mac에 백업을 구축 할 때 rvm과 oh-my-zsh를 다시 설치했습니다. 내가 알아낼 수 없었던 것은 nokogiri를 rvm gemset에 설치하는 방법입니다. 'rvm use system'으로 다시 전환하면 OS X ruby ​​2.0.0p451에있는 1.5.6 위에 nokogiri 1.6.3.1을 설치할 수 있습니다.
애런 블라이스

결국 나를 위해 그것은 stackoverflow.com/questions/19643153 / ... brew uninstall apple-gcc42 brew install apple-gcc42
aaron blythe

0

문서에 따르면 OSX 10.9 및 Homebrew 9.5+에서 개발 도구가 누락되었을 수 있습니다.

노코 기리 설치

문제 해결

libiconv missing을 언급하는 데 문제가 있으면 다음과 같이 보입니다.

Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries.

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for          help with installing dependencies.
-----
*** extconf.rb failed ***

그렇다면 올바른 개발자 도구가 없을 것입니다. 이것은 정말 쉬운 수정입니다.

brew unlink gcc-4.2      # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri

이것은 xcode의 clang 컴파일러가있는 OSX 10.9에서 작동하는 것으로 확인되었습니다.


0

Mac OS를 Yosemite로 업그레이드했을 때이 문제가 발생했습니다. 다음을 수행 하여이 문제를 해결할 수있었습니다.

xcode-select --install
brew uninstall libiconv
brew install libiconv
gem install nokogiri

0

나는 비슷한 문제가 있었고 받아 들인 대답이 나를 위해 일했다. 그러나이 gmkdir질문과 같이 명령이 누락 된 새로운 오류 메시지가 나타 났습니다.

gem 설치 nokogiri -v '1.5.11'은 (는) 다음으로 인해 실패했습니다 : / usr / local / bin / gmkdir : 해당 파일 또는 디렉토리가 없습니다.

나를 위해 일한 것은 먼저 약간의 정리였습니다.

brew uninstall libiconv
brew uninstall libxml2
brew uninstall libxslt

그런 다음 brew unlink libiconv연결을 해제 해야하는 모든 항목 (으로 확인 brew doctor). 그런 다음 마술 2 줄 (링크 된 답변에서 복사) :

brew install coreutils
gem install nokogiri

0

설치 제거 및 설치를 시작하기 전에 따라야 할 간단한 단계입니다. CLT (명령 줄 도구)가 설치되어 있는지 확인하십시오.

brew config

재설치 할 필요가없는 경우 여기에서 CLT 버전을 참조하십시오.

이것은 문제가 번 들러 gem 만 다시 설치하여 권한이 없다는 것을 의미합니다. gem uninstall bundler gem 번 들러 재설치로 번 들러 제거 gem install bundler

여기서 가장 중요한 점은 번 들러 gem이 설치되는 권한이며 절대 sudo되지 않아야합니다.


-1

우선 nokogiri의 설치 안내서를 따르십시오 : http://nokogiri.org/tutorials/installing_nokogiri.html

가이드를 따른 후에도 여전히이 문제가 발생했습니다. 이것이 내가 해결 한 방법입니다.

먼저 homebrew를 사용하여 iconv를 설치했습니다 .brew install iconv

그런 다음 루비를 제거했습니다. 다행히도 rvm을 사용하면 매우 쉽습니다.

rvm uninstall 1.9.2        

그런 다음 다음 옵션으로 루비를 다시 설치해야했습니다.

CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1

그런 다음 새로운 루비 버전으로 gemset을 만듭니다.

rvm use 1.9.2@coolproject

그런 다음 마침내 다음과 같이 nokogiri를 설치할 수 있습니다.

gem install nokogiri -v=1.4.4 -- --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

-1

필자의 경우 (scotchi와 마찬가지로) / opt / local / lib의 호환되지 않는 iconv 라이브러리로 인해 빌드가 실패했습니다. 기본적으로 Nokogiri 빌드 프로세스는 / opt / local을 먼저 봅니다. 다른 설치 디렉토리 인 / usr / local을 사용하도록하려면 다음을 수행하십시오.

gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include

-1

블로그 포스트는 libiconv를 수동으로 설치하도록 제안합니다.

그 후, noikogiri는 libiconv를 찾을 수있는 위치를 알려주는 여러 스위치와 함께 설치할 수 있습니다 (블로그 게시물 참조).

참고 사항 : nokogiri를 설치 한 후 gollum을 설치했습니다 (iconv를 찾을 수 없어 설치에 실패했습니다). 골룸을 시작할 때 파이썬이 충돌하기 때문에 여전히 문제에 직면하고 있습니다.


-1
$ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247

$ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so*

$ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*

2.0.0-p0 gem 설치에있는 2.0.0-p247에 누락 된 /lib/iconv/iconv.so 파일이 있습니다.

$ rbenv version
2.0.0-p247 (set by /home/XXX/tmp/.ruby-version)
$ rbenv which gem
/home/XXX/.rbenv/versions/2.0.0-p247/bin/gem
$ gem --version
1.8.25

$ rbenv which pry
/home/XXX/.rbenv/versions/2.0.0-p247/bin/pry
$ pry
[1] pry(main)> require 'iconv'
LoadError: cannot load such file -- iconv/iconv.so
from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'

파일을 복사하십시오

$ pushd ~/.rbenv/versions/
$ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/

지금은 작동합니다!

$ pry
[1] pry(main)> require 'iconv'
=> true

참고 : rbenv로 작업하고 있지만이 문제는 gem 설치와 관련이 있으며 스트림을 수정해야합니다!
대런 웨버

이 답변은 nokogiri의 빌드가 의존하는 C libiconv 라이브러리와 관련이 없습니다. 대답은 정말로 제거되어야합니다.
lamont

-1

실행하기 전에 먼저 gcc를 설치해야했습니다 ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.