Nokogiri: libiconv hilang

Dibuat pada 3 Apr 2011  ·  109Komentar  ·  Sumber: sparklemotion/nokogiri

Kami menjalankan Ruby 1.8.7 (melalui RVM) di OS X 10.6.6. Mencoba menginstal nokogiri 1.4.4 menggunakan bundler selalu menghasilkan kesalahan berikut:

Installing nokogiri (1.4.4) with native extensions /Users/administrator/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/installer.rb:533:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/Users/administrator/.rvm/rubies/ruby-1.8.7-p302/bin/ruby extconf.rb 
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
[…]

Mengikuti instruksi di sini di wiki dan juga di internet, kami telah menggunakan MacPorts untuk menginstal libxml2 dan libxslt , yang menghasilkan situasi berikut:

sudo port install libxml2 libxslt
Password:
Error: Cannot install libxml2 for the arch(s) 'x86_64' because
Error: its dependency libiconv is only installed for the archs 'i386 ppc'.
Error: Unable to execute port: architecture mismatch

Kami telah membangun libxml2 dan libxslt dari sumber dan mencoba keduanya untuk menginstal permata dengan bendera untuk MacPorts dan membangun seperti yang dijelaskan di wiki serta beberapa variasi yang ditemukan online. - Hasilnya tetap sama. Kami bahkan telah mengunduh permata, mengubah extconf.rb seperti yang disarankan di sini: https://github.com/tenderlove/nokogiri/issues#issue/381 , dan mengompilasinya secara lokal tetapi hasil akhirnya sama.

Apa yang kita lewatkan? Kami cukup banyak terjebak dengan situasi ini.

Semua 109 komentar

Saya mengajukan pertanyaan yang sama, dan diberi jawaban ini:

Instal MacPorts: http://www.macports.org
Tambahkan /opt/local/bin ke PATH Anda (bashrc atau zshrc atau apa pun yang Anda gunakan).
port sudo instal libxml2 dan port sudo instal libxslt
Kemudian Sudo gem install nokogiri --no-rdoc --no-ri akan berjalan tanpa masalah. Itu saja yang harus saya lakukan untuk sistem Ruby (1.8.7 pada OSX 10.6) dan 1.9.2 melalui rvm.

Saya mengalami masalah yang sama pada 10.6. Saya menginstal ulang MacPorts, port menginstal libxml2 dan libxslt lagi dan sekarang saya tidak lagi mengalami masalah ini.

Dengan asumsi Anda menginstal libxml2 dan libxslt dengan MacPorts, maka Anda mungkin masih mendapatkan kesalahan ini karena ketidakcocokan urutan sertakan jalur dan jalur tautan yang digunakan oleh panggilan ke have_func('iconv_open', 'iconv.h')

Solusi (tambalan) sederhana: hapus libiconv.* di /usr/local/lib

Saran: minta extconf.rb melakukan pemeriksaan yang sedikit lebih canggih tentang lib iconv apa yang sebenarnya diinstal, dan berikan petunjuk yang lebih baik kepada pengguna. Dalam hal ini libiconv TIDAK hilang. Sebenarnya ada DUA libiconvs, tajuk yang benar sedang dikompilasi, dan perpustakaan lama sedang ditautkan. Sepertinya masalah yang sangat umum bahwa pesan kesalahan file instal dapat memberikan sedikit lebih banyak bantuan.

Dan saya pikir ini mungkin masalah dengan mkmf dan cara menangani jalur perpustakaan? Pemeriksaan kompilasi yang gagal untuk saya adalah:

