Lỗi khi cài đặt Nokogiri trên OSX 10.9 Maverick?


109

Tôi đã nâng cấp OSX (Lion) của mình lên Mavericks và tôi không thể cài đặt Nokogiri cho các dự án của mình.

Tôi đã cài đặt XCode 5.0.1, Công cụ dòng lệnh (đang sử dụng xcode-select --install) và đã cài đặt libxml2 từ Homebrew và tôi vẫn gặp sự cố.

Lỗi là:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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
    --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=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --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-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-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

Tôi đã cài đặt libxml2, libxslt và libiconv từ Homebrew và thiết lập các thông số để cài đặt Nokogiri, nhưng cũng không hoạt động.

Tôi không thể tìm thấy điều gì sai trong môi trường của tôi, bạn có thể giúp tôi?



2
Thử mở xcode và chấp nhận EULA / giấy phép.
moander

Câu trả lời:


245

Bạn cũng có thể cài đặt Nokogiri trên Mac OS X 10.9 Mavericks với Cài đặt XCode đầy đủ bằng cách sử dụng:

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

Cập nhật

Đối với những người sử dụng Yosemite , lệnh sau sẽ hoạt động:

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

hoặc, nó thực sự có thể nằm trong MacOSX10.11.sdkthư mục của bạn (của tôi là 18-9-2015), vì vậy ngay cả khi bạn chưa hoàn toàn cập nhật El Capitan, tôi đã cập nhật XCode gần đây và bạn có thể cần sử dụng El Capitan SDK đường dẫn tiếp theo sau:

Cập nhật

Đối với những người sử dụng El Capitan , lệnh sau sẽ hoạt động:

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

Cập nhật

Đối với những người sử dụng Sierra , lệnh sau sẽ hoạt động:

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

4
Không dành cho tôi: "thiếu libxml2. Vui lòng truy cập nokogiri.org/tutorials/installing_nokogiri.html để được trợ giúp cài đặt các phụ thuộc." Vẫn gặp lỗi tương tự.
Pop-A-Stash

1
Phải thêm --use-system-library. Hơn nó hoạt động trên một cài đặt mavericks hoàn toàn mới với Xcode 5.1.1 và pha.
jmg

11
Phải thêm vào --use-system-librariesđể làm cho điều này hoạt động:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
Maverick

1
Đây là cái duy nhất phù hợp với tôi, trên 10.10.3: sudo gem install nokogiri - --with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include - with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-Library
Erik Villegas

10
Bạn có thể muốn cập nhật câu trả lời của mình bằng lệnh chung chung hơn sẽ hoạt động trên tất cả các phiên bản OS X và đường dẫn cài đặt Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp

30

Sau khi điều hướng các GIF động ở đây , tất cả những gì tôi phải làm là đơn giản xcode-select --installgem install nokogirihoạt động tốt.


Cảm ơn bạn, làm việc cho tôi! Tái bút
Tizón

Doh, vâng, tôi đã sơ ý cài đặt các công cụ dòng lệnh XCode trên bản cài đặt Mavericks sạch của mình.
siêu thường

20

Tôi đã tìm thấy nhật ký này và không tìm thấy gcc-4.2:

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

Để giải quyết vấn đề này, tôi đã sử dụng apple-gcc42 bằng homebrew brew install apple-gcc42và tạo một liên kết tượng trưng cho / usr / bin của tôi:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


