2011-04-19 7 views
35

제가 알고있는 것 이상으로 한 걸음 나아 갔을 수 있습니다. Homebrew을 설치 한 후 MacPorts을 설치 한 것에 대한 경고를 계속받은 후 제거했습니다. 하지만 이제는 내 rspec 테스트가 실행되지 않습니다.rspec을 사용하여 오류가 발생하여 Homebrew를 설치하고 MacPorts를 제거한 후 라이브러리가 누락되었습니다.

이 내가 얻을 오류입니다 : 나는 브루를 통해 libiconv를 설치 한

/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri.rb:13:in `require': dlopen(/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /opt/local/lib/libiconv.2.dylib (LoadError) 
    Referenced from: /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle 
    Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 - /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle 
..... 
..... 

,하지만 그게 해결되지 않았다. libiconv 버전 번호에 대해 불평하고 있습니다. 이게 문제 야?

여기에 무슨 일이 일어나고 있으며 무엇을해야합니까?

+0

libiconv * .dylib가 설치되어 있고 어떤 버전 번호가 해당 이름에 있습니까? – Mark

+0

저는 같은 보트에 있습니다. – JohnAgan

답변

83

나는 관심있는 모든 사람들을 위해 다시 일하는 것을 얻었습니다. nokogiri gem을 제거하고 다시 설치하면 모든 것이 다시 작동하는 것처럼 보입니다.

+1

오늘이 정확한 문제가 발생했습니다. –

+1

같은 문제가 있습니다. 다시 설치하면 모든 것이 다시 작동하는 것 같습니다. 감사! – eastafri

+0

감사합니다. 멋지고 간단합니다 .-) – phatmann

0

다시 작동 시키려면 nokogiri 외에 libxml-ruby를 다시 설치해야했습니다.

15

일반적으로 이 문제는 올바른 libiconv을 찾을 수 없기 때문에 발생합니다. 다음은 문제를 해결하는 방법입니다.

출력 확인 : otool -L /usr/lib/libiconv.2.dylib.

/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

가 그럼 난 브루, brew install libiconv와 libiconv 설치하고,이 brew list libiconv을 사용하여 설치된 위치 표시 : 나는 다음과 같은 결과를 얻었다. libiconv가 /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib에 설치되어

/usr/local/Cellar/libiconv/1.14/bin/iconv 
/usr/local/Cellar/libiconv/1.14/include/ (3 files) 
/usr/local/Cellar/libiconv/1.14/lib/libcharset.1.dylib 
/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib 
/usr/local/Cellar/libiconv/1.14/lib/ (3 other files) 
/usr/local/Cellar/libiconv/1.14/share/doc/ (6 files) 
/usr/local/Cellar/libiconv/1.14/share/man/ (6 files) 

: 나는 다음과 같은 결과를 얻었다. 그럼, otool -L /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib을 새로 설치 libiconv의 혼란 스럽다을 확인하고, 나는 다음과 같은 출력을 가지고 :

/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib: 
/usr/local/opt/libiconv/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

버전이 올바른지를, 우리는 Ruby이 라이브러리를 사용할 수 있도록해야합니다.

sudo ln -s /usr/local/opt/libiconv/lib/libiconv.2.dylib /opt/local/lib/libiconv.2.dylib 
+8

마지막 단계를 다음과 같이 대체 할 수 있습니다 :'brew link --force libiconv' 어쨌든, nokogiri를 재설치하는 것을 포함하지 않기 때문에 당신의 대답은 아주 좋은 해결책입니다. – sybohy

+0

감사합니다. 나를 대단히 도와 줬어!나는 모든 사람에게 확신 할 수는 없지만, 양조주가'libiconv' 공식을 발견하기 전에'brew tap homebrew/dupes'를 추가해야했습니다. – Indranil

0

FWIW, 내가 같은 문제로 실행하고 당신이 당신의 보석을 vendorizing 를하는 경우, 당신은 보석 제거로 업체/루비에서 잘못된 보석을 제거해야합니다 : 기호 링크를 작성하면 빠른 해결책이다 + 재설치가 항상 효율적이지는 않습니다. 나는 번들러가 새로운 설치를 실행할 때에도 보석과 그 각각의 libs의 캐시 잔해를 떠날 것이라고 생각한다.