8

Sau khi nâng cấp lên Snow Leopard, tôi thấy rằng cài đặt một số đá quý không còn làm việc, bao gồm webrat, cơ giới hóa, vv Mỗi lần tôi nhận được lỗi này:lỗi cài đặt một số đá quý trên Snow Leopard - libxml2

checking for xmlParseDoc() in -lxml2... no 
libxml2 is missing. try 'port install libxml2' or 'yum install libxml2' 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Và không , Tôi đã không thử cài đặt nó với macports, bởi vì tôi forswore macports một vài năm trở lại khi tôi phát hiện ra tôi không thể dễ dàng hạ cấp/quản lý cổng. Kể từ đó, tôi đã trở nên rất thoải mái xây dựng từ nguồn bằng tay, và đây là lần đầu tiên tôi đã chạy vào một cái gì đó ngoài ken của tôi. Tôi sẵn sàng được thuyết phục để quay trở lại với macports, nhưng chỉ khi không có giải pháp dễ dàng cho điều này tôi đang mất tích.

Nó không xuất hiện libxml2 mà thực sự là mất tích, chỉ cần ra khỏi ngày có lẽ? ...

mở rộng đầu ra

ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for iconv.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for libxml/parser.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for libxslt/xslt.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for libexslt/exslt.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for xmlParseDoc() in -lxml2... no 
libxml2 is missing. try 'port install libxml2' or 'yum install libxml2' 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/local/bin/ruby 
    --with-iconv-dir 
    --without-iconv-dir 
    --with-iconv-include 
    --without-iconv-include=${iconv-dir}/include 
    --with-iconv-lib 
    --without-iconv-lib=${iconv-dir}/lib 
    --with-xml2-dir 
    --without-xml2-dir 
    --with-xml2-include 
    --without-xml2-include=${xml2-dir}/include 
    --with-xml2-lib 
    --without-xml2-lib=${xml2-dir}/lib 
    --with-xslt-dir 
    --without-xslt-dir 
    --with-xslt-include 
    --without-xslt-include=${xslt-dir}/include 
    --with-xslt-lib 
    --without-xslt-lib=${xslt-dir}/lib 
    --with-xml2lib 
    --without-xml2lib 


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.1 for inspection. 
Results logged to /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.1/ext/nokogiri/gem_make.out 

Trả lời

1

CẬP NHẬT

Như đã nêu trong câu trả lời khác, các giải pháp dưới đây là 'quá mức cần thiết' vì nó loại bỏ MacPorts từ hệ thống của bạn, mà tôi nghĩ rằng tôi đã thực hiện trước đó. Tiến hành cẩn thận. Có thể có cách để sử dụng MacPorts để chỉ cập nhật cài đặt libxml2.


Tôi đã giải quyết được vấn đề này (trên máy của tôi ít nhất).

Một khi tôi nhận ra rằng không có gì trong dấu vết đó gợi ý thiếu libxml2, mà là một vấn đề với phiên bản đang được phát hiện, tôi nhìn xung quanh để xác nhận thực tế này. Chắc chắn đủ, nokogiri website (nơi nhiều báo cáo lỗi tương tự đã chỉ cho tôi) tuyên bố trong điều kiện không chắc chắn rằng Snow Leopard gửi kèm với phiên bản libxml2 hoạt động tốt.

Vì vậy, tôi đã lý luận rằng tôi phải cài đặt phiên bản của người khác có nghĩa là từ lâu. Tôi sẽ nhớ nếu tôi đã cài đặt bằng tay, do đó, thực sự chỉ có một tùy chọn còn lại, frickin 'macports.

$ libxml2-2.7.1 tfwright$ sudo find/-type d -name "libxml2" 
find: /dev/fd/3: Not a directory 
find: /dev/fd/4: Not a directory 
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/libxml2 
/Developer/SDKs/MacOSX10.5.sdk/usr/include/libxml2 
/Developer/SDKs/MacOSX10.6.sdk/usr/include/libxml2 
/opt/local/include/libxml2 
/opt/local/share/gtk-doc/html/libxml2 
/opt/local/var/macports/distfiles/libxml2 
/opt/local/var/macports/receipts/libxml2 
/opt/local/var/macports/software/libxml2 
/opt/local/var/macports/software/libxml2/2.6.30_0/opt/local/include/libxml2 
/opt/local/var/macports/software/libxml2/2.6.30_0/opt/local/share/gtk-doc/html/libxml2 
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libxml2 
/usr/include/libxml2 
/usr/share/gtk-doc/html/libxml2 