```"gcc -o conftest -I. -I/usr/local/lib/ruby/1.8/i686-darwin10.3.0 -I. -III/opt/local/include -III/usr/local/include -III /usr/local/include -III/usr/include -III/usr/include/libxml2 -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -II/opt/local/include -II/usr/local/include -II/usr/local/include -II/usr/include -II/usr/include/libxml2 -I/opt/local/include -I/usr /local/include -I/usr/local/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/usr/local/lib -L/opt/local/lib -L/usr/local/lib -L /usr/lib -L. -lruby-static -lpthread -ldl -lobjc "
Simbol yang tidak ditentukan untuk arsitektur x86_64:
"_libiconv_open", dirujuk dari:

Note the compile stage starts with /opt/local/include, but the link stage starts with /usr/local/lib, which is where the old version was

Saya menggunakan Lion dan homebrew. Bagi saya, ini berhasil:

brew install libiconv
brew link libiconv

Dalam kasus saya (Migrasi ke OS X Lion), untuk memperbaiki masalah, saya membersihkan macports :

port -qv installed > myports.txt
sudo port -fp uninstall --follow-dependents installed
sudo port clean all

Lebih detail: http://trac.macports.org/wiki/Migration

+1 untuk apa yang dikatakan jfahrenkrug. Panduan instalasi di http://nokogiri.org/tutorials/installing_nokogiri.html , bagian homebrew mungkin harus diperbarui;

brew install libxml2 libxslt
membuat tautan libxml2 libxslt

ke

brew install libxml2 libxslt libiconv
brew link libxml2 libxslt libiconv

perbaikan jfahrenkrug juga berhasil untuk saya

+1 berfungsi untuk saya

Saya telah mengikuti instruksi untuk membangun libxml2 dan libxslt dari brew. Saya tidak bisa membangun nokogiri.

Saya mendapatkan kesalahan saat mencoba 'brew install libiconv':

$ brew install libiconv
Kesalahan: Tidak ada rumus yang tersedia untuk libiconv
Apple mendistribusikan libiconv dengan OS X, Anda dapat menemukannya di /usr/lib.
Beberapa skrip build gagal mendeteksinya dengan benar, harap periksa yang ada
formula untuk solusi.

Saya sedang menginstal Snow Leopard baru. Saya lebih suka tidak menggunakan MacPorts.

Tolong bantu.

@jseigler Saya menjalankan brew 0.8.1 dan saya dapat menginstal libiconv tanpa masalah. Coba perbarui minuman?

Saya memiliki masalah yang sama dengan @jseigler. Saya menjalankan brew 0.9 di OS X 10.7.3.

Mengunduh libiconv dan kompilasi berfungsi secara manual.
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

Jika Anda mengetahui cara menginstal Nokogiri terhadap perpustakaan brew 0.9, beri tahu saya -- Saya akan memperbarui dokumentasi instalasi. Sementara itu, sebagai pengguna Linux, saya khawatir saya tidak bisa banyak membantu.

@tenderlove , ada ide? Anda <3 mac. :) :) :)

Menggunakan brew 0.9 pada OSX 10.7.3 yang berikut ini berhasil:

brew install libxml2 libxslt
membuat tautan libxml2 libxslt

Instal libiconv dari sumber:
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
membuat
sudo make install

Kemudian instal nokogiri:
permata instal nokogiri -- --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 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Cellar/libiconv/1.13.1/lib

@brennenf

Kerja bagus. Itu juga untuk saya.

Instruksi diposting ke nokogiri.org:

http://nokogiri.org/tutorials/installing_nokogiri.html#homebrew_09

Terimakasih semuanya.

@brennenf Terima kasih untuk baris ini
permata instal nokogiri -- --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 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Cellar/libiconv/1.13.1/lib

@brennenf perbaikan Anda memberi saya "Berhasil menginstal nokogiri-1.5.2" yang bagus tetapi ketika saya menjalankan bundle install di aplikasi Rails saya, itu masih gagal pada: "Terjadi kesalahan saat menginstal nokogiri (1.5.2), dan Bundler tidak dapat melanjutkan.
Pastikan gem install nokogiri -v '1.5.2' berhasil sebelum bundling." Catatan "gem install nokogiri -v '1.5.2" juga gagal. Adakah orang lain yang menjalankan ini?

@ttringas - silakan kirim email ke nokogiri-talk. masalah ini tentang nokogiri 1.4.4 dan telah ditutup selama berbulan-bulan.

Hai, ada pembaruan tentang Mountain Lion?
Saya tidak bisa menyelesaikan instalasi.

Saya telah memperbarui jalur yang disebutkan di halaman instalasi nokogiri:

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

inilah yang saya dapatkan sebagai balasannya: https://Gist.github.com/3186643

@polarblau lihat siapa yang punya masalah sekarang :D (saya)

Mungkin membantu tetapi tampaknya "ekosistem" RVM tampak bermasalah setelah memperbarui ke singa gunung. Saya menghapus .rvm dan menginstal rvm menggunakan http://unfiniti.com/software/mac/jewelrybox/ dan sekarang berfungsi tetapi saya memiliki peringatan yang mengatakan:
WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8

Sama di sini, menginstal ulang Ruby berhasil (saya tidak terlalu terkejut - itu jebakan yang cukup umum)

@polarblau , terlambat! aku udah baca ;)

Agar instalasi bekerja pada Mountain Lion yang baru saya upgrade, saya harus menghapus paket rvm yang saya instal sebelumnya (terletak di $rvm_path/usr), membangun kembali Ruby 1.9.3, dan kemudian gem install nokogiri berhasil. Lihat https://rvm.io/packages/

Saya di Gunung Singa. Menginstal ulang Ruby berhasil untuk saya.

memeriksa libxml/parser.h... tidak

libxml2 hilang.

Saya menemukan satu langkah tambahan diperlukan untuk menyelesaikan masalah di atas untuk Homebrew 0.9 di Mac OS X 10.8 Mountain Lion dan itu adalah membuat tautan "/usr/bin/gcc-4.2":

brew install libxml2 libxslt
membuat tautan 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
membuat
sudo make install
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
permata instal 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

brax4444 terima kasih banyak, Anda adalah penyelamat hidup!! Bekerja sempurna dengan penambahan sudo pada perintah terakhir Anda karena kesalahan:

GALAT: Saat menjalankan permata ... (Errno::EPERM)
Operasi tidak diizinkan - ~/.rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.5/.autotest

brax4444 adalah orangnya! Terima kasih

Ingin tahu apakah seseorang dapat membantu seorang pemula:

Menjalankan Mountain Lion 10.8.2 dengan Homebrew.

Dimulai dengan nokogiri 1.5.2 - kehilangan libiconv yang khas.

Di antara utas ini, khususnya Brax4444 & tutorial instalasi di nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html untuk Homebrew .9 Saya memiliki FUBAR berikut:

Saya sekarang memiliki nokogiri 1.5.5 di mana rel mencari 1.5.2

Masih tidak dapat memperbaiki masalah libiconv meskipun berjam-jam.

Tidak dapat lagi menjalankan perintah Rails karena permata yang hilang > nokogiri : 1.5.2

Coba instal permata (yang akan menjadi 1.5.5) atau rails baru (saya mencoba apa saja pada saat ini ... kembali dengan kesalahan berikut sekarang: ERROR: Saat menjalankan permata ... (Errno::EPERM)
Operasi tidak diizinkan - /usr/local/rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.5/.autotest

Adakah yang bisa menyelamatkanku? Saya harus menyerahkan aplikasi besok.

Halo!

Terima kasih telah mengajukan pertanyaan ini! Permintaan bantuan Anda menggunakan Nokogiri tidak akan terjawab!

Namun, masalah ini telah ditutup, dan Masalah Github Nokogiri dicadangkan untuk melaporkan bug atau mengirimkan tambalan. Jika Anda mengajukan pertanyaan Anda di milis, Tim Nokogiri berjanji seseorang akan memberi Anda jawaban tepat waktu.

Jika Anda ingin membaca alasan Tim Nokogiri atas kebijakan ini, silakan kunjungi http://bit.ly/nokohelp.

Terima kasih banyak atas pengertiannya! Dan terima kasih telah menggunakan Nokogiri.

brax4444, terima kasih banyak, langkah Anda membantu saya mengatasi masalah serupa saat menginstal permata pg.

Petunjuk pada halaman http://nokogiri.org/tutorials/installing_nokogiri.html sekarang sudah kedaluwarsa karena bundel menginstal versi yang lebih baru (saat ini libxml2 di 2.9.0 dan libxslt di 1.1.28).

@Winstons

Terima kasih atas komentar Anda, tetapi masalah ini telah ditutup cukup lama sekarang.

Jika Anda memiliki pembaruan untuk dokumen instalasi nokogiri, Anda dapat mengirim permintaan tarik ke:

https://github.com/sparklemotion/nokogiri.org-tutorials

atau Anda dapat lebih jelas menyatakan masalah dan solusi (bundler tidak menginstal libxml2 atau libxslt ... maksud Anda brew? atau port mac? atau ... ?) dalam edisi baru dan kami akan mengatasinya saat kami bisa konfirmasi secara independen.

Terima kasih telah menggunakan Nokogiri!

@flavorjones Maaf! Aku akan membayar.

Terima kasih telah menulis bersama Nokogiri.

Saya juga harus benar-benar menginstal XCode agar ini berfungsi.

Saya perlu menginstal alat pengembang baris perintah.

@dentarg Terima kasih, saya memiliki masalah yang sama, setelah memulihkan Mac saya, alat pengembang baris perintah tidak diinstal.
Lakukan dengan perintah ini 'xcode-select --install'

gunakan https://github.com/Homebrew/homebrew-dupes/blob/master/libiconv.rb

brew tab homebrew/dupes
brew install libiconv

dan mungkin ini:
bundel config build.nokogiri --use-system-libraries

tapi tidak tahu apakah ini berhasil

Terima kasih @brax4444 , saran Anda juga berhasil untuk saya!

Saya menggunakan iconv asli. Anda tidak perlu menautkan libxml2/libxslt.

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

Terima kasih @patricksereno.

bundel config build.nokogiri --use-system-libraries
ini berhasil untuk saya

Terima kasih, brax4444! Satu baris itu (tautan gcc) melakukannya untuk saya juga!

LIHAT INSTRUKSI YANG DIPERBARUI: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

CATATAN: jika Anda melalui semua posting ini satu per satu mencoba semuanya maka ANDA MELAKUKANNYA SALAH. Semua saran untuk 'brew link' (termasuk posting tersebut) adalah saran yang buruk. Semua saran untuk "--gunakan-sistem-perpustakaan" juga merupakan saran yang buruk. STAAAHHHP. Lewati sampai akhir.

saya percaya ini berhasil untuk saya:

brew tap homebrew/dupes
brew install libiconv
brew link libiconv --force
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local

Poin penting di sini adalah bahwa libiconv perlu 'dihubungkan' ke /usr/local/include. Dengan ketukan 'penipu', itu akan merepotkan tentang mengganti lib sistem sehingga Anda perlu --force itu. Maka Anda hanya perlu memberi tahu nokogiri untuk mencari /usr/local untuk mencari jalur iconv untuk diteruskan ke libxml2 yang disematkan saat membangunnya. Dengan menggunakan --use-system-libraries apa yang dilakukan orang adalah mengabaikan kebutuhan untuk menemukan perpustakaan ini untuk meneruskannya ke build libxml2 internal.

Salah satu cara untuk memperbaikinya adalah dengan membuat homebrew menambahkan konfigurasi pkg-config untuk libiconv, karena itu nokogiri extconf.rb akan dapat menemukannya.

Cara lain adalah dengan membuat hardcode /usr/local/include sebagai jalur pencarian di sini:

https://github.com/sparklemotion/nokogiri/blob/983ff1f2962c7f9fd20a6fc4c18784eccfff21c0/ext/nokogiri/extconf.rb#L132 -L133

Saya sudah mencoba mencari cara untuk mengekstrak /usr/local/include dari jalur di mkmf Ruby dan bercinta jika saya bisa mengetahui cara melakukannya. Lapisan tipuan di mkmf terlalu dalam. Metode find_header() di mkmf pasti dapat menemukan iconv.h, tetapi saya tidak tahu bagaimana mengekstrak informasi tentang jalur yang menemukannya. Itu sebenarnya akan menjadi perbaikan yang benar untuk nokogiri untuk menemukan file header di dengan cara yang sama seperti mkmf dapat menemukan file header.

Tampaknya fakta bahwa nokogiri tidak dapat menemukan file header sederhana di /usr/local/include tanpa persyaratan untuk pkg-config eksternal rusak. Saya dapat melihat betapa sulitnya mengkodekan jalurnya, tetapi saya tidak tahu bagaimana cara bertanya kepada mkmf direktori mana yang find_header menemukan header di ...

Sepertinya juga ada bug di sini di mana dir_config() dapat mengembalikan larik ':'-jalur yang dipisahkan alih-alih larik dua jalur, tetapi tampaknya tidak ada hubungannya dengan memperbaiki masalah ini:

https://github.com/sparklemotion/nokogiri/blob/983ff1f2962c7f9fd20a6fc4c18784eccfff21c0/ext/nokogiri/extconf.rb#L126 -L130

@lamont-granquist instruksi bagus, bahkan lebih baik jika Anda mengubah tab untuk mengetuk :-)

@ericbrooke lol, saya menyalinnya dari poster sebelumnya... diperbaiki sekarang...

Saya pikir saya mencoba setiap perintah yang disebutkan dalam posting ini dan masih mengalami ini:

sudo 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-lib=/usr/lib --with-iconv-include=/usr/local/include/
Building native extensions with: '--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-lib=/usr/lib --with-iconv-include=/usr/local/include/'
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.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-lib=/usr/lib --with-iconv-include=/usr/local/include/
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
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.

Saya tidak tahu mengapa iconv.h ditemukan, tetapi iconv_open() tidak (didefinisikan dalam file itu). Saya melihat bahwa seseorang mengalami masalah yang persis sama baru-baru ini - http://stackoverflow.com/questions/24735534/nokogiri-install-fails-iconv-doesnt-work-osx

Apakah ada yang melihat masalah ini?

LIHAT INSTRUKSI YANG DIPERBARUI: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

@Reinmar dapatkah Anda mencoba apa yang saya sarankan. Khususnya:

  1. brew link libiconv --force dan kemudian memvalidasi bahwa ls -la /usr/local/include/iconv.h ada
  2. juga memvalidasi ls -la /usr/local/lib/libiconv.dylib ada
  3. maka cukup: gem install nokogiri -- --with-iconv-dir=/usr/local

Semua jalur yang Anda gunakan ke direktori berversi jauh di dalam 'Cellar' homebrew agak buruk dan rapuh dan saya tidak terlalu terkejut itu tidak berfungsi dengan benar.

Saya menggunakan instruksi ini http://nokogiri.org/tutorials/installing_nokogiri.html sehingga jalurnya serupa (versi berbeda).

piotrus<strong i="7">@macus</strong> ~> brew link libiconv --force
Warning: Already linked: /usr/local/Cellar/libiconv/1.14
To relink: brew unlink libiconv && brew link libiconv
piotrus<strong i="8">@macus</strong> ~> ls -la /usr/local/include/iconv.h
lrwxr-xr-x  1 piotrus  admin  39 Jul 29 19:47 /usr/local/include/iconv.h -> ../Cellar/libiconv/1.14/include/iconv.h
piotrus<strong i="9">@macus</strong> ~> ls -la /usr/local/lib/libiconv.dylib
lrwxr-xr-x  1 piotrus  admin  42 Jul 29 19:47 /usr/local/lib/libiconv.dylib -> ../Cellar/libiconv/1.14/lib/libiconv.dylib
piotrus<strong i="10">@macus</strong> ~> gem install nokogiri -- --with-iconv-dir=/usr/local
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
piotrus<strong i="11">@macus</strong> ~> sudo gem install nokogiri -- --with-iconv-dir=/usr/local
Password:
Building native extensions with: '--with-iconv-dir=/usr/local'
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-iconv-dir=/usr/local
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

Mungkin saya akan mencoba memperbarui Ruby/gem... :| Padahal itu tebakan buta.

Oke... Memperbarui gem tidak membantu. Kemudian, setelah menginstal rvm (tetapi sebelum saya memperbarui Ruby dari 2.0.0 ke 2.1.*), saya memutuskan untuk me-restart terminal dan secara keliru saya beralih dari iterm ke terminal standar dan... menginstal nokogiri bekerja dengan perintah yang sama yang tidak bekerja sebelumnya. Jadi saya harus me-restart terminal (meskipun saya menggunakan banyak tab di iterm sebelumnya) atau ada masalah yang disebabkan oleh xterm. Tidak tahu, tapi mungkin itu akan membantu seseorang.

selain jawaban @lamont-granquist, Anda dapat melewati pemasangan permata jika Anda menggunakan bundel dan menjalankan:

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

Setelah mengikuti instruksi @lamont-granquist:

brew tap homebrew/dupes
brew install libiconv
brew link libiconv --force
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local

Dan mengalami masalah yang sama dengan @Reinmar , saya menemukan saran di StackOverflow , dan menggabungkannya dengan saran lain di sekitar sini, menghasilkan:

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 sudo gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Itu akhirnya berhasil untuk saya, semoga itu akan membantu Anda @Reinmar . Mengapa ini berhasil di luar jangkauan saya, _[ komentar tertahan tentang ekosistem tertutup Apple di sini]_. Terima kasih semua untuk berbagi metode Anda.

Saya harus merobek minuman rumahan dan semua minuman menginstalnya kembali dari awal dan kemudian berhasil

@doublerebel saya pikir Anda mungkin perlu menginstal ulang xcode dan/atau menggunakan xcode-select. apa yang Anda lakukan adalah segala macam bingung pula ...

Tampaknya dengan versi homebrew saat ini, saya dapat puas dengan versi yang sedikit disederhanakan dari apa yang dibuat oleh @lamont-granquist:

brew tap homebrew/dupes
brew install libiconv
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local/opt/libiconv

Tidak brew link --force libiconv ...

itu masuk akal @jacobvosmaer , dokumen mungkin harus diperbarui untuk menggunakannya.

(mungkin jatuhkan -v 1.6.3.1, meskipun)

saya akan memperbarui dokumen tetapi saya terganggu sekarang dengan pengkodean lain ...

Setelah seharian mengerjakan masalah ini, perlu disebutkan bahwa solusi @doublerebel di atas adalah hal pertama yang berhasil

LIHAT INSTRUKSI YANG DIPERBARUI: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

ini mungkin membantu bagi pengguna dengan Xcode 5.1.1:

 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

LIHAT INSTRUKSI YANG DIPERBARUI: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

Juga, saya sarankan memastikan bahwa Xcode 5.1.1 diinstal (dan/atau menginstal ulang) dan kemudian menginstal ulang "Alat Baris Perintah untuk Xcode" di sini: https://developer.apple.com/downloads/

Kemudian lakukan:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

Pembaruan dan pemulihan Mac OSX tampaknya membuang Xcode dan homebrew karena beberapa alasan. Saya juga suka mengarahkannya ke /usr/local/opt/libiconv lebih baik daripada memaksa menghubungkannya ke /usr/local/include.

@lamont-granquist Terima kasih atas solusi Anda. Saya menerapkan setiap satu dan satu Anda adalah hal yang akhirnya bekerja untuk saya.

Menjalankan 'brew uninstall libxml2 libxslt' dan kemudian 'Sudo gem install nokogiri' memperbaikinya untuk saya

Saat menggunakan RVM dan membuat set permata baru, saya harus melakukan hal berikut:

brew uninstall libiconv
brew install libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

@lamont-granquist Terima kasih banyak untuk perbaikannya. Bekerja untuk saya.

@lamont-granquist @ericbrooke terima kasih. yang membunuhnya.

EDIT: BAHKAN INSTRUKSI SEDERHANA: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -54091434

Jadi gabungkan bit bagus dari pertanyaan stackoverflow pada jawaban ini:

Jalankan ini untuk menginstal Alat Baris Perintah Xcode dan Xcode terbaru (pilih 'Dapatkan Xcode' dari kotak dialog):

sudo xcode-select --install

Kemudian perbarui libiconv di homebrew:

brew tap homebrew/dupes
brew update
brew uninstall libiconv
brew install libiconv

Lakukan instalasi nokogiri:

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

Itu harus bekerja untuk semua orang di 10.9 + homebrew

akan menyukai beberapa umpan balik tentang ^^^ itu

bekerja untuk saya, terima kasih!

-Chris

Pada Kam, 28 Agustus 2014 jam 16:40, lamont-granquist [email protected]
menulis:

akan menyukai beberapa umpan balik tentang ^^^ itu


Balas email ini secara langsung atau lihat di GitHub
https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53794057
.

Karena penasaran, untuk apa brew uninstall libiconv itu? Apakah ini menyiratkan bahwa Anda sudah menginstal libiconv?

@knu ya itu menyiratkan bahwa Anda menggunakan Mac OsX dan telah menginstal libiconv melalui Homebrew dan bukan MacPorts. Keduanya adalah Manajer Paket. Jika Anda tidak yakin apakah brew diinstal, ketik saja brew di terminal, jika Anda mendapatkan respons ini:

Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]
  brew pin/unpin [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | config]

Brewing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  open https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook

Further help:
  man brew
  brew home

Anda tahu bahwa homebrew diinstal.

brew list

akan menampilkan semua paket yang telah Anda instal termasuk libiconv

@ericbrooke Maksud saya, saya tidak melihat gunanya melakukan brew uninstall libiconv tepat setelah brew tap homebrew/dupes ketika libiconv hanya akan ditemukan setelah mengetuk penipuan karena itu tidak ada dalam repo standar. Apakah ada untuk berjaga-jaga, seperti ketika instalasi homebrew Anda entah bagaimana rusak?

Juga, seperti yang Anda ketahui dari kehadiran libiconv di "dupes", iconv adalah bagian dari OS X+Xcode yang tidak perlu Anda tambahkan melalui brew.

Saya tidak menggunakan Homebrew, tetapi Homebrew tidak boleh menyentuh apa pun di bawah /usr/{include,lib}, bukan? Atau apakah menginstal ulang libiconv melalui brew merupakan upaya untuk memulihkan yang rusak?

Pada MacBook Pro baru dengan vanilla Mountain Lion+Xcode+Command Line Tools diinstal, saya melihat /usr/include/iconv.h dan /usr/lib/libconv.so di sana, jadi saya bertanya-tanya apa penyebab kurangnya itu file bisa.

@lamont-granquist terima kasih.

Saya melakukan apa yang telah Anda daftarkan. Saya mengalami masalah izin pada:
Anda tidak memiliki izin menulis untuk direktori /Library/Ruby/Gems/2.0.0.

Rupanya saya perlu memperbaiki rvm saya dan setelah mengikuti langkah itu terinstal dan melanjutkan proses instal bundel saya.
rvm menginstal 2.1.2
penggunaan rvm 2.1.2
pembaruan permata --sistem

@knu ya setiap kali saya memutakhirkan O/S atau memulihkan dari mesin waktu, sepertinya sampah homebrew dan saya harus menginstal ulang semuanya. instruksi-instruksi itu se-pesimis mungkin. jika seseorang memiliki instalasi xcode bersih yang waras dan libiconv diinstal dengan benar di homebrew maka perintah instal permata terakhir adalah yang dibutuhkan.

Jadi, ternyata /usr/local/include/iconv.h akan #mendefinisikan iconv_open ke libiconv_open dan untuk beberapa alasan dentang mengambil file header homebrew di /usr/local/include melalui /usr/include dan kemudian mencoba menautkan terhadap /usr/lib/libiconv.dylib. Caranya adalah dengan menghapus file header iconv.h yang dibuat dengan force linking libiconv.

TL; DR: instruksi sebelumnya tentang cara 'memperbaiki' masalah ini (termasuk masalah saya) memperburuk semuanya.

Jadi, petunjuk terbaru tentang cara memperbaiki instalasi mac Anda:

Pastikan Xcode dan utilitas baris perintah diinstal dengan benar. Ini memperbaiki masalah di mana saya tidak memiliki file header /usr/include/iconv.h. Pilih 'Dapatkan Xcode' dari kotak dialog:

sudo xcode-select --install

Anda mungkin ingin memperbarui homebrew dan libiconv jika sudah ketinggalan zaman (dan seandainya libiconv Anda di homebrew sudah lama diinstal). Ini mungkin sepenuhnya opsional karena kami tidak akan menautkan ke libiconv homebrew sama sekali sekarang:

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv

Jangan tautkan libiconv, jadi itu tidak menimpa sistem libiconv (jika ini memberi Anda 'tidak ada tong seperti itu' tidak apa-apa, kesalahan lain dan Anda mungkin ingin kembali dan memutakhirkan homebrew dan libiconv):

brew unlink libiconv

Membangun nokogiri:

gem install nokogiri

@lamont-granquist Terima kasih banyak!!

@lamont-granquist Entah mengapa, tetapi dalam komentar terakhir Anda, gem install nokogiri tidak bekerja untuk saya.
Sebagai gantinya, setelah mengikuti semua langkah seperti:

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv
brew unlink libiconv

gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv bekerja untuk saya.

Saya menggunakan 10.9, dengan rvm, jika ini membantu.

@lamont-granquist Terima kasih atas penyelidikan yang luar biasa! Saya pikir saya akan mencoba mereproduksi masalah dan mencari "perbaikan" untuk ini.

@SeanWangDev di suatu tempat Anda memiliki iconv.h lain yang diambil terlebih dahulu dan digunakan. Mungkin yang MacPorts bukan yang Homebrew.

Ya, saya percaya begitu. Ada satu di

/usr/local/Cellar/libiconv/1.14/include/iconv.h

satu lagi di

/usr/include/iconv.h

Yang terakhir adalah versi sebelumnya.
Terima kasih @lamont-granquist

/usr/include/iconv.h baik-baik saja, itu bagian dari Xcode, yang pertama adalah homebrew yang disembunyikan di 'Cellar' yang juga baik-baik saja. Jika tidak ada apa pun di /opt/local/include atau apa pun, maka dugaan saya adalah /usr/lib/libiconv.dylib entah bagaimana rusak?

@lamont-granquist Ini sedikit di luar kedalaman saya sekarang. Bagaimana kita bisa tahu libiconv.dylib rusak?
Ketika saya melakukan ls -al /usr/lib/libiconv* , hasilnya adalah ini

xxxx  1 xxx  xxx       16 10  5  2013 /usr/lib/libiconv.2.4.0.dylib -> libiconv.2.dylib
xxxx  1 xxx  xxx  2088992 10  5  2013 /usr/lib/libiconv.2.dylib
xxxx  1 xxx  xxx       20 10  5  2013 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib

Ya, itu terlihat bagus, ini milikku:

% ls -al /usr/lib/libiconv*
lrwxr-xr-x  1 root  wheel       16 Feb 26  2014 /usr/lib/libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2088992 Feb 26  2014 /usr/lib/libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Feb 26  2014 /usr/lib/libiconv.dylib@ -> libiconv.2.4.0.dylib

Bagaimana dengan /opt/local/lib/libiconv.dylib atau /opt/local/include/iconv.h ? Salah satu dari itu dapat menyebabkan masalah.

@lamont-granquist
Tidak, saya tidak memiliki direktori /opt/. Apakah ini yang kita cari?

-r--r--r--+ 1 User  admin  1052128  9  4 11:30 /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib
-rw-r--r--+ 1 User  admin  1658  9  4 11:22 /usr/local/Library/Taps/homebrew/homebrew-dupes/libiconv.rb
-r-xr-xr-x  1 root  wheel  2088992 10  5  2013 /usr/lib/libiconv.2.dylib

file iconv.h hanya dua ini:

/usr/local/Cellar/libiconv/1.14/include/iconv.h
/usr/include/iconv.h

Tidak, itu semua keren. Sejauh yang saya lihat, Anda seharusnya dapat 'menginstal permata nokogiri' tanpa argumen lain....

Hanya ingin menambahkan bahwa gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local bekerja dengan baik untuk saya. Saat menggunakan bundler saya harus melakukan bundle config build.nokogiril --with-iconv-dir=/usr/local

@lamont-granquist Ya, gem install nokogiri berfungsi dengan baik sekarang. Tapi kondisi ini berbeda. Kali ini nokogiri sudah diinstal sebelumnya oleh 'gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv'. Sebelumnya, ketika saya tidak menginstal nokogiri, 'gem install nokogiri' tidak akan berfungsi.
Apakah mungkin menjalankan 'gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv' mengubah sesuatu file atau menambahkan beberapa file seperti libiconv.dylib atau iconv.h ?

@SeanWangDev :+1:

OS X 10.9.4 Mavericks.
Teman-teman tolong bantu saya. Saya mencoba setiap cara yang ada di atas. Tak satu pun dari mereka bekerja untuk saya. Saya menumpuk di gem install nokogiri dengan/tanpa argumen, saya masih mendapatkan kesalahan:

$ permata instal nokogiri
Membangun ekstensi asli. Ini bisa memakan waktu cukup lama...
Membangun nokogiri menggunakan perpustakaan yang dikemas.
KESALAHAN: Kesalahan menginstal nokogiri:
GALAT: Gagal membuat ekstensi asli permata.

/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb

Membangun nokogiri menggunakan perpustakaan yang dikemas.
memeriksa iconv.h... * extconf.rb gagal *
Tidak dapat membuat Makefile karena beberapa alasan, mungkin tidak diperlukan
perpustakaan dan/atau header. Periksa file mkmf.log untuk lebih jelasnya. Kamu boleh
membutuhkan opsi konfigurasi.

Opsi konfigurasi yang disediakan:
--with-opt-dir
--tanpa-opt-dir
--with-opt-include
--tanpa-opt-include=${opt-dir}/include
--with-opt-lib
--tanpa-opt-lib=${opt-dir}/lib
--dengan-membuat-prog
--tanpa-membuat-prog
--srcdir=.
--curdir
--ruby=/usr/local/rvm/ruby/ruby-2.0.0-p353/bin/ruby
--Tolong
--membersihkan
--gunakan-sistem-perpustakaan
--aktifkan-statis
--nonaktifkan-statis
--with-zlib-dir
--tanpa-zlib-dir
--with-zlib-include
--tanpa-zlib-include=${zlib-dir}/include
--with-zlib-lib
--tanpa-zlib-lib=${zlib-dir}/lib
--enable-cross-build
--disable-cross-build
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:434:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:565:in try_cpp'
dari /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1044:di block in have_header' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:895:in blok di check_for'
dari /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in block (2 levels) in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in open'
dari /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in block in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in open'
dari /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:336:in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:894:in checking_for'
dari /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1043:in have_header' from extconf.rb:103:in have_iconv?'
dari extconf.rb:148:di block (2 levels) in iconv_prefix' from extconf.rb:90:in melestarikan_globals'
dari extconf.rb:143:di block in iconv_prefix' from extconf.rb:120:in each_iconv_idir'
dari extconf.rb:137:di iconv_prefix' from extconf.rb:428:in blok masuk

'
dari extconf.rb:161:di block in process_recipe' from extconf.rb:154:in tap'
dari extconf.rb:154:di process_recipe' from extconf.rb:423:in
'

File permata akan tetap terinstal di /usr/local/rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.3.1 untuk diperiksa.
Hasil dicatat ke /usr/local/rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out

memvalidasi Anda memiliki file-file ini:

% ls -la /usr/include/iconv.h
-rw-r--r--  1 root  wheel  7981 Jul 29 15:32 /usr/include/iconv.h
% ls -la /usr/lib/libiconv.*
lrwxr-xr-x  1 root  wheel       16 Feb 26  2014 /usr/lib/libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2088992 Feb 26  2014 /usr/lib/libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Feb 26  2014 /usr/lib/libiconv.dylib@ -> libiconv.2.4.0.dylib

jika tidak, gunakan sudo xcode-select --install dan/atau buka situs unduhan pengembang apel dan hapus instalan dan instal ulang xcode dan utilitas baris perintah xcode secara manual hingga Anda menginstal file tersebut.

kemudian jika Anda menggunakan homebrew, perbarui homebrew Anda dan unlink libiconv

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew unlink libiconv
brew install libiconv

validasi bahwa Anda tidak memiliki /usr/local/include/iconv.h:

% ls -la /usr/local/include/iconv.h
ls: /usr/local/include/iconv.h: No such file or directory

juga validasi bahwa Anda tidak memiliki /opt/local/include/iconv.h

% ls -la  /opt/local/include/iconv.h
ls: /opt/local/include/iconv.h: No such file or directory

jika Anda memiliki file itu maka Anda telah menginstal iconv dari macports, idealnya Anda akan menyingkirkan ini.

lalu coba:

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

(berhenti ketika Anda menemukan yang berfungsi)

jika semuanya gagal:

brew link --force libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local

sesuatu di sana harus bekerja.

@ lamont-granquist: +1:

@lamont-granquist Terima kasih atas instruksi Anda, saya mengerti apa yang terjadi dan sudah mulai memperbaikinya. Namun saya masih tidak dapat mereproduksi masalah di salah satu Mac saya sehingga tidak ada cara untuk mengonfirmasi apakah perbaikan berhasil. Bisakah Anda memberikan langkah-langkah untuk reproduksi?

Yah, saya sudah memiliki MBP ini selama 3 tahun dan setelah 2 peningkatan OS dan setidaknya 3 pemulihan TM, /usr/include/iconv.h saya entah bagaimana menghilang. Jadi nuke'ing file itu dapat menyebabkan masalah. Solusinya adalah menginstal ulang xcode dan alat baris perintah dengan benar.

Juga, saat men-debug satu hal ini orang menyarankan lakukan adalah 'brew link libiconv --force' sehingga diinstal ke /usr/local/include/iconv.h -- meskipun ada peringatan besar ketika Anda melakukan 'brew install libiconv ' dan 'brew link libiconv' bahwa ini adalah ide yang buruk. Masalahnya adalah Anda dapat mengambil iconv.h itu saat mengambil sistem /usr/lib/libiconv.dylib dan yang memiliki konflik segera atas iconv_open() vs libiconv_open() dan gagal untuk mengkompilasi karena mereka berbeda versi.

Saya tidak yakin ada yang harus diperbaiki dalam kasus-kasus itu. Masalahnya benar-benar dengan merusak sistem operasi Anda dan perlu mengembalikannya ke bentuk yang lebih murni.

Ada satu hal yang saya tidak mengerti mengapa sistem pembangunan nokogiri akan menemukan file /opt/local/include/iconv.h yang diinstal MacPorts. Saya tidak menggunakan MacPorts jadi belum men-debug itu, tetapi ini menyebabkan masalah yang mirip dengan ketika homebrew memiliki iconv.h yang terhubung langsung ke /usr/local/include. Jika nokogiri dapat dibuat untuk berhenti melakukan itu, itu akan membantu orang-orang yang menginstal libiconv dari MacPorts.

$ ls -la /usr/include/iconv.h

-rw-r--r-- 1 roda akar 7981 11 Sep 11:32 /usr/include/iconv.h

ls -la /usr/lib/libiconv.*
lrwxr-xr-x 1 root wheel 16 Sep 11 01:03 /usr/lib/libiconv.2.4.0.dylib -> libiconv.2.dylib
-r-xr-xr-x 1 roda akar 2088992 11 Sep 01:02 /usr/lib/libiconv.2.dylib
lrwxr-xr-x 1 root wheel 20 Sep 11 01:03 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib

pembaruan minuman
Homebrew yang diperbarui dari 45e07c0e ke e0dee399.
==> Rumus yang Diperbarui
android-ndk go lockrun pazpar2
apache-spark h2 mpd pktanon
gearman juju-quickstart ossp-uuid

$ brew tap homebrew/dupes
Peringatan: Sudah disadap!

$ brew uninstall libiconv

Menghapus instalasi /usr/local/Cellar/libiconv/1.13.1...

Kesalahan: Izin ditolak - /usr/local/Cellar/libiconv/1.13.1/bin/iconv

itu memberi saya kesalahan Izin pada langkah itu

Anda perlu memperbaiki semua izin Anda di bawah /usr/local

apa pun login Anda, Anda perlu memperbaiki izin sehingga root tidak memiliki file homebrew di /usr/local:

nama pengguna saya adalah 'lamont' yang dapat saya temukan dengan perintah id :

% id -nu
lamont

untuk memperbaiki perm, saya akan melakukan:

% sudo chown -R lamont /usr/local

Anda ingin benar-benar berhati-hati dengan perintah itu, dan periksa kembali apakah Anda telah mengeja semuanya dengan benar dan mendapatkan nama pengguna yang tepat.

@lamont-granquist Bukankah paket libiconv dari Homebrew menginstal /usr/local/lib/libiconv.dylib sambil meletakkan /usr/local/include/iconv.h? Apa yang saya tidak mengerti adalah jika /usr/local/include/iconv.h diambil mengapa /usr/local/lib/libiconv.dylib tidak saat menautkan. Biasanya ketika -I/usr/local/include ada di CPPFLAGS -L/usr/local/lib harus di LDFLAGS.

Mengenai kerusakan lingkungan, Nokogiri setidaknya dapat menyarankan (kembali) menginstal Alat Baris Perintah ketika /usr/include/iconv.h hilang di OS X.

brew unlink libiconv
Kesalahan: Tidak ada tong seperti itu: /usr/local/Cellar/libiconv

Saya mengabaikan pesan dan mengikuti langkah selanjutnya. Tidak berhasil

@knu ya, saya melihat ke dalamnya dan saya pikir saya tersesat di labirin berkelok-kelok mkmf.rb.

@Ilovebarca rm -f /usr/local/include/iconv.h mungkin bisa membantu

@lamont-granquist
tidak tidak membantu. BTW terima kasih banyak telah mencoba membantu saya.
Itu gila, saya baru di mac dan saya mulai membencinya :))

Saya akan membuat beberapa perubahan dalam proses deteksi iconv dan menambahkan tanda centang pada /usr/include/iconv.h pada OS X ke extconf.rb. Ini adalah pekerjaan yang sedang berlangsung, dan penguji dipersilakan!

Saya telah melalui masalah github, pertukaran tumpukan, google dll dan satu-satunya hal yang berhasil sejauh ini adalah saran @lamont-granquist . Pengaturan menggunakan:

OSX 10.9.5
rbenv

Saya mengerti begitu banyak orang yang entah bagaimana membuat lingkungan OS X mereka rusak dan mereka bahkan tidak menyadarinya. Satu masalah tidak memiliki Alat Baris Perintah Xcode dan yang lainnya adalah Homebrew. Rilis nokogiri berikutnya akan mencoba mendeteksi kerusakan seperti itu sebelum memasuki build dan memperingatkan pengguna tentangnya.

Terima kasih atas dukunganmu!

Terima kasih @lamont-granquist, saya telah berjuang mengatasi masalah ini selama seminggu sekarang dan akhirnya solusi Anda untuk menginstal ulang libiconv berfungsi ... itu melegakan!!!

@jomz bekerja pada osx 10.10. terima kasih :+1:

Dari instalasi baru 10.10 hari ini:

xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew install ruby
source /etc/profile
gem install nokogiri

Ini menginstal ruby ​​versi 2.1.5p273 dan nokogiri 1.6.4.1. Agaknya Anda dapat memaksa pemasangan versi ini melalui homebrew dan rubygems.

Dari instalasi 10.10 ditingkatkan dari 10.9 dengan homebrew dan Ruby sudah diinstal:

brew install libxml2 libxslt
gem install nokogiri -- --use-system-libraries

Saya tidak yakin perlu menginstal ulang libxml2 dan/atau libxslt, tetapi ini berhasil bagi saya.

Saya yakin kami telah menangkap ini dalam tutorial instalasi yang diperbarui di sini:

http://www.nokogiri.org/tutorials/installing_nokogiri.html

Jika tidak, beri tahu saya dan saya akan membuka kembali.

Terima kasih untuk tautan tutorialnya! Ini berfungsi untuk saya ketika saya menentukan jalur file, seperti yang dijelaskan dalam "Menggunakan instalasi libxml2 / libxslt yang tidak standar." (Sepertinya /usr/bin di OS X 10.6.8 dianggap sebagai lokasi yang tidak standar untuk pustaka sistem.)

Untuk menemukan jalur file, saya menggunakan perintah Terminal which xml2-config dan which xslt-config . Mungkin memperbarui tutorial untuk menyarankan melakukan ini?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat