Saya selalu mengatasi masalah instalasi Nokogiri dengan mengikuti dokumentasi di tutorial " Instalasi Nokogiri ".
Tapi kali ini, bahkan setelah menginstal semua dependensi, Nokogiri belum diinstal. Saya mendapatkan kesalahan berikut:
libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html>
Saya mencoba menginstalnya dengan menentukan direktori libxml2 dan libxslt:
sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/
tapi itu mengembalikan kesalahan yang sama.
Saya mengikuti semua artikel Stack Overflow terkait lainnya dan tidak ada yang membantu. Adakah yang punya solusi?
ruby-on-rails
ruby
rubygems
Rohit A.
sumber
sumber
Jawaban:
Pertama, instal dependensi:
Jika Anda masih menerima kesalahan, Anda mungkin kehilangan rantai alat penyusun:
Anda akan mendapatkan kesalahan "libxml2 is missing" jika Anda melewatkan build toolchain (setidaknya saya mengalami masalah ini pada Debian Lenny).
Nokogiri build test-compile file header libxml2 untuk memverifikasi bahwa file tersebut ada, namun, tidak membedakan antara "libxml2 hilang" dan "kompiler untuk menguji libxml2 hilang".
sumber
Anda mungkin perlu menginstal kedua paket ini
sumber
Di Mac OS X (Mavericks), menginstal perpustakaan dengan
brew
dan pengaturanNOKOGIRI_USE_SYSTEM_LIBRARIES=1
sebelum menginstal permata melakukan trik untuk saya.Meringkas:
Jika sebelumnya diinstal, hapus instalan permata:
Gunakan Homebrew untuk menginstal
libxml2
,libxslt
danlibiconv
:Instal permata yang menentukan jalur ke perpustakaan untuk dihubungkan dengan:
sumber
$ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri
melakukan trikbrew install libxml2 libxslt homebrew/dupes/libiconv
agar berfungsi--with-xml2-include="/usr/local/opt/libxml2/include/libxml2"
untukgem install nokogiri
perintah untuk bekerja. Otherwse, itu akan ditampilkanlibxml2 version 2.6.21 or later is required!
(versi libxml2 saya adalah 2.9.2)Saya baru saja mengalami masalah yang sama pada Fedora 13. Setelah melakukan pencarian yang membuat frustrasi dan tidak berhasil
bekerja untuk saya, saya bisa menginstalnya dan menyiasati kesalahan libxml2 via
yum
.Cukup instal permata melalui
yum
alih-alihgem
perintah:Ini membantu saya menemukan jawaban yang tepat untuk Fedora dan, karena saya menggunakan RVM untuk manajemen paket Ruby,
akan menarik semua permata Ruby dan dependensi ke dalam sistem, bukan ke lingkungan RVM saya, dan dalam pengalaman saya yang mengarah pada pengalaman yang sangat membuat frustrasi dan rendah hati.
Jadi, mengambil permata Nokogiri yum yang bisa Anda gunakan:
dan dapatkan daftar dependensi untuk rubygem-Nokogiri yang menunjukkan kepada saya perpustakaan yang hilang. Setelah itu saya berlari:
Sekarang Nokogiri mengkompilasi di Fedora dan Nokogiri menginstal. Doh !, kita perlu header untuk mengkompilasi Nokogiri dari perpustakaan devel.
sumber
Di Mac OS X (Mavericks) jika tidak ada solusi ini yang berfungsi, coba:
atau
tergantung pada arsitektur sistem Anda.
sumber
Anda biasanya memerlukan file pengembangan untuk membangun permata. Mencoba:
(Saya baru saja melihat bahwa Eric menyarankan hal yang sama dalam komentar.)
sumber
Saya dapat menginstal ini dengan Chocolatey , Windows 8.1 x64, dan DevKit x64.
Anda harus memverifikasi nomor versi di jalur yang benar.
Anda mungkin perlu menambahkan repositori NuGet Microsoft:
sumber
...\x64\Release\dynamic\cdecl
.chocolatey sources add -name NuGet -source "https://go.microsoft.com/fwlink/?LinkID=230477"
Boleh jadi:
di server RHEL.
sumber
Di macOS tidak ada di atas / di bawah ini yang benar-benar bekerja untuk saya sampai saya secara eksplisit menyediakan jalur XCode libxml2 ke
--with-xml2-include
.sumber
Saya dapat menginstal Nokogiri 1.6.5 di Fedora 20 dengan melakukan:
Kemudian jalankan:
sumber
Untuk orang lain yang mengalami masalah ini, saya menyelesaikannya dengan menjalankan perintah ini dalam direktori proyek
gem install nokogiri -- --use-system-libraries
Pembaruan: Saya mengalami ini lagi dan mencoba memperbarui permata yang berfungsi untuk saya ...
gem update nokogiri
sumber
Sudahkah Anda mencoba menginstal libxml2? Bukan dari rubygems, tetapi melalui proses instalasi standar untuk sistem operasi Anda. Di Ubuntu / Debian misalnya:
Pada versi OS X terbaru apa pun seharusnya sudah diinstal.
sumber
Untuk pengguna OSX, jika Anda pernah berhasil menginstal Nokogiri sebelumnya, namun mendapatkan kesalahan saat menginstalnya, katakanlah, menggunakan versi baru Ruby yang telah Anda tambahkan dan kesalahan yang menyertakan pesan seperti:
Ini bisa menjadi indikasi peningkatan XCode yang terjadi melalui App Store, baik secara manual atau otomatis, dan Anda belum membukanya sejak saat itu.
Jika demikian, Anda harus dapat membuka XCode, menyetujui lisensi baru, dan kemudian menginstal Nokogiri dengan sukses.
sumber
Di Mac OS X Yosemite kesalahan saya adalah saya mencoba menggunakan
sudo gem install
ketika itu adalah aturan praktis untuk tidak menggunakan hak superuser saat memasang permata.Dalam kasus saya itu mencoba memodifikasi instalasi sistem Ruby, dan itu bukan ide yang baik. Saya menginstal rbenv, menginstal Ruby 2.2.2 melalui dan menetapkannya
global
, yang merupakan istilah dari dokumentasi rbenv. Setelah itu Nokogiri bisa menginstal sendiri dengan sederhanaTidak ada peretasan atau penyelesaian yang diperlukan, hanya lingkungan yang diatur dengan benar; Nokogiri melakukan sisanya dengan sempurna.
sumber
sudo
tidak masalah JIKA Anda memahami cara kerjanya, di mana ia akan berlaku, mengapa file yang diinstal atau diperbarui harus diinstal dan cara membatalkan tindakan jika gagal. Kalau tidak, menggunakan kotak pasir seperti rbenv atau RVM adalah ide yang BENAR - BENAR bagus.Mampu menginstal vagrant-awe dengan mengikuti posting di atas tetapi menggunakan perintah sebagai berikut:
sumber
Untuk Windows x64:
Untuk informasi lebih lanjut, periksa utas ini: https://github.com/sparklemotion/nokogiri/issues/864
sumber
Saya dapat menginstal Nokogiri dengan menjalankan paket-paket berikut:
sumber
=== TLDR ===
Seperti yang dinyatakan dalam instruksi , bangun Ruby dengan kompiler dentang terbaru, atau setidaknya versi yang sama dengan yang digunakan Rubygems untuk mengkompilasi libxml dan libxsl ekstensi asli Nokogiri.
Jika menggunakan RVM, membangun dari sumber dengan
--with-ggc=clang
bendera adalah apa yang dilakukan untuk saya:Ganti
2.2
dengan versi apa pun yang Anda inginkan.--with-gcc=clang
memastikan RVM membangun dari sumber dan menggunakan dentang untuk melakukannya; jika tidak, RVM mungkin binary Ruby yang sudah dibuat sebelumnya, yang membuat saya tersandung.Kemudian, instal Nokogiri seperti biasa menggunakan Bundler atau Rubygems.
=== DALAM KEDALAMAN ===
Saya berjuang dengan ini untuk sementara waktu.
gem install nokogiri
memberi saya:Menggali
mkmf.log
saya melihat:Nokogiri memasok libxml dan libxsl sendiri (pada 1.6.4). Tanda tangan yang didefinisikan dalam salinan parser.h lokal Nokogiri (ditemukan di bawah direktori install permata) adalah:
Jadi saya bingung bagaimana metode panggilan dalam penggunaan file conftest.c yang tertutup rapat tidak bisa cocok dengan file header untuk parser.h.
Ketika saya menyadari bahwa saya mungkin telah menginstal Ruby biner, saya menghapus dan menginstal ulang menggunakan
--with-gcc=clang
(untuk memaksa kompilasi dan menggunakan dentang) dan masalahnya terpecahkan:Saya tidak yakin mengapa itu bekerja karena header sistem libxml
/usr/include/libxml2/libxml/parser.h
memiliki tanda tangan yang sama dengan salinan lokal Nokogiri.Aneh, tapi berhasil. Pastikan Anda mengkompilasi Ruby dengan dentang.
sumber
Ubah versimu dengan itu.
sumber