Để chẩn đoán và giải quyết, đây là những gì phù hợp với tôi.
Để tìm hiểu điều gì không thành công, hãy truy cập thư mục đá quý ruby của bạn.
Ví dụ:
$ cd <MY RUBY DIRECTORY>/lib/ruby/gems/2.0.0/gems
Nếu bạn không biết thư mục đá quý của mình, hãy thử cách này:
$ echo $GEM_HOME
/opt/gems/2.0.0
$ cd /opt/gems/2.0.0/gems
Tôi đang cài đặt phiên bản nokogiri nào?
$ ls -ladg nokogiri-*
nokogiri-1.5.5
Đi tới thư mục trình cài đặt:
$ cd nokogiri-1.5.5/ext/nokogiri
Thử cài đặt theo cách thủ công:
$ ruby extconf.rb
Kết quả:
checking for libxml/parser.h... *** extconf.rb failed ***
...
Tôi đang sử dụng Ubuntu nên tôi tìm kiếm bất kỳ gói nào tương tự:
$ aptitude search libxml
Các kết quả:
p libxml2 - GNOME XML library
p libxml2-dev - Development files for the GNOME XML library
...
Tôi tin rằng libxml2 sẽ hoạt động tốt.
$ apt-get install libxml2
Ruby native gems thường cần các gói * -dev cho tiêu đề, vì vậy hãy cài đặt chúng:
$ apt-get install libxml2-dev
Bây giờ tôi có tệp phân tích cú pháp?
$ find / | grep libxml/parser.h
Có, kết quả hiển thị trình phân tích cú pháp:
/usr/include/libxml2/libxml/parser.h
Bây giờ hãy thử cài đặt lại, lần này cung cấp đường dẫn libxml2:
$ gem install nokogiri -- --with-xml2-dir=/usr/include/libxml2
Nó vẫn không thành công, vì vậy hãy đọc nhật ký lỗi mkmf:
$ more mkmf.log
Nhật ký lỗi hiển thị những gì không thành công và có những dòng này trông có vẻ hứa hẹn:
package configuration for libxslt is not found
Có một gói cho nó?
$ aptitude search libxslt
Các kết quả:
v libxslt-dev
i libxslt-ruby
...
Cài đặt gói dev:
$ apt-get install libxslt-dev
Bây giờ hãy thử cài đặt lại và cũng đặt xslt vào đường dẫn:
$ gem install nokogiri -- \
--with-xml2-dir=/usr/include/libxml2 \
--with-xslt-dir=/usr/include/libxslt
Sự thành công!