Đá quý Nokogiri không cài đặt được trong OS X Mavericks


1

Cài đặt không hiển thị:

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 của nokogiri, các lỗi sau đượ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 cài đặt công cụ. My ~ / .bash_profile có biên dịch 64 bit bắt buộc bởi: export ARCHFLAGS = "- arch x86_64"

Tôi có libxml2, libxslt và libiconv được cài đặt qua Homebrew và mỗi cái đượ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 đã 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 đến libxml2, libxslt và libiconv trong / usr / local / Cellar /, nhưng quá trình cài đặt vẫn thất bại, với các lỗi tương tự như trên.

Tôi đã lãng phí ít nhất một ngày cho việc này - chỉ cần cố gắng cài đặt một viên ngọc Ruby. Tôi thực sự muốn quay trở lại để thực sự phát triển.

Có ai giúp đuợc không?


Bạn đang sử dụng viên ruby ​​nào? OS X mặc định hoặc một viên ruby ​​do RVM quản lý? Với bản 2.1.1 do RVM quản lý, tôi không gặp vấn đề gì khi thực hiện 'gem install nokogiri'. Tôi đang sử dụng XCode 5.1.1. Nó xây dựng và cài đặt libxml2 của riêng mình và cài đặt nokogiri-1.6.3.1.
Ian C.

Câu trả lời:


1

Bạn không thể cho rằng phiên bản ruby ​​tích hợp trong ruby ​​tương thích với bất kỳ loại đá quý nào bạn muốn sử dụng. Đừng cố xóa phiên bản ruby ​​đi kèm với OS X hoặc cập nhật hoặc nâng cấp nó trừ khi với App Store / Cập nhật phần mềm / phần mềm cập nhật. Hầu hết các viên ruby ​​sẽ nói với bạn rằng bạn thậm chí không bận tâm đến việc sử dụng viên ruby ​​đi kèm với OS X. Nhưng bạn có thể cài đặt nhiều phiên bản của ruby, và bạn chắc chắn sẽ cần một quản lý phiên bản ruby nếu bạn có ý định sử dụng nhiều đá quý.

ruby trước đây khá dễ sử dụng, nhưng bây giờ, số lượng phiên bản cần được hỗ trợ là quân đoàn và các nhà phát triển đá quý đôi khi buộc bạn phải cài đặt phiên bản ruby ​​mới ở một số phiên bản khác khi bạn đã cài đặt ruby ​​hoàn toàn tốt ! Grr. ruby thực sự bắt đầu an toàn, bởi vì trong khi thông tin hỗ trợ có thể ở ngoài đó, nó trông ngày càng giống một cuộn dây câu đã bị chim chóc. IMO, ruby ​​bị hỏng, ai đó sẽ phải rút nó ra và lấy nó ngay ngắn để sửa nó, và tôi không thể làm được. Tôi không phải là anh chàng. Không phải tôi.

brewinistas nhiệt tình mặc dù, người quản lý gói homebrew đã tăng đau điển hình của một giải pháp quản lý gói chưa trưởng thành. tôi sử dụng MacPorts để quản lý ... tất cả các cài đặt của tôi, nhưng cả các phiên bản cài đặt ruby ​​khác nhau cần thiết để sử dụng đá quý tôi muốn. MacPorts yêu cầu một phiên bản xcode phù hợp; xcode_5.1.1.dmg là phiên bản mới nhất cho Mavericks. rvm sử dụng MacPorts bởi mặc định nếu nó được cài đặt.

Nó xuất hiện từ nhật ký được cung cấp của bạn rằng bạn đang thiếu thứ. Đó là những gì hay về MacPorts (và bất kỳ trình quản lý gói trưởng thành nào); nó sẽ chăm sóc các bộ phận phụ thuộc cho bạn nếu chúng chưa được cài đặt.

Cài đặt 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

thêm MacPorts vào $ PATH của bạn:

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

hãy xem MacPorts có gì cho ruby

 port search ruby |less

và / hoặc chỉ cài đặt nokogiri

 sudo port -vsk install ruby19 libxml2 libxslt 

 sudo gem install nokogiri

 port -vfp clean ruby19 libxml2 libxslt

nếu có sự cố hãy thử

 sudo port upgrade outdated

MacPorts sẽ không ảnh hưởng đến phiên bản OS X của bất kỳ thứ gì, cũng như homebrew (ngoại trừ làm cho nó trở nên thừa) và giữ mọi thứ mà nó cài đặt trong / opt khiến việc cài đặt trở nên dễ dàng (nhưng điều này không liên quan gì đến việc ruby ​​giữ đá quý của nó, ~ / .gem ). Nhưng bạn thực sự nên đến biết và yêu MacPorts, đó là bạn của bạn.

để gỡ cài đặt hoàn toàn MacPorts

 sudo port -dfp uninstall --follow-dependencies installed

 sudo port -dfp uninstall all

 sudo rm -rf /opt/local  

 sudo rm -rf /Library/Tcl/macports*

Cảm ơn, tôi đã thử điều này và vẫn nhận được các lỗi tương tự liên quan đến i386 / x64 (tôi không thể định dạng ở đây): ld: cảnh báo: bỏ qua tệp / L Library / Repub /ems / 2.0.0 / gems / nokogiri-1.6.1 /ports/x86_64-apple-darwin13.1.0/libxslt/1.1.26/lib/libxslt.dylib, tệp được tạo cho x86_64 không phải là kiến ​​trúc được liên kết (i386): / L Library / Resub / Ginger / 2.0 / Gem / noko 85 ld: cảnh báo: bỏ qua tập tin / L Library / Revy /Gems / .0.0 / gems / nokogiri-1.18 / ports / x86_64-applple-darwin13.1.0 / libxml2/2.8.0 / lib / libxml2.dyl , tệp được tạo cho x86_64 không phải là kiến ​​trúc được liên kết (i386): / L Library / Repy /Gems / 02.0 / gems / nokog
user3591456

Bạn chưa nói hệ thống nào bạn đang sử dụng ... có lẽ đơn giản như việc buộc hệ thống sử dụng hạt nhân 64 bit (nếu bạn ở trên 10.6, các Hệ thống tiếp theo nên sử dụng hạt nhân 64 bit). Để đảm bảo chế độ 64 bit, giữ các phím '6' và '4' khi máy Mac khởi động; hoặc mở Terminal và nhập: nvram boot-args="arch=x86_64" Bạn đặt lại về chế độ 32 bit như sau: sudo nvram boot-args=""
chillin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.