Con một ... chỉ cần thổi đi /opt/local/var/macports, mà tôi đã cố gắng đầu tiên của tất cả, không có vẻ để sửa chữa vấn đề, vì vậy tôi đã đi đến big guns.

sudo rm -rf \ 
/opt/local \ 
/Applications/DarwinPorts \ 
/Applications/MacPorts \ 
/Library/LaunchDaemons/org.macports.* \ 
/Library/Receipts/DarwinPorts*.pkg \ 
/Library/Receipts/MacPorts*.pkg \ 
/Library/StartupItems/DarwinPortsStartup \ 
/Library/Tcl/darwinports1.0 \ 
/Library/Tcl/macports1.0 \ 
~/.macports 

Sau đó, mọi thứ đều ổn. đúng rồi. Không bao giờ tin tưởng các khuyến nghị của thông báo lỗi! Ngoài việc cần phải cài đặt lại libxml2 với macports, tôi cần phải xóa sạch tất cả dấu vết của macports khỏi hệ thống của tôi, điều này đã ám ảnh tôi từ bên ngoài thùng rác.

+0

cảm ơn @floyd, nó cũng làm việc cho tôi –

0

Các đá quý bạn đang cố gắng để cài đặt đòi hỏi libxml2. Nếu bạn cảm thấy thoải mái khi cài đặt từ nguồn, hãy cài đặt libxml2.

Bạn có thể gặp sự cố phụ thuộc nơi libxml2 phụ thuộc vào một loạt các gói khác mà bạn sẽ cần phải xây dựng và cài đặt theo cách thủ công. Đó là một trong những lý do tại sao macports kết thúc là hữu ích.

+0

tôi đã nói ngoài ken của tôi bởi vì có doesn dường như không có bất kỳ hướng dẫn có thẩm quyền nào để cài đặt libxml2 từ nguồn. Và theo kinh nghiệm của tôi, có quá nhiều gotchas ẩn để mạo hiểm ở đó mà không có một số hướng dẫn. Các vấn đề phụ thuộc mà bạn đề cập là chính xác những gì tôi đang nói đến. Bạn đang nói có quá nhiều phụ thuộc trong trường hợp này, không hợp lý để tạo ra một công thức đơn giản, giống như những công thức tồn tại cho SQL, ruby, vv (các hướng dẫn hivelogic)? – tfwright

1

giải pháp của floyd là quá mức cần thiết - tôi đã gặp vấn đề tương tự và bắt đầu tải một số tệp/opt/local liên quan đến xml2, nhưng lệnh 'find' không tiết lộ các tệp libxml2 thực tế trong opt/local/lib. Nó có thể là bạn chỉ cần nuke những người.

Dưới đây là file nuked của tôi:

/opt/local/include/libxml2 
/opt/local/var/db/dports/distfiles/libxml2 
/opt/local/var/db/dports/receipts/libxml2 
/opt/local/var/db/dports/software/libxml2 
/opt/local/var/db/dports/rsync.rsync.darwinports.org_dpupdate_dports/textproc/libxml2 
/opt/local/share/gtk-doc/html/libxml2 
/opt/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/textproc/libxml2 

NHƯNG trước khi bạn cố gắng đó - chỉ nuke các file lib sudo rm /opt/local/lib/libxml2.*

Khi tôi cố gắng cài đặt sau đó nó đã vào biên soạn tất cả nhưng sau đó barfed với một vấn đề với libz ...

Vì vậy nuke rằng trong/opt/local/lib sudo rm -rf /opt/local/lib/libz.*

Và nó biên dịch tốt!

Vì vậy, cố gắng nuking thư mục/opt/local/lib libxml2. * Và libz. * Files, xem nếu nó biên dịch và nếu không, nuke thư mục/opt/local/bao gồm

Các vấn đề liên quan