Sabahın büyük bir bölümünü bu uyarı üzerinde çalışarak geçirdim. Bu düzeltme, Mac OS Lion kullanan kişiler içindir. Kullanarak yukarıdaki düzeltme
bundle config build.nokogiri --with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib --with-xslt-dir=/opt/local
MacPorts aracılığıyla libxml2 yüklenmiş Snow Leopard içindir.
Lion ile libxml2, önyükleme işleminin bir parçası olarak yüklenir. Nokogiri'nin hangi libxml2'yi işaret ettiğinden bağımsız olarak, libxml2 için Lion sistemi varsayılan kitaplığı çalışma zamanında kullanılacaktır. Lion, bulunan /usr
(değil /usr/local
) libxml2.2.7.3'ü kullanır .
Diğer birçok yerde de belirtildiği gibi, uyarılar göz ardı edilebilir. Benim gibi uyarı sizi çıldırtıyorsa, bunu yapabilirsiniz:
bundle config build.nokogiri --with-xml2-dir=/usr --with-xslt-dir=/opt/local --with-iconv-dir=/opt/local
İlginç bir şekilde, nokogiri -v
komut satırına yazarsanız, tam tersi bir uyarı alırsınız:
WARNING: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8
Bu, libxml2'nin nasıl yüklendiğine dair daha fazla bilgi olduğunu gösterir; Ruby ve Rails, sistem yüklü libxml2'yi ve komut satırını ortam yolundan libxml2'yi kullanarak kullanır. Her neyse, bu benim için hatayı susturur.
Tekrar söyleyeceğim - bu sadece Lion için. Önceki düzeltme Snow Leopard için çalışacak.
Bu cevabın sonu. Burada okumayı bırak.
Tamam, okumayı bırakmadın ... şey ...
TAVSİYE EDİLMEZ!!!!!!
Uyarıldın. Mac OSX'in, içinde bulunan libxml2'yi devre dışı bırakarak, önyüklemesine libxml2 kitaplığını yüklediğini doğrulayabilirsiniz /usr/lib
. Tüm sürümlerini libxml2*.dylib
to kopyalamak gibi bir şey yapın libxml2*.dylib.old
(benim makinemde bu libxml2.2.7.3
, libxml2.2
ve idi libxml2
).
Bunu yaptıktan sonra, Nokogiri'yi çalıştırmak herhangi bir hata üretmeyecektir. O yüklü libxml2 bulamıyorum ve şimdi sonunda bulgu, çevre yolu takip edecek olmasıdır libxml2.2.7.8
içinde /opt/local
.
ANCAK eski libxml dosyalarını geri kopyalayamazsınız. Bunun nedeni, işletim sisteminin önyüklemede yüklenen libxml2'ye ihtiyaç duymasıdır.
Gücü kapatıp tekrar açmak makinenizi tutacaktır. Giriş ekranı askıda kalacak ve takılacak. Güç kapalı ve güç tek kullanıcı modunda yeniden (beklemeye Command- Syeniden iken). Önyükleme oluşumunu izleyebilirsiniz. Düşük ve işte, libxml2'yi yükleyemediği bir hata atıyor ve sonra çalışmayı durduruyor.
Gücü kapatın ve tekrar açın. Bu sefer kurtarma moduna önyükleme yapın (basılı tutun Command- Rveya tutun Optionve ardından kurtarma diskini seçin). Kurtarma modunda terminali ( utilities/terminal
) açın. HD'nize /usr/lib
bağlayın (deneyin /Volumes/Macintosh\ HD/usr/lib
) ve libxml2 dosyalarını geri kopyalayın. Yeniden başlatın ve her şey yoluna girecek.
brew remove --force libxml2
bundle config --delete build.nokogiri
gem uninstall nokogiri libxml-ruby
bundle