điều này không giải quyết được vấn đề cho tôi, tôi vẫn gặp thông báo lỗi tương tự :(
David Portabella

1
Tôi đã gỡ cài đặt hoàn toàn rvm và ruby ​​(khỏi brew), cài đặt lại và nó hoạt động.
David Portabella

3
Vì vậy, tôi chỉ chạy brew install apple-gcc42.. và chỉ làm việc. Lệnh đó không hiệu quả với bạn?
squiter

4
Tôi đã chạy xcode-select --installtrước khi cài đặt bia và tất cả hoạt động ngay bây giờ.
Quickredfox

1
@LucyBain Tôi thực sự không nhớ .... nhưng tôi nghĩ rằng log file là trong cùng một thư mục như gem_meake.out ...
squiter

15

Nếu bạn đang chạy Xcode 5.1, các công cụ dòng lệnh không hoạt động cho nokogiri 1.6.1. Bạn sẽ cần tải xuống các công cụ vào cuối tháng 10 năm 2013 từ Apple . Một khi bạn làm điều đó chạy

sudo xcode-select -s /Library/Developer/CommandLineTools/

để thiết lập máy của bạn sử dụng công cụ dòng lệnh Xcode 5.0.X, sau đó chạy

gem install nokogiri

Nếu bạn muốn đặt lại các công cụ dòng lệnh của mình về phiên bản Xcode.app sau khi chạy

sudo xcode-select -r

Hoặc, một điều khác bạn có thể làm là thêm cờ để bỏ qua các đối số dòng lệnh không xác định. Sau đó, cài đặt trông giống như sau:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri

12

Đây là những gì đã làm việc cho tôi trên OSX Mavericks:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc

Thật tuyệt vời, đây là điều duy nhất trong toàn bộ hành trình này cũng giúp tôi. cảm ơn!
KonstantinK

Vấn đề với điều này là, sử dụng sudovới RVM hoặc rbenv sẽ gây ra vấn đề vì root không biết nơi sống của những viên ruby ​​hộp cát. Điều này được đề cập trong trang cài đặt RVM . OP đang sử dụng RVM và việc sử dụng sudosẽ khiến Nokogiri cài đặt vào Ruby của Apple chứ không phải của người dùng. Vì vậy, đừng làm điều này trừ khi bạn CHẮC CHẮN muốn cài đặt vào Ruby của Apple nếu bạn đang sử dụng Mac OS hoặc vào hệ thống Ruby nếu bạn đang sử dụng * nix khác.
Tin Man

10

Tôi đang sử dụng OSX Mavericks và sự cố của tôi hóa ra là do cài đặt Ruby không tốt.

Vì vậy, tôi đã cài đặt lại ruby ​​với rvm:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

Sau đó tôi đã có thể

gem install nokogiri --no-ri --no-rdoc

Vấn đề đã được giải quyết.


Mát mẻ. Bây giờ bạn đang sử dụng rvm trên mavericks, hãy thử mở vim. SEGV lỗi? Đáng yêu.
Tim

Tôi không thể xóa gemset vì các thư mục không trống, nhưng cài đặt lại gemset (mặc dù có lỗi) đã làm được! Đây là điều duy nhất làm việc cho tôi!
Onikoroshi

9

Tôi thường gắn bó với những thứ do hệ thống cung cấp. Điều này đã làm việc cho tôi:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/

sau khi truy cập nó hàng giờ, đó là giải pháp duy nhất phù hợp với tôi, cảm ơn! : D
Rogerio Chaves

5

Tôi gặp phải sự cố này ngay lập tức sau khi cài đặt bản cập nhật Mavericks 10.9.5 và bản cập nhật Công cụ dành cho nhà phát triển 10.9 từ Apple. Tôi đã chạy xcode-select --install, nhưng điều đó không khắc phục được sự cố. Sau đó, tôi mở XCode, chấp nhận eula và thoát khỏi XCode. Điều đó đã khắc phục sự cố.


3

Tôi đã gặp vấn đề này hôm nay, trên Maverick, đây là cách tôi đã giải quyết vấn đề:

brew update
brew install libiconv
brew link libiconv

Đảm bảo rằng bạn biết phiên bản libiconv trong mỏ Cellar bên dưới là 1.14, sau đó cài đặt như sau:

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Nếu bạn yêu cầu một phiên bản cụ thể của nokogiri, ví dụ -v '1.6.2.1' thì hãy cài đặt như sau:

gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Nokogiri đã được cài đặt thành công!


Cũng làm việc cho tôi trên Yosemite. Không có câu trả lời nào ở trên làm được.
MattL

3

Điều này giống với bài đăng của @ thomas_witt nhưng hoạt động trên Mac OS X Sierra:

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

2

Để cài đặt hoạt động, tôi phải sửa đổi các đường dẫn tệp trong gem installlệnh để khớp với các đường dẫn trên hệ thống của mình. Tôi có các phiên bản khác nhau của libxml2 và libiconv và cấu trúc tệp hơi khác. Lệnh, với các sửa đổi của tôi, là:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 
                        --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib 
                        --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 
                        --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

Tôi đã phải rất tỉ mỉ với các đường dẫn tệp. Tôi đã mất nhiều lần thử để tạo chính xác các lệnh.
darkmoves

Đây là một liên kết đến một giải pháp khác cho vấn đề phiên bản libxml không chính xác.
darkmoves

2

Đối với những người sử dụng MacPorts , hãy đảm bảo rằng bạn đã cài đặt libxml2qua MacPorts. Sau đó gõ:

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

Điều này sẽ thực hiện thủ thuật, hiệu quả với tôi mà không cần sử dụng đường dẫn đầy đủ.


2

Sử dụng brew install libxml2 libxsltnếu bạn sử dụng Homebrew.


2

Đây là một tài liệu tham khảo khác:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

Tôi gặp lỗi khi cài đặt nokogiri

lỗi như thế này:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

Bạn phải cài đặt các công cụ phát triển trước.

thì có lẽ cần:

$ xcode-select --install

hoặc nếu bạn gặp lỗi như

checking for libxml/parser.h... no

Tôi chỉ sửa đường dẫn lib bằng cách:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

cho gói cần một cái gì đó như:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install

2

Điều này phù hợp với tôi

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

Chỉ cần chạy dưới hai lệnh

$ xcode-select --install

Nó sẽ yêu cầu bạn tải xuống nói "yes", sau đó nó sẽ yêu cầu cài đặt thành phần xcode nhấp vào cài đặt.

Bây giờ hãy thử cài đặt gem bằng lệnh dưới đây

gem install nokogiri --no-ri --no-rdoc

Điều này làm việc cho tôi với môi trường trên.


1

Tôi gặp phải vấn đề tương tự cho Mavrick và giải pháp là:

xcode-select --install

Tuy nhiên, điều đó không hoạt động vì trang tải xuống Command-line-tool của Apple không có sẵn trình cài đặt công khai.

Vì vậy, nếu bạn muốn có các công cụ dòng lệnh cho Mavricks, bạn cần phải có một tài khoản trả phí . Sau đó, chỉ bạn mới có thể cài đặt nó. Sau khi cài đặt nó, bạn sẽ không gặp phải vấn đề này với Nokogiri.


Tôi không có tài khoản trả phí và tôi đã được cài đặt các công cụ dòng lệnh. Tôi đã cài đặt bằng thiết bị đầu cuối, nhưng một người bạn của tôi đã cài đặt bằng trang tải xuống đó và anh ấy cũng không có tài khoản trả phí.
squiter

Tôi đồng ý với bạn. Điều tương tự đã xảy ra với tôi cho đến ngày 24 tháng 11 năm 2013. Tuy nhiên nếu bạn truy cập trang đó ngay bây giờ và cố gắng truy cập nó, nó sẽ cho bạn lỗi này. Điều kỳ lạ là bạn đăng nhập bằng thông tin đăng nhập của mình nhưng nó sẽ giúp bạn đăng nhập với tư cách khách. Đây là thông báo tôi nhận được trên trang bằng tài khoản của mình: Cảnh báo lớn về Chương trình Nhà phát triển Apple Chúng tôi không thể xử lý yêu cầu của bạn. Vui lòng quay lại trang trước hoặc thoát khỏi trình duyệt và thử lại yêu cầu của bạn. Nếu bạn cần hỗ trợ, vui lòng liên hệ với Bộ phận hỗ trợ nhà phát triển của Apple.
shineecret

1

Tôi đã gặp lỗi này tương tự khi cài đặt Mavericks mới. Sau khi phán đoán mất hiệu lực, tôi đã đổi tên gói ứng dụng Xcode của mình thành Xcode 5.0.1.app.

Rõ ràng tập lệnh cài đặt Nokogiri không trích dẫn đường dẫn của nó và do đó, khoảng trống trong tên tệp đã gây ra tất cả các loại hoặc rắc rối. Cho đến khi tôi thử brew install libxml2thì lỗi mới trở nên rõ ràng.

Bài học kinh nghiệm: khoảng trắng trong tên tệp là không chính xác.


1

Trong trường hợp của tôi, tôi thực sự phải chạy /usr/bin/gcc-4.2 sau khi mã hóa nó. Bạn phải chấp nhận thỏa thuận cấp phép, nếu không nó sẽ bị treo.


1

Thông báo lỗi đưa ra manh mối ở đây: The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required  
brew install apple-gcc42  
gem install nokogiri  

Bạn cũng có thể cần thực hiện cài đặt và liên kết sau:

libxml2 libxslt

1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*

1

Đối với tôi, lỗi là gcc (4.2.1, được cài đặt từ Homebrew) đã phàn nàn rằng:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

Tôi đã giải quyết vấn đề bằng cách chỉ buộc x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

Sau khi nâng cấp lên Maverick, tôi đã gặp sự cố tương tự. Tôi sử dụng RVM với Ruby 1.9.2-p320 và tôi đã thử một số giải pháp được đưa ra ở đây, nhưng không giải quyết được vấn đề gì.

Sau đó, tôi đổi sang Ruby 2.1.2 và bundle installcài đặt Nokogiri ngay lập tức.


1

Nếu bất kỳ ai gặp sự cố này trên el capitan, trong khi sử dụng Bundler.

Đảm bảo rằng các công cụ dòng lệnh xcode đã được cài đặt và chạy điều này:

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

1

Tôi đã gặp phải vấn đề tương tự từ hai tuần trước khi cố gắng chạy ứng dụng phiên bản rails 3.

Vấn đề là rvm / rbenv của bạn không sử dụng trình biên dịch C.

Sử dụng lệnh này cho rvm để sử dụng trình biên dịch C tương thích

CC=gcc rvm install-version

Vì vậy, nếu bạn đang sử dụng Ruby 1.9.3, hãy sử dụng nó theo cách này

CC=gcc rvm install-1.9.3

Sử dụng lệnh này mỗi khi bạn không thể gói cài đặt hoặc bất cứ thứ gì. Điều này đang hoạt động trên El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Hy vọng rằng nó sẽ giải quyết được sự cố.

Tôi đã gặp phải vấn đề tương tự từ hai tuần trước khi cố gắng chạy ứng dụng phiên bản rails 3.

Vấn đề là rvm / rbenv của bạn không sử dụng trình biên dịch C.

Sử dụng lệnh này cho rvm để sử dụng trình biên dịch C tương thích

CC=gcc rvm install-version

Vì vậy, nếu bạn đang sử dụng Ruby 1.9.3, hãy sử dụng nó theo cách này

CC=gcc rvm install-1.9.3

Sử dụng lệnh này mỗi khi bạn không thể gói cài đặt hoặc bất cứ thứ gì.

Điều này đang hoạt động trên El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Hy vọng rằng nó sẽ giải quyết được sự cố. Và cũng nếu bạn đã có Xcode và sau đó bạn cũng không gặp lỗi tương tự khi cài đặt bất kỳ viên ngọc nào, hãy thử giải pháp này.


1

Tôi đã thêm phát hiện của mình tại đây sau khi tôi gặp vấn đề tương tự này ngay sau khi Nâng cấp: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

Cách khắc phục đơn giản là 2 lệnh sau:

xcode-select --install
gem install nokogiri

Hy vọng nó giúp.


5
Xin vui lòng gửi những thứ ở đây - liên kết phải chịu trách nhiệm để bị phá vỡ (xem hướng dẫn)
Justin

Nó đã giúp tôi, mặc dù tôi echo tình cảm của đăng câu trả lời ở đây, chứ không phải là trong một liên kết :)
Richard

Đây là những gì được coi là câu trả lời Chỉ liên kết không được khuyến khích trên Stack Overflow. Thay vì chỉ đăng một liên kết đến trang web của riêng bạn, hãy tóm tắt thông tin quan trọng trong câu trả lời của bạn. Bằng cách đó, nếu liên kết bị thối rữa, giống như họ có xu hướng làm, câu trả lời sẽ tiếp tục cung cấp một số giá trị.
the Tin Man

0

Tôi cũng có vấn đề này. Đang chạy brew doctorcho thấy rằng tôi có một phiên bản không mong muốn của libiconv trong / user / local / lib.

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

Vì vậy, tôi đã xóa chúng và khởi động lại libxml:

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

Cuối cùng, tôi đã cài đặt nokogiri:

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed

tôi đã gặp sự cố tương tự (một libiconv không được liên kết). Tôi đã hủy liên kết libiconv và cài đặt lại. brew install libiconv, sau đó gem cài đặt nokogirl.
Ben

0

Không có câu trả lời nào trong số những câu trả lời này phù hợp với trường hợp cụ thể của tôi, và vì tôi là người mới nên tôi đã nghĩ rằng giải pháp của mình có thể giúp được người khác.

Tôi đang sử dụng Yosemite và đang sử dụng Ruby 1.9.3p547. Đã xảy ra lỗi bảo mật cho p547 nên tôi đang cố cập nhật lên Ruby 1.9.3p550 hoặc cao hơn. Tôi đã sử dụng RVM, sau đó cố gắng di chuyển các viên ngọc của mình và nhiều viên trong số chúng không hoạt động. Sau đó, tôi đã cố gắng gói cài đặt nhưng không thành công và tôi nghĩ có thể đó là xung đột giữa các đường dẫn và phụ thuộc khác nhau nên tôi đã xóa phiên bản cũ hơn của Ruby. Điều này đã phá vỡ mọi thứ.

Tôi tiếp tục nhận được thông báo rằng trình biên dịch C bị thiếu, mặc dù tôi đã tải xuống XCode và gần đây đã cập nhật các công cụ CLI. Tôi tìm thấy một trang web khác yêu cầu tôi tải xuống GCC của bên thứ ba, tôi đã làm như vậy. khiến mọi thứ trở nên tồi tệ hơn.

Bây giờ tôi nhận được một thông báo cho biết tôi cần sửa hồ sơ và PATH của mình hoặc cài lại OSX có thể dễ dàng hơn. Tôi cũng vậy.

Dù sao, câu chuyện dài hơn chỉ đơn thuần là dài: giải pháp cuối cùng phù hợp với tôi là loại bỏ RVM và chỉ sử dụng brew để tải xuống phiên bản Ruby mà tôi muốn trước khi chạy bundle install. Cài đặt đúng phiên bản Nokogiri FIRST.

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install

Việc sử dụng sudosẽ khiến Nokogiri được cài đặt trong Ruby duy nhất được biết đến bởi root, có khả năng cao là Ruby đã được cài đặt của Apple trừ khi sử dụng Homebrew. Bởi vì OP đang sử dụng RVM, điều đó có nghĩa là Nokogiri sẽ không bị Ruby quản lý RVM nhìn thấy và sẽ chỉ làm phức tạp thêm vấn đề. Việc sử dụng sudocó thể có hiệu quả trong trường hợp này, nhưng không nên thử với Ruby được quản lý bằng RVM hoặc rbenv. RVM đặc biệt nói rằng không làm điều đó trong tài liệu cài đặt .
the Tin Man

0

đối với windows, bạn cũng có thể thử cài đặt cục bộ:

  1. tải xuống đá quý thích hợp dựa trên môi trường của bạn.

  2. chuyển đến thư mục mà bạn đã lưu tệp gem.

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

nếu không hoạt động, bạn có thể kiểm tra xem bạn đã cài đặt trình biên dịch zlib và mingw hoặc c thích hợp chưa.


0

Mọi thứ ngớ ngẩn ở đây không làm được điều đó đối với tôi (tôi đã không tham gia vào cài đặt lại bia, oy), nhưng điều này cuối cùng đã thành công (được tìm thấy thông qua báo cáo lỗi về một số dự án không liên quan):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

Chúc may mắn. Yay cho #yakshaving!


-3

Kiểm tra phiên bản công cụ Dòng lệnh của bạn. Thiết lập máy của bạn để sử dụng các công cụ dòng lệnh Xcode 5.0.X, sau đó chạy:

gem install nokogiri

bạn nên sử dụng lệnh này. mở thiết bị đầu cuối. và Viết lệnh này. export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.