2014-12-16 24 views
12

Tôi đang làm việc trên ứng dụng đường ray cho phép đính kèm hình ảnh vào từng tài khoản sử dụng. Tôi đang sử dụng kẹp giấy và web amazon dịch vụ:Không cài đặt đá quý Nokogiri

gem 'paperclip' 
gem 'aws-sdk' 

Khi tôi chạy bó cài đặt, tôi nhận được tin nhắn này:

extconf thất bại, mã exit 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 
An error occurred while installing nokogiri (1.6.5), and Bundler cannot continue. 
Make sure that `gem install nokogiri -v '1.6.5'` succeeds before bundling. 

Khi tôi cố gắng chạy ' gem install nokogiri ', tôi nhận được thông báo này:

extconf không thành công, mã thoát 1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 

Hệ điều hành của tôi là Mac OS X 10.9.4 Mavericks. Điều gì đang xảy ra ở đây? Làm thế nào tôi có thể nhận được nokogiri để cài đặt và hoạt động đúng cách?

Full stack trace:

Building native extensions with: '--use-system-libraries' 
This could take a while... 
ERROR: Error installing nokogiri: 
    ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb --use-system-libraries 
checking if the C compiler accepts ... yes 
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... yes 
Building nokogiri using system libraries. 
libxml2 version 2.6.21 or later is required! 
*** 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/rvm/rubies/ruby-2.1.2/bin/ruby 
    --help 
    --clean 
    --use-system-libraries 
    --with-zlib-dir 
    --without-zlib-dir 
    --with-zlib-include 
    --without-zlib-include=${zlib-dir}/include 
    --with-zlib-lib 
    --without-zlib-lib=${zlib-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-libxml-2.0-config 
    --without-libxml-2.0-config 
    --with-pkg-config 
    --without-pkg-config 
    --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-libxslt-config 
    --without-libxslt-config 
    --with-exslt-dir 
    --without-exslt-dir 
    --with-exslt-include 
    --without-exslt-include=${exslt-dir}/include 
    --with-exslt-lib 
    --without-exslt-lib=${exslt-dir}/lib 
    --with-libexslt-config 
    --without-libexslt-config 

extconf failed, exit code 1 

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out 

Trả lời

28

Điều này hoạt động như một sự quyến rũ!

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 

https://stackoverflow.com/a/24511149

+0

@CarySwoveland Hey Cary! Tôi xin lỗi, tôi đã xóa câu hỏi vì câu hỏi đã được đánh dấu là đã đóng.Câu trả lời của bạn là đẹp! Nó hoạt động như một say mê! Cảm ơn bạn sooooooooooooo nhiều! :) –

+0

Vui vì nó đã giúp, Katie. (Tôi cũng sẽ xóa bình luận này.) –

+0

Đáng yêu !! Làm việc như quyến rũ – KrishCdbry

7

Các bạn đã thử gem install nokogiri -v 1.6.5 -- --use-system-libraries Hầu hết các lỗi nokogiri là để làm với libxml2, libxslt hoặc libiconv cấu hình?.

Nokogiri docs sẽ cung cấp cho bạn thêm hướng dẫn. Nếu giải pháp không hoạt động, bạn có thể muốn đăng toàn bộ dấu vết để người khác có thể trợ giúp thêm.

+1

đúng, bạn cần phải cài đặt libxml2 :) , chạy 'brew install libxml2' trước rồi thử lại. Nếu bạn gặp lỗi với libxslt và libiconv thì hãy làm như vậy – kasperite

+0

Cảm ơn, tôi đã thử điều này, nhưng không làm việc, nó vẫn nói với tôi rằng libxml2 đã được cài đặt, hãy xem câu trả lời của tôi –

+0

Tôi thực sự đánh giá cao việc bạn xem xét điều này !! :)) –

1

Kể từ khi OP đã được tham khảo bundle install mà tôi đã xảy ra để sử dụng như tôi cũng nghĩ rằng đó là giá trị chỉ ra các Installing Nokogiri trang mà cuối cùng đã tiết lộ các giải pháp thanh lịch nhất (mà làm việc cho tôi cũng trên Mac OS X 10.8.5):

bundle config build.nokogiri --use-system-libraries 
bundle install 

này chỉ bundler để cài đặt nokogiri như trong các câu trả lời của @kasperite

1

Theo cài đặt hướng dẫn cài đặt nokogiri,

sudo apt-get install zlib1g-dev

giải quyết vấn đề này đối với tôi.

+0

'zlib1g-dev đã là phiên bản mới nhất. 0 được nâng cấp, 0 mới được cài đặt, 0 để xóa và 8 chưa được nâng cấp.' – nelsonic

+0

Làm việc cho tôi cũng trên Ubuntu 16.04. –

1

trọn gói mà đã làm nó:

apt-get install libghc-zlib-dev 

ứng cử viên có thể khác:

zlib1g-dev trên 12.04

tìm thấy nó here

3

sau khi nâng cấp lên Rails 4.2.4 (mà inculdes Nokogiri 1.6.6.2) trên Ubuntu 14.04 (Tôi đang sử dụng RVM) tôi cần phải làm điều này:

sudo apt-get install libgmp-dev 

hoặc

sudo apt-get install libgmp3-dev 
+0

Tôi đã cố gắng rất nhiều và cài đặt hầu như tất cả các thư viện 10 lần. Cuối cùng "libgmp3-dev" làm việc cho tôi. Cảm ơn. – Anuja

0

tôi đã không nhận được thông báo lỗi tương tự như bạn, nhưng tôi muốn lưu ý những gì tôi cuối cùng đã tìm thấy như giải pháp đột đơn giản để cài đặt nokogiri trên Ubuntu:

Hóa ra nokogiri quá trình xây dựng phụ thuộc vào patch.

Run: sudo apt-get install patch

Tôi đã làm việc trên một máy ảo (một hộp lang thang, trên thực tế), đó là lý do tôi không đã có patch cài đặt.

Các lỗi tôi (sau khi rất nhiều thứ khác có vẻ là lỗi nhưng thực sự chỉ là một cảnh báo) là:

Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2... OK 
Running patch with /var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch... 
Running 'patch' for libxml2 2.9.2... ERROR, review '/var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2/patch.log' to see what happened. 

Tôi đã xóa các bản ghi bởi bây giờ (ở trên là trong tôi phiên đầu cuối), nhưng tệp patch.log được tham chiếu ở trên là vô lý đơn giản; nó chỉ nói một cái gì đó như patch not found.

Cậu bé tôi cảm thấy ngớ ngẩn vì tất cả việc đào bới xung quanh tôi đã cài đặt các thư viện cố sửa lỗi! :)

0

cài đặt gcc đầu tiên

trong * buntu: apt-get install gcc

sau đó U có thể requer nhất libs dev, chẳng hạn như libxml2/zlib/vv thấy xây dựng log (đường dẫn trong trường hợp của tôi): /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.6.8.1/mkmf.log cho chuỗi như - lỗi nghiêm trọng: zlib.h: Không tập tin hoặc thư mục đó

2

Tôi đã giải quyết vấn đề này bằng cách cài đặt các phụ thuộc xcode mà Nokogiri cần phải được cài đặt:

xcode-select --install 

Sau khi chạy lại cài đặt gói và nó sẽ hoạt động.

2

Trên Ubuntu, hãy thử cài đặt phụ thuộc sau:

sudo apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev 
0

Chịu từ dylanjhunt's awesome answer on Github, chỉ trong trường hợp ai đã không thử nó,

Just to add to this, I was having a very similar issue that was resolved by updating dev tools.

xcode-select --install

Hoping someone sees this that had not tried doing this yet and it helps.

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