2014-05-01 18 views
6

Cài đặt thất bại cho thấy:Nokogiri ngọc thất bại trong việc cài đặt trong 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. 

Tuy nhiên, nhìn vào mkmf.log nokogiri của, các lỗi sau đây được hiển thị:

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 

Tôi có xcode và nó công cụ lệnh được cài đặt. My ~/.bash_profile có biên dịch 64 bit bắt buộc bằng cách: xuất ARCHFLAGS = "- vòm x86_64"

Tôi có libxml2, libxslt và libiconv được cài đặt qua Homebrew và mỗi liên kết được liên kết. Tôi đã thử cài đặt tất cả những thứ này mà không có ARCHFLAG trong .bash_profile.

Tôi cũng đã pha cài đặt apple-gcc42 và được liên kết, theo cách tôi đã tìm thấy.

Tôi đã thử cài đặt nokogiri bằng cách chuyển các đường dẫn tới libxml2, libxslt và libiconv trong/usr/local/Cellar /, nhưng quá trình cài đặt vẫn không thành công, với cùng các lỗi như trên.

Tôi đã lãng phí ít nhất một ngày về điều này - chỉ cần cố gắng cài đặt một gem Ruby. Tôi thực sự muốn quay lại thực sự phát triển.

Mọi người có thể giúp bạn không?

Trả lời

21

Đặt NOKOGIRI_USE_SYSTEM_LIBRARIES=1 trước khi cài đặt đá quý thực sự là một mẹo nhỏ đối với tôi.

Tóm tắt:

  • Nếu cài đặt trước đó, gỡ bỏ cài đặt các viên ngọc:
    $ gem uninstall nokogiri

  • Sử dụng Homebrew để cài đặt libxml2, libxsltlibiconv nếu cần thiết:
    $ brew install libxml2 libxslt libiconv

  • Cài đặt đá quý chỉ định ng các đường dẫn đến các thư viện được liên kết chống lại:
    $ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"

+5

+1 'NOKOGIRI_USE_SYSTEM_LIBRARIES = 1 gem install nokogiri' là đủ để cài đặt cho tôi. Điều này thực sự cần được cố định, cài đặt không nên khó khăn này. Tôi sử dụng cưa nokogiri thực sự như cưa dozuki và sử dụng chúng để cắt khớp đúng không phải là rắc rối này. –

+0

+1 cho giải pháp này, làm việc cho tôi quá (các hướng dẫn chính thức không), tuy nhiên đây là liên kết: http://nokogiri.org/tutorials/installing_nokogiri.html – herrjeh42

+0

Điều này làm việc cho tôi. –

0
  • Kiểm tra nếu homebrew được cài đặt một cách chính xác với các công cụ dòng lệnh XCode thích hợp.

brew bác sĩ

  • Bạn cũng có thể kiểm tra qua XCode> Preferences

Với các công cụ dòng lệnh có giá trị cài đặt, tôi đã có thể giải quyết các lỗi nokogiri gặp phải sau khi OSX Maverick nâng cấp.

Cũng thấy rằng một số gói 'brew' đã lỗi thời sau khi OS X Mountain Lion nâng cấp lên Maverick. (ví dụ.qt, postgresql)

2
  • Là giải pháp độc lập, tôi đã đặt cùng nhau this ruby script as a gist sẽ hoạt động với bất kỳ cài đặt Mac OS X/Homebrew gần đây nào.
  • Về cơ bản bạn chỉ dựa vào việc dựa vào thư viện của Homebrew thay vì các thư viện cũ của Apple. Đơn giản.
  • Bạn có thể định cấu hình và cài đặt bằng Bundler (thay vì gem) bằng cách chuyển bundle làm đối số.

Hãy khám phá và vui lòng đóng góp - có thể chúng tôi sẽ chia nhỏ một tập lệnh để khắc phục tất cả!

+1

Kịch bản ném một lỗi, tôi đã gửi nó trên github. –

+1

Tôi đánh giá cao việc bạn chú ý đến điều này; nó đã được sửa chữa và nên làm việc cho tất cả mọi người ngay bây giờ (upvoted). –

+0

Cảm ơn tôi sẽ kiểm tra lại, nhưng gốc của các lỗi của tôi vào thời điểm đó là thực hiện với phiên bản ruby ​​đã được cài đặt và vì vậy tôi không thể thử nó dễ dàng ngay bây giờ! –

0

Đây là những gì làm việc cho tôi:

  1. Nếu bạn chưa làm như vậy, cài đặt các công cụ phát triển XCode: $ xcode-select --install
  2. Sử dụng homebrew để cài đặt (hoặc cài đặt lại) libxml2, libxslt và libiconv: $ brew install libxml2 libxslt libiconv
  3. Install nokogiri: gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

tôi tìm thấy giải pháp tôi cần thiết trong một unmerged pull request để cập nhật hướng dẫn của Nokogiri. Tôi khuyên bạn nên nếu ai đó gặp sự cố này và đã cạn kiệt các giải pháp tại đây, hãy kiểm tra xem pull request list để xem có ai đó đã gửi bản cập nhật cho hướng dẫn trên trang hướng dẫn Nokogiri hay không.

0

Từ github page Trước tiên, bạn nên: xcode-select --install và sau đó cài đặt lại nokogiri. Điều đó làm việc cho tôi trong khi một đề xuất khác thì không. Hy vọng điều này sẽ giúp người khác.

Các vấn đề liên quan