programing

맥 OS에 노코기리를 설치하면 실패하고 libiconv가 누락되는 이유는 무엇입니까?

yellowcard 2023. 6. 4. 10:27
반응형

맥 OS에 노코기리를 설치하면 실패하고 libiconv가 누락되는 이유는 무엇입니까?

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

소스에서 brew를 사용하여 libxml2 및 libxlt를 빌드 및 설치하고 libxlt를 빌드하는 것을 포함하여 웹에서 발견된 많은 도움말을 따라한 후("노코기리 설치"에서 설명한 바와 같이) 오류는 그대로 유지됩니다.

Nokogiri에 대한 설치를 실행하려고 할 때 libxml2와 libxlt는 정상인 것처럼 보이지만 libiconv는 아닙니다.

이것들에 대해 더 잘 아는 사람이 노코기리를 설치하는 방법을 알고 있습니까?

저도 같은 문제가 있었습니다.안타깝게도 "노코기리 설치"는 Iconv 문제를 다루지 않습니다.문제를 해결한 방법은 다음과 같습니다.

홈브루를 먼저 설치하면 생활이 편해질 것입니다.이미 설치된 경우 다음과 같이 업데이트하여 최신 공식을 확인하십시오.

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

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

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

편집: Geoff가 언급한 바와 같이 번들러를 사용하면 다음을 수행할 수 있습니다.

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

@코리의 솔루션은 정답을 포함하고 있지만, 매버릭스의 솔루션은 사실 탑 솔루션보다 훨씬 간단해서 필요한 단계만 가지고 다시 게시합니다.

매버릭스(OSX 10.9+):

Xcode 명령줄 도구 설치:

xcode-select --install

그런 다음 보석을 설치합니다.

gem install nokogiri

저는 마침내 이 문제를 해결할 수 있었습니다.위의 어떤 해결책도 나에게 그것을 완전히 고쳐주지 않았습니다.

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

그래서 저는 Homebrew 섹션(libxml2의 최신 버전을 설명하기 위해 수정됨) 아래에 있는 http://nokogiri.org/tutorials/installing_nokogiri.html 의 지침을 따릅니다.

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폴더가 펑키한 곳에 있습니다. 따서다지야합니다해정을음라▁so를 해야 합니다.lib그리고.include다음과 같은 개별 폴더:

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

그래도 작동하지 않았습니다(같은 libxslt, libxxml2 및 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

이제 다른 오류가 발생했습니다!그것은 여전히 오류였지만 적어도 그것은 달랐습니다.만들기 프로세스가 실패했습니다.

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-architecture/

라이브러리의 됩니다.libz.dylib, libz.1.dylib, libz.1.2.4.dylib및 SDK의 및 Xcode SDK의 최신 버전으로 교체해야 합니다.이 기사는 제가 이해할 수 있는 것보다 더 잘 설명하고 있으므로 구체적인 지침은 위 링크를 참조하십시오.

이것들이 교체되자, Iran은

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

다시 그리고 모든 것이 잘 되었습니다.이것이 다른 사람에게 도움이 되기를 바랍니다.

군중에 내 목소리를 추가하는 것뿐인데, mkmf.log는 x86_64 아키텍처에 대한 기호를 찾을 수 없다는 것에 대해 말했습니다.이 솔루션을 우연히 발견했습니다.

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

원래 질문자에게는 아무것도 해결하지 못할 수도 있지만, 누군가에게는 도움이 될 수도 있습니다.

측면 참고: 노코기리는 루비 애플리케이션을 사용하는 것에 대한 나의 가장 큰 장벽이었습니다.누군가가 다른 버전에 의존할 때마다 저는 그것을 만드는 방법을 알아내야 합니다.그리고 저의 문제는 매번 다릅니다.

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

이것은 마커스에서 저에게 효과가 있었습니다. 버에서작다니합동도 합니다.1.6.6.4

저는...OS X 10.9.4홈브루 0.9.4

여기 누락된 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

을 제가해습다니에서 풀었습니다.Yosemite달리는 Ruby 2.1.4타고

  1. xCode 6.1이 설치되어 있는지 확인합니다.
  2. xcode-select --install,그리고나서
  3. AppStore에서 업데이트를 클릭하고 최신 버전의 명령줄 도구를 설치합니다.xcode-select --install않음 -
  4. 그리고나서bundle install정상적으로 작동했습니다.

는 저했어요도 요.brew install libiconv저도 그렇지만 단계가 필요했는지 확신할 수 없습니다.

저는 많은 것을 시도했지만 아무 것도 저에게 효과가 없었습니다.그리고 마침내 아이콘v 문서를 찾았고 그것이 나의 하루를 구했습니다!

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

노코기리가 올바른 장소에서 립을 찾도록 강요하는 것(저는 홈브루를 사용합니다)은 저에게 효과가 있었습니다.

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

아마 노코기리에 뭔가 고칠 게 있을 거예요...

HTH,

libiconv가 Homebrew 0.9에서 제거되었습니다. 이제 소스에서 libiconv를 컴파일한 다음, 노코기리 보석을 설치할 때 설치를 참조하는 것이 좋습니다.Nokogiri 설치 페이지의 Homebrew 0.9 섹션 아래에 있는 Nokogiri 설치 지침을 참조하십시오.

gem의 build 디렉토리(예: /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log)에서 mkmf.log 파일을 찾습니다.그것은 더 많은 정보를 가지고 있습니다.제 경우에 이것을 쳤을 때 노코기리가 라이브러리 검색 경로에 /opt/local/lib를 특별히 추가하고 GNU Backgammon이 거기에 호환되지 않는 libiconv를 설치했습니다.

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

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

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

위와 마찬가지로, 이것은 홈브루와 보석 설치를 사용하기 위한 솔루션입니다(사용자 버전에 따라 변경 사항이 다릅니다).

그러나 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

저도 라이온 산에서 비슷한 문제를 겪었습니다.이전에 rvm 패키지를 통해 libiconv를 설치한 적이 있으며 루비 1.9.3/마운틴 라이온/노코기리에는 더 이상 필요하지 않습니다.

https://rvm.io/packages/, 의 조언에 따라 $rvm_path/usr 디렉토리를 삭제하고 루비 1.9.3을 다시 만들었습니다.그 후 노코기리를 설치하는 것은 간단한 보석 설치였습니다.Brew/Macports/수동 소스 설치에 방해가 되지 않습니다!

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

gem install nokogiri ----use-system-discount=true --with-xml2-include=/Applications.app/콘텐츠/개발자/플랫폼/MacOSX.플랫폼/개발자/SDKs/MacOSX10.9.sdk/usr/include/libxml2

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

나는 오늘 OS X 10.10 요세미티에서 노코기리와 잠시 싸우고 있었습니다.

나의 환경은 어떤 이유로 엉망이 되었습니다.

which bundle그리고.which gem나에게 주고 있었습니다./usr/bin/bundle그리고./usr/bin/gem~/.rbenv/shims/gem

데 이 된 것은 내가그데된도것은이움는바로입니다.sudo rm -i /usr/bin/gem /usr/bin/bundle

후 I:내2. 3. ( do a i: 1. libs: .brew install libxml2 libiconv libxslt 버전을 루내버설새다니습했와 (rbenv) 5.gem install bundler그리고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

이건 나한테 효과가 있었어요

sudo env ARCHFLAGS="-arch x86_64" gem 설치 nokogiri:1.6.6.2 --usse-system-install --with-xml=/usr/local/cellar/libxml2/2.9.3/--with-iconv-dir=/usr/local/cellar/libiconv/1.14.

홈브루를 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

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

홈브루 사용자

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

xcode-select --install

대화상자에서 "Xcode 가져오기"를 선택합니다.

brew unlink libiconv
gem install nokogiri

xcode 선택 단계는 Xcode 설치 및 Xcode 명령줄 유틸리티 설치를 수정합니다.O/S 업그레이드 또는 백업에서 복원할 때 발생하는 문제로 인해 /usr/include/iconv.h가 없었습니다.xcode-select를 실행한 후 해당 헤더 파일과 /usr/lib/libconv.dylib이 없으면 응용 프로그램 폴더에서 Xcode를 휴지통으로 끌어다 다시 설치한 다음 https://developer.apple.com/downloads/index.action 에서 Xcode용 명령줄 도구를 수동으로 다운로드하여 설치해야 합니다.

그런 다음 libiconv와 홈브루의 연결을 해제해야 합니다.당신은 이것이 필요하지 않습니다.그리고 clang은 실제로 /usr/local/include/iconv.h over /usr/include/iconv.h를 선택하고 #define iconv_open to libiconv_open을 사용하지만 libiconv_open이 없는 /usr/libiconv.dylib에 대해 링크합니다. 이로 인해 mkmf 장애가 libiconv를 찾을 수 없습니다.당신이 해야 할 일은 noogiri가 찾지 못하도록 iconv.h의 링크를 제거하는 것입니다.

그럼 그냥 정상적으로 노코기리를 만드세요.

새로운 사용자의 경우, xcode-select와 함께 xcode를 설치하고 nokogiri를 설치하기만 하면 되지만, 이 질문을 발견했다면 아마도 새로 설치한 Mavericks가 아닌 잘못된 설치일 것입니다.

여기에 있는 다른 답들 중 일부는 확실히 틀렸습니다.그들 대부분은 완전히 불필요한 홈브루로 리비콘을 사용하려고 합니다.brew link libiconv실제로 clang이 혼동되어 홈브루 헤더 파일을 읽고 시스템 라이브러리에 대한 링크를 읽으려고 하는 문제를 일으키고 있습니다.▁▁answers▁the입니다.--use-system-libraries및되지 않기 때문에 합니다.출처에서 컴파일하기를 원하는 답변은 절망적일 정도로 너무 복잡합니다.

TL;DR:

  • Xcode 설치 업그레이드 및/또는 복구
  • 문제만 일으키는 홈브루 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

오늘 아침에 우연히 이걸 만났어요매버릭스로 업그레이드 된 후에.우리는 많은 것을 했습니다.하지만 이 문제를 겪고 있는 사람이 있다면 시도해 볼 몇 가지가 있습니다.

저는 'xcode-select --install'을 실행한 다음 명령줄 도구를 설치했습니다(OS 업그레이드에서 업데이트되지 않은 것에 놀랐습니다).'rvm inplode'를 실행했습니다(나중에 다시 빌드하겠습니다).

두 개의 오류 출력 파일을 하나로 묶었습니다.

~/.vagrant.d/bagrant/bagrant/bagrat/bagrat/bagrat/bagrat/bagrat_make.out-1.6.3.1/ext/bagratogiri/bag

~/.vagrant.d/syslog/syslogi-1.6.3.1/ext/syslogi/tmp/x86_64-apple-syslog12.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에 대한 설정이 없습니다...

이 작업의 핵심 부분이나 순서가 중요한지는 잘 모르겠지만, 이 작업을 수행하는 데 있어 역할을 하는 것처럼 보이는 부분을 재현하려고 했습니다.

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

노코기리 설치

문제 해결

libiconv 누락을 언급하는 데 문제가 있다면 다음과 같습니다.

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에서 작동하는 것으로 확인되었습니다.

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

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

저도 비슷한 문제가 있었고 수락된 답변이 저에게 먹히곤 했습니다.하지만 새로운 오류 메시지를 보고 있습니다.gmkdir다음 질문과 같이 명령이 누락되었습니다.

gem 설치 nokogiri -v '1.5.11'이(가) make: /usr/local/bin/gmkdir:해당 파일 또는 디렉터리가 없습니다.

저에게 효과가 있었던 것은 먼저 약간의 청소였습니다.

brew uninstall libiconv
brew uninstall libxml2
brew uninstall libxslt

그리고 나서.brew unlink libiconv해야 할 은 무엇이든 하십시오.brew doctor의 두 줄된 답변에서 그런 다음 마법의 두 줄(연결된 답변에서 복사):

brew install coreutils
gem install nokogiri

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

brew config

설치된 CLT 버전을 다시 설치할 필요가 없는 경우 여기를 참조하십시오.

이것은 당신이 허가를 받아 번들러 보석만 다시 설치하는 것이 문제라는 것을 의미합니다.과 함께 gem uninstall bundler 번들러gem install bundler

여기서 가장 중요한 점은 번들러 보석이 설치된 허가서입니다. 절대로 그렇게 해서는 안 됩니다.

우선 노코기리에 대한 설치 가이드를 따라야 합니다. http://nokogiri.org/tutorials/installing_nokogiri.html

가이드를 따라다닌 후에도 여전히 이 문제가 발생했습니다.이렇게 해결했습니다.

우선 홈브루를 사용하여 아이콘v를 설치했습니다: 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

그런 다음 새 루비 버전으로 보석 세트를 만듭니다.

rvm use 1.9.2@coolproject

그러면 마침내 다음과 같이 노코기리를 설치할 수 있습니다.

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

저의 경우 (스코치와 마찬가지로) /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

블로그 게시물은 libiconv를 수동으로 설치할 것을 제안합니다.

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

참고로: 노코기리를 설치한 후 골룸을 설치할 수 있었습니다(아이콘v를 찾을 수 없어서 설치도 실패했습니다).하지만 지금 저는 여전히 문제에 직면해 있습니다. 왜냐하면 골룸을 시작하면 파이썬이 충돌하기 때문입니다.

$ 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

는 실하기전 gcc를을 실행하기 를 설치해야 ../configure --prefix=/usr/local/Cellar/libiconv/1.13.1

언급URL : https://stackoverflow.com/questions/5528839/why-does-installing-nokogiri-on-mac-os-fail-with-libiconv-is-missing

반응형