Soru 'require': 'rails server' çalıştırırken böyle bir dosya - 'nokogiri \ nokogiri' (LoadError) yüklenemiyor


DevKit ile Windows 8.1 üzerinde Ruby 2.2.1'in temiz yüklemesini çalıştırıyorum. Yüklemeden sonra koşuyorum:

gem install rails
rails new testapp
cd testapp
rails server

her şeyi varsayılan olarak bırakıyorum.

Sunucu çalıştırılmak yerine, hata mesajını aldığımda işlem son satırda başarısız oluyor.

in 'require': cannot load such file -- 'nokogiri\nokogiri' (LoadError)

Her seferinde olur ve etrafına baktım ve bulduğum her şeyi denedim, ama şimdiye kadar hiçbir şey işe yaramadı.

Burada sorun nedir ve basit bir test Rails uygulaması nasıl çalışırım?


57
2018-03-12 00:24


Menşei


koştun mu gem install nokogiri ? Bu en azından size neden Rails'in bir bağımlılığı olarak kurulmadığını söyleyecektir. - Beartech
koşmak bundle install raylar dizininde - Yana Agun Siswanto
Ruby2.2 ile ilgili bir sorun - Richard Peck


Cevaplar:


Nokogiri henüz Windows'da Ruby 2.2'yi desteklemiyor. Bir sonraki sürüm olacak. Görmek https://github.com/sparklemotion/nokogiri/issues/1256

Nokogiri, Windows'ta yerel yapıları (ör. Devkit ile) desteklemez. Bunun yerine önceden oluşturulmuş DLL'leri içeren taşlar sağlar.

Burada devkit oluşturma desteği konusuna katılmak veya izlemek isteyebileceğiniz bir tartışma var: https://github.com/sparklemotion/nokogiri/issues/1190


62
2018-03-12 10:50



Bilgi için teşekkürler, bunu temizler. Şimdilik sadece raylar üzerinde çalışmak için linux'a gideceğim. - Shef


  1. Öncelikle şu anda sahip olduğunuz Nokogiri sürümünü kaldırın:

    gem uninstall nokogiri
    
  2. İndir Nokogiri 1.6.6.2 (x64) veya Nokogiri 1.6.6.2 (x86)

  3. Bu sürümü yerel olarak kullanarak yükleyin:

    gem install --local C:\Users\$user$\Downloads\nokogiri-1.6.6.2-x64-mingw32.gem
    

    veya 32bit Ruby çalıştırıyorsanız:

    gem install --local C:\Users\$user$\Downloads\nokogiri-1.6.6.2-x86-mingw32.gem
    

    Yol, dosyayı indirdiğiniz yere bağlı olarak değişebilir.

Sunucuyu yeniden başlatmayı deneyin. ruby bin\rails serverve işe yaramalı.


37
2017-10-12 04:17



Benim için çalıştı .. Teşekkürler Julio. :) - Senin için yükseltin. - Ravi Kumar Gupta
Güzel, işe yarıyor! Yine de Nokogiri'nin Windows üzerinde 2.2.x veya yukarısını desteklememesi ... - Fomentia


Nokogiri'nin Windows 10'daki Ruby 2.2 ile Mike Dalessios ve Julios'un bir karışımıyla çalıştığını gördüm:

  1. Nokogiri'nin son versiyonuna bakın. Nokogiri'nin github repo.
  2. Koşmak gem uninstall nokogiri.
  3. Eklemek gem "nokogiri", ">= 1.6.7.rc" Gemfile.
  4. Koşmak bundle install.
  5. Koşmak bundle update nokogiri Eğer paket bir versiyonda Nokogiri'yi kilitlediyse.

32
2017-10-29 09:20



Teşekkür ederim! İşe yaradı! - TiPo
Bu da Windows 7'de çalışır. - snowYetis
Ayrıca Ruby 2.3.0'da sorun yaşadığınızda da çalışır - John Isaiah Carmona


enter image description here

düzeltmek

  1. Paket kurulumu (Nokogiri dosyalarını alır)
  2. Göz at ruby_dir\lib\ruby\gems\2.2.0\gems\nokogiri-1.6.6.2\ext\nokogiri
  3. Açık extconf.rb
  4. Eklemek dir_config('iconv').any? or pkg_config('libiconv') için #376
  5. İndir MinGW64 & MSYS Mega klasörleri
  6. Onları ekle PATH Windows'da (kaldır Devkit yol refs - işe yaramıyor
  7. İndir libxml2,libxslt, iconv kütüphaneler (veya İşte)
  8. Koşmak ruby extconf.rb --platform=ruby --n --use-system-libraries indirilen kütüphanelere başvurma
  9. Koşmak make
  10. Koşmak make install

adımlar

Paket Kurulumu

İlk adım demet.

Bu koyacağız nokogiri Paketlenmiş derleyiciyi çalıştırmadan makinenizdeki mücevher (çoğunlukla Windows'ta çalışmaz).

Bu Nokogiri'yi Kurulmuş:

enter image description here

Araştır

Göz atın nokogiri bulmak için klasör ext/nokogiri/extconf.rb:

enter image description here

Açık extconf.rb

... ve Ekle dir_config('iconv').any? or pkg_config('libiconv') için #376

enter image description here

Standart Nokogiri "güveniyor" üzerine yükler libxml2 dahil olmak iconv - Açıkça tanımlamalıyız, aksi halde iconv.h is missing hatalar meydana gelecektir.

Toolchain ekle

Kullanma devkit bunun için - işe yaramıyor.

İhtiyacın var MinGW:

enter image description here

Tam olarak sıkıştırdım MinGW64 ve MSYS64 klasörler Mega üzerinde (Anahtar: !FJtcq25l-QMsNltCxllMhc1IGqORvap8xv8gWxSUbDA):

enter image description here

YOL'a ekle

Bu erişim sağlar gcc & make (her ikisi de gerekli):

enter image description here

Kaldır devkit yolundan ref ve aşağıdakileri ekleyin:

  • MINGW64_PATH / bin
  • MSYS64_PATH / bin

Libs indir

Mega'ları libere ekledim:

enter image description here

Onları burada unzip edeceksiniz:

enter image description here

Bütün kütüphaneler bu kaynak.

Koşmak extconf.rb

Libs sisteminizde olduğunda, çalıştırabilirsiniz ruby extconf.rb yapıyı yapılandırmak için:

enter image description here

32bit

ruby extconf.rb --platform=ruby -N -- --use-system-libraries --with-xml2-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/libxml2-2.9.2-win32-x86 --with-xml2-include=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/libxml2-2.9.2-win32-x86/include/libxml2 --with-iconv-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/iconv-1.14-win32-x86 --with-xslt-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/libxslt-1.1.28-win32-x86

64bit

#64 ruby extconf.rb --platform=ruby -N -- --use-system-libraries --with-xml2-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/libxml2-2.9.2-win32-x86_64 --with-xml2-include=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/libxml2-2.9.2-win32-x86_64/include/libxml2 --with-iconv-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/iconv-1.14-win32-x86_64 --with-xslt-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/libxslt-1.1.28-win32-x86_64

make

enter image description here

Bu, "yazdığı sürece hatalar / uyarılar oluşturabilir"Error 1 (ignored)", tamam olmalı.

Bunu takiben make install:

enter image description here

Sonra Rails kurulumunuza göz atın ve çalıştırın rails s:

enter image description here


açıklama

Bağlam vermek için:

Windows üzerinde Ruby 2.2 +, derlemez uzantılar Nokogiri gerektirir.

uzantılar Bir gemin kullandığı ekstra bağımlılıklar (kütüphaneler).

Onlar senin için inşa edildi kurmak mücevher:

enter image description here


Uzantıları

Uzantıların olmaması Nokogiri'nin çalışmasını engelliyor.

Uzantıları var ext bir mücevher klasörü (onlar hakkında buradan okuyabilirsiniz):

enter image description here

Mysql2,RMagick,PGSQL, Nokogiri vb herşey uzantıları / kütüphaneleri kullanın.

İşte bu yüzden - Windows'da - özel anahtarları kullanmanız gerekiyor--with-opt-dirgem taşırken). Bu Ruby / kabuk / (cmd) gerekli olan lib / include gem dosyaları oluşturmak için gerekli dizinler (nasıl eşdeğerdir PATH Eserleri).

üzerinde Linux/MacBu dizinler ilgili paket yöneticileri ile yönetilmektedir (brew/apt-get). Windows buna sahip değil, bu nedenle uzantıları manuel olarak yüklemelisiniz.

Windows'un standart bir kitaplık kümesi olmadığından bunları kendiniz indirmeniz gerekir. Ayrıca sende inşa etmek Onları kendiniz (bu zor).

Nokogiri yüklemesi düzeltmesi, doğru kitaplıkları kullanmak ve gem'i yüklemek için araçlar oluşturmaktır.


İnşa etmek

Ruby 2.2 + 'daki fark, geminin herhangi bir istisna göstermeden "yüklenmesini" sağlayacaktır. Sadece Rails’i bulmak için yüklü olduğunu düşünüyorsun değil yük (bundan dolayı nokogiri/nokogiri.so hata).

Bu, sisteminizdeki dosyalara sahip olduğunuzdan ve bunları yüklemek için derleyiciyi çalıştırdığınızdan emin olmanız gerektiği anlamına gelir.

Yukarıdaki belgeler bunu nasıl yapacağınızı göstermelidir.


5
2017-11-08 12:19



Sağladığınız anahtarla giriş yapmayı denedim ancak URL'nin artık olmadığını söyledi :( Gerekli bileşenleri sizden alma şansı var mı? - Mr. Kennedy
Tabi, repoyu tamir edeyim - Richard Peck
MINGW64 / MSYS64 - mega.nz/#!c4tGRSTb!FJtcq25l-QMsNltCxllMhc1IGqORvap8xv8gWxSUbDA - Richard Peck
tatlı! Çok etkileyici işler! - Mr. Kennedy
Libs - mega.nz/#!Zw1QCSDa!Zm39QTKS2nAHh7vZxt7TJeZk8U-Wg8UFCVi6abDn2oo - Richard Peck