เกิดข้อผิดพลาดในการติดตั้ง Nokogiri บน OSX 10.9 Maverick?


109

ฉันอัปเกรด OSX (Lion) เป็น Mavericks และไม่สามารถติดตั้ง Nokogiri สำหรับโปรเจ็กต์ของฉันได้

ฉันติดตั้ง XCode 5.0.1, Command Line Tools (โดยใช้xcode-select --install) และติดตั้ง libxml2 จาก Homebrew แล้วและฉันยังคงมีปัญหา

ข้อผิดพลาดคือ:

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.

ฉันติดตั้ง libxml2, libxslt และ libiconv จาก Homebrew และตั้งค่า params เพื่อติดตั้ง Nokogiri แต่ก็ไม่ได้ผลเช่นกัน

ฉันไม่พบสิ่งผิดปกติในสภาพแวดล้อมของฉันคุณช่วยฉันได้ไหม



2
ลองเปิด xcode และยอมรับ EULA / license
เร่ร่อน

คำตอบ:


245

คุณยังสามารถติดตั้ง Nokogiri บน MacOS X 10.9 Mavericksด้วยการติดตั้ง XCode แบบเต็มโดยใช้:

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

อัปเดต

สำหรับผู้ที่ใช้Yosemiteคำสั่งต่อไปนี้จะใช้ได้:

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

หรือจริงๆแล้วอาจอยู่ในMacOSX10.11.sdkโฟลเดอร์ของคุณ(ของฉันเป็นวันที่ 18 ก.ย. 2558) อย่างไรก็ตามแม้ว่าคุณจะยังไม่ถึง El Capitan อย่างเต็มที่ แต่ฉันเพิ่งอัปเดต XCode เมื่อเร็ว ๆ นี้และคุณอาจต้องใช้ El Capitan SDK เส้นทางต่อไปนี้:

อัปเดต

สำหรับผู้ที่ใช้El Capitanคำสั่งต่อไปนี้จะใช้ได้:

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

อัปเดต

สำหรับผู้ที่ใช้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

4
ไม่ใช่สำหรับฉัน: "libxml2 หายไปโปรดไปที่nokogiri.org/tutorials/installing_nokogiri.htmlเพื่อขอความช่วยเหลือในการติดตั้งการอ้างอิง" ยังคงได้รับข้อผิดพลาดเดิม
Pop-A-Stash

1
ต้องเพิ่ม - ใช้ระบบไลบรารี กว่าจะทำงานกับการติดตั้ง Mavericks ใหม่เอี่ยมด้วย Xcode 5.1.1 และการชง
jmg

11
ต้องเพิ่ม--use-system-librariesเพื่อให้สิ่งนี้ใช้งานได้: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
นี่เป็นสิ่งเดียวที่ใช้ได้สำหรับฉันใน 10.10.3: sudo gem install nokogiri - - พร้อม-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-libraries
Erik Villegas

10
คุณอาจต้องการอัปเดตคำตอบของคุณด้วยคำสั่งทั่วไปที่ควรใช้ใน OS X ทุกเวอร์ชันและเส้นทางการติดตั้ง Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp

30

หลังจากสำรวจ GIF แบบเคลื่อนไหวที่นี่สิ่งที่ฉันต้องทำก็เพียงแค่xcode-select --installใช้gem install nokogiriงานได้ดี


ขอบคุณทำงานให้ฉัน! PS: ดีมากjasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks
Tizón

ใช่ฉันละเลยที่จะติดตั้งเครื่องมือบรรทัดคำสั่ง XCode บนการติดตั้ง Mavericks ที่สะอาดของฉัน
superluminary

20

ฉันพบบันทึกนี้และไม่พบ 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 */

ในการแก้ปัญหานี้ฉันได้ติดตั้ง apple-gcc42 โดยใช้ homebrew brew install apple-gcc42และสร้าง symlink ไปยัง / usr / bin ของฉัน:

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


สิ่งนี้ไม่สามารถแก้ปัญหาให้ฉันได้ฉันยังคงมีข้อความแสดงข้อผิดพลาดเดียวกัน :(
David Portabella

1
ฉันถอนการติดตั้ง rvm และทับทิมโดยสมบูรณ์ (จากการชง) ติดตั้งอีกครั้งและใช้งานได้
David Portabella

3
ฉันแค่วิ่งbrew install apple-gcc42.. และทำงาน คำสั่งนั้นไม่ได้ผลสำหรับคุณ?
squiter

4
ฉันวิ่งไปxcode-select --installก่อนที่จะติดตั้งเครื่องชงและตอนนี้ใช้งานได้ทั้งหมด
Quickredfox

1
@LucyBain ฉันจำไม่ได้จริงๆ .... แต่ฉันคิดว่าล็อกไฟล์อยู่ในไดเรกทอรีเดียวกับ gem_meake.out ...
squiter

15

หากคุณใช้ Xcode 5.1 เครื่องมือบรรทัดคำสั่งจะไม่ทำงานกับ nokogiri 1.6.1 คุณจะต้องดาวน์โหลดเครื่องมือปลายเดือนตุลาคม 2013 จากแอปเปิ้ล เมื่อคุณทำการรัน

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

เพื่อตั้งค่าเครื่องของคุณให้ใช้เครื่องมือบรรทัดคำสั่ง Xcode 5.0.X จากนั้นเรียกใช้

gem install nokogiri

หากคุณต้องการรีเซ็ตเครื่องมือบรรทัดคำสั่งของคุณเป็นเวอร์ชัน Xcode.app หลังจากนั้นให้รัน

sudo xcode-select -r

หรืออีกอย่างที่คุณทำได้คือเพิ่มแฟล็กเพื่อละเว้นอาร์กิวเมนต์บรรทัดคำสั่งที่ไม่รู้จัก จากนั้นการติดตั้งจะมีลักษณะดังนี้:

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

12

นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันใน 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

น่าประหลาดใจนี่เป็นเพียงสิ่งเดียวในดอกยางทั้งหมดที่ช่วยฉันด้วย ขอบคุณ!
KonstantinK

ปัญหานี้คือการใช้sudoกับ RVM หรือ rbenv จะทำให้เกิดปัญหาเนื่องจากรูทไม่รู้ว่ารูบี้ในแซนด์บ็อกซ์อยู่ที่ไหน นี้จะครอบคลุมในการติดตั้งหน้า RVM OP ใช้ RVM และการใช้sudoจะทำให้ Nokogiri ติดตั้งลงใน Ruby ของ Apple ไม่ใช่ของผู้ใช้ ดังนั้นอย่าทำเช่นนี้จนกว่าคุณจะแน่ใจว่าคุณต้องการติดตั้งลงใน Ruby ของ Apple หากคุณใช้ Mac OS หรือในระบบ Ruby หากคุณอยู่ใน * nix อื่น
คนดีบุก

10

ฉันใช้ OSX Mavericks และปัญหาของฉันกลายเป็นการติดตั้ง Ruby ที่ไม่ดี

ดังนั้นฉันจึงติดตั้งทับทิมใหม่ด้วย rvm:

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

ตอนนั้นฉันสามารถ

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

แก้ไขปัญหา.


เย็น. ตอนนี้คุณใช้ rvm กับ mavericks แล้วให้ลองเปิด vim ข้อผิดพลาด SEGV? น่ารัก.
ทิม

ฉันไม่สามารถลบ gemset ได้เพราะโฟลเดอร์ไม่ว่างเปล่า แต่ติดตั้ง gemset ใหม่ (แม้ว่าจะมีข้อผิดพลาด)! นี่เป็นสิ่งเดียวที่เหมาะกับฉัน!
Onikoroshi

9

ฉันชอบที่จะยึดติดกับสิ่งที่ระบบให้มาโดยทั่วไป สิ่งนี้ใช้ได้ผลสำหรับฉัน:

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/

หลังจาก googling หลายชั่วโมงนั่นเป็นทางออกเดียวที่ใช้ได้ผลสำหรับฉันขอบคุณ! : D
Rogerio Chaves

5

ฉันพบปัญหานี้ทันทีหลังจากติดตั้งการอัปเดต Mavericks 10.9.5 และการอัปเดตเครื่องมือสำหรับนักพัฒนา 10.9 จาก Apple ฉันวิ่งxcode-select --installแต่นั่นไม่สามารถแก้ไขปัญหาได้ จากนั้นฉันก็เปิด XCode ยอมรับ eula และออกจาก XCode ที่แก้ไขปัญหา


3

วันนี้ฉันมีปัญหานี้ใน Maverick นี่คือวิธีที่ฉันแก้ปัญหาได้:

brew update
brew install libiconv
brew link libiconv

ตรวจสอบให้แน่ใจว่าคุณทราบเวอร์ชันของ libiconv ใน Cellar mine ด้านล่างคือ 1.14 จากนั้นติดตั้งดังนี้:

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

หากคุณต้องการ nokogiri รุ่นใดรุ่นหนึ่งเช่น -v '1.6.2.1' ให้ติดตั้งเป็น:

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

ติดตั้ง Nokogiri เรียบร้อยแล้ว!


ทำงานให้ฉันใน Yosemite ด้วย ไม่มีคำตอบข้างต้นทำ
MattL

3

นี่เหมือนกับโพสต์ของ @ thomas_witt แต่ใช้ได้กับ MacOS 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

เพื่อให้การติดตั้งใช้งานได้ฉันต้องแก้ไข filepaths ในgem installคำสั่งให้ตรงกับที่อยู่ในระบบ ฉันมี libxml2 และ libiconv เวอร์ชันที่แตกต่างกันและโครงสร้างไฟล์ต่างกันเล็กน้อย คำสั่งที่มีการปรับเปลี่ยนของฉันคือ:

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

ฉันต้องพิถีพิถันกับไฟล์พา ธ มาก ฉันต้องใช้เวลาหลายครั้งในการสร้างคำสั่งอย่างถูกต้อง
darkmoves

นี่คือลิงค์ไปยังวิธีแก้ไขปัญหาอื่นสำหรับเวอร์ชัน libxml ที่ไม่ถูกต้อง
darkmoves

2

สำหรับผู้ที่ใช้MacPortsตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งlibxml2ผ่านMacPortsไฟล์. จากนั้นพิมพ์:

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

นี่น่าจะเป็นเคล็ดลับใช้ได้ผลสำหรับฉันโดยไม่ต้องใช้เส้นทางแบบเต็ม



2

นี่คือข้อมูลอ้างอิงอื่น:

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]

ฉันพบข้อผิดพลาดขณะติดตั้ง nokogiri

ข้อผิดพลาดเช่นนี้:

.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)

คุณต้องติดตั้งเครื่องมือพัฒนาก่อน

จากนั้นอาจต้องการ:

$ xcode-select --install

หรือหากคุณมีข้อผิดพลาดเช่น

checking for libxml/parser.h... no

ฉันเพิ่งแก้ไขเส้นทาง lib โดย:

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/

สำหรับกลุ่มต้องการสิ่งที่ต้องการ:

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

สิ่งนี้ใช้ได้กับฉัน

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

เพียงเรียกใช้คำสั่งด้านล่างสองคำสั่ง

$ xcode-select --install

จะขอให้คุณดาวน์โหลดพูดว่า "ใช่" จากนั้นระบบจะขอให้ติดตั้งคอมโพเนนต์ xcode คลิกติดตั้ง

ตอนนี้ลองติดตั้ง gem ด้วยคำสั่งด้านล่าง

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

สิ่งนี้ใช้ได้กับฉันกับสภาพแวดล้อมข้างต้น


1

ฉันพบปัญหาเดียวกันสำหรับ Mavrick และวิธีแก้ปัญหาคือ:

xcode-select --install

อย่างไรก็ตามนั่นใช้งานไม่ได้เนื่องจากหน้าดาวน์โหลดของ Apple สำหรับ Command-line-toolไม่มีตัวติดตั้งนั้นพร้อมใช้งานแบบสาธารณะในขณะนี้

ดังนั้นถ้าคุณต้องการที่จะมีเครื่องมือบรรทัดคำสั่งสำหรับ Mavricks คุณจำเป็นต้องมีบัญชีการชำระเงิน จากนั้นคุณเท่านั้นที่จะสามารถติดตั้งได้ เมื่อคุณติดตั้งแล้วคุณจะไม่ประสบปัญหานี้กับ Nokogiri


ฉันไม่มีบัญชีแบบชำระเงินและฉันได้รับการติดตั้งเครื่องมือบรรทัดคำสั่ง ฉันติดตั้งโดยใช้เทอร์มินัล แต่เพื่อนของฉันติดตั้งโดยใช้หน้าดาวน์โหลดนั้นและเขาก็ไม่มีบัญชีแบบชำระเงินด้วย
squiter

ฉันเห็นด้วยกับคุณ. สิ่งเดียวกันเกิดขึ้นกับฉันจนถึงวันที่ 24 พฤศจิกายน 2013 อย่างไรก็ตามหากคุณไปที่หน้านั้นตอนนี้และพยายามเข้าถึงมันจะทำให้คุณเกิดข้อผิดพลาดนี้ สิ่งที่แปลกคือคุณเข้าสู่ระบบด้วยข้อมูลประจำตัวของคุณ แต่จะทำให้คุณเข้าสู่ระบบในฐานะแขก นี่คือข้อความที่ฉันได้รับบนหน้าที่มีบัญชีของฉัน: คำเตือนเรื่องใหญ่ของโปรแกรมนักพัฒนาของ Apple เราไม่สามารถดำเนินการตามคำขอของคุณได้ โปรดกลับไปที่หน้าก่อนหน้านี้หรือออกจากเบราว์เซอร์ของคุณแล้วลองขออีกครั้ง หากคุณต้องการความช่วยเหลือโปรดติดต่อฝ่ายสนับสนุนนักพัฒนาของ Apple
shineecret

1

ฉันมีข้อผิดพลาดเดียวกันนี้ในการติดตั้ง Mavericks ใหม่ หลังจากที่มีการพ้นจากการพิพากษาของผมเปลี่ยนชื่อเป็นกำ app ของฉัน Xcode Xcode 5.0.1.appไป

เห็นได้ชัดว่าสคริปต์การติดตั้ง Nokogiri ไม่ได้อ้างถึงเส้นทางดังนั้นพื้นที่ในชื่อไฟล์จึงทำให้เกิดปัญหาหรือปัญหาทั้งหมด ฉันไม่ได้ลองจนกว่าbrew install libxml2ข้อผิดพลาดจะชัดเจน

บทเรียนที่ได้เรียนรู้: ช่องว่างในชื่อไฟล์นั้นชั่วร้าย


1

ในกรณีของฉันฉันต้องเรียกใช้ /usr/bin/gcc-4.2 จริงๆหลังจากเชื่อมโยงกัน คุณต้องยอมรับข้อตกลงสิทธิ์การใช้งานมิฉะนั้นจะแฮงค์


1

ข้อความแสดงข้อผิดพลาดให้เบาะแสที่นี่: 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  

คุณอาจต้องชงการติดตั้งและเชื่อมโยงสิ่งเหล่านี้:

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

สำหรับฉันข้อผิดพลาดคือ gcc (4.2.1 ติดตั้งจาก Homebrew) บ่นว่า:

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

ฉันแก้ไขปัญหาโดยบังคับใช้ x86_64 เท่านั้น:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

หลังจากอัปเกรดเป็น Maverick ฉันมีปัญหาคล้ายกัน ฉันใช้ RVM กับ Ruby 1.9.2-p320 และฉันลองใช้วิธีแก้ปัญหาหลายอย่างที่ให้ไว้ที่นี่ แต่ไม่มีอะไรช่วยแก้ปัญหาได้

จากนั้นฉันเปลี่ยนเป็น Ruby 2.1.2 และbundle installติดตั้ง Nokogiri ทันที


1

หากใครกำลังมีปัญหานี้กับ el capitan ขณะใช้บันเดิลเลอร์

ตรวจสอบให้แน่ใจว่าได้ติดตั้งเครื่องมือบรรทัดคำสั่ง xcode แล้วและรันสิ่งนี้:

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

ฉันประสบปัญหาเดียวกันในช่วงสองสัปดาห์ที่ผ่านมาขณะพยายามเรียกใช้แอปพลิเคชันเวอร์ชัน rail 3

ปัญหาคือ rvm / rbenv ของคุณไม่ได้ใช้คอมไพเลอร์ C

ใช้คำสั่งนี้สำหรับ rvm เพื่อใช้คอมไพเลอร์ C ที่เข้ากันได้

CC=gcc rvm install-version

ดังนั้นหากคุณใช้ Ruby 1.9.3 ให้ใช้วิธีนี้

CC=gcc rvm install-1.9.3

ใช้คำสั่งนี้ทุกครั้งที่คุณไม่สามารถบันเดิลการติดตั้งหรืออะไรก็ได้ สิ่งนี้ใช้งานได้กับ El Capitan ราง 3.2.16 ทับทิม 1.9.3 mysql 5.7 หวังว่ามันจะแก้ปัญหาได้

ฉันประสบปัญหาเดียวกันในช่วงสองสัปดาห์ที่ผ่านมาขณะพยายามเรียกใช้แอปพลิเคชันเวอร์ชัน rail 3

ปัญหาคือ rvm / rbenv ของคุณไม่ได้ใช้คอมไพเลอร์ C

ใช้คำสั่งนี้สำหรับ rvm เพื่อใช้คอมไพเลอร์ C ที่เข้ากันได้

CC=gcc rvm install-version

ดังนั้นหากคุณใช้ Ruby 1.9.3 ให้ใช้วิธีนี้

CC=gcc rvm install-1.9.3

ใช้คำสั่งนี้ทุกครั้งที่คุณไม่สามารถบันเดิลการติดตั้งหรืออะไรก็ได้

สิ่งนี้ใช้งานได้กับ El Capitan ราง 3.2.16 ทับทิม 1.9.3 mysql 5.7 หวังว่ามันจะแก้ปัญหาได้ และหากคุณมี Xcode อยู่แล้วและคุณไม่ได้รับข้อผิดพลาดเดียวกันในการติดตั้งอัญมณีใด ๆ ให้ลองใช้วิธีนี้


1

ฉันเพิ่มสิ่งที่ค้นพบที่นี่หลังจากพบปัญหาเดียวกันนี้ไม่นานหลังจากการอัปเกรด: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

การแก้ไขคือ 2 คำสั่งเหล่านี้:

xcode-select --install
gem install nokogiri

หวังว่าจะช่วยได้


5
โปรดโพสต์เนื้อหาที่นี่ - ลิงก์อาจเสียหาย (ดูหลักเกณฑ์)
Justin

มันช่วยฉันได้แม้ว่าฉันจะสะท้อนความรู้สึกของการโพสต์คำตอบที่นี่มากกว่าในลิงค์ :)
Richard

นี่คือสิ่งที่ถือเป็นคำตอบแบบลิงก์เท่านั้นซึ่งไม่สนับสนุนใน Stack Overflow แทนที่จะโพสต์ลิงก์ไปยังไซต์ของคุณเองเท่านั้นให้สรุปข้อมูลสำคัญในคำตอบของคุณด้วย ด้วยวิธีนี้หากลิงก์เน่าเหมือนที่มักจะทำคำตอบจะยังคงให้คุณค่าต่อไป
คนดีบุก

0

ฉันมีปัญหานี้เช่นกัน การรันbrew doctorแสดงให้เห็นว่าฉันมี libiconv เวอร์ชันที่ไม่คาดคิดใน / 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

ดังนั้นฉันจึงลบออกและ rebrewed 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

ในที่สุดฉันก็ติดตั้ง nokogiri:

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

ฉันมีปัญหาที่คล้ายกัน (libiconv ที่ไม่ได้ลิงก์) ฉันยกเลิกการเชื่อมโยง libiconv และติดตั้งใหม่ ชงติดตั้ง libiconv แล้วติดตั้งอัญมณี nokogirl
เบ็น

0

คำตอบเหล่านี้ไม่มีผลกับกรณีเฉพาะของฉันและเนื่องจากฉันเป็นมือใหม่ฉันคิดว่าวิธีแก้ปัญหาของฉันอาจช่วยคนอื่นได้

ฉันใช้ Yosemite และใช้ Ruby 1.9.3p547 มีการเปิดเผยความปลอดภัยสำหรับ p547 ดังนั้นฉันจึงพยายามอัปเดตเป็น Ruby 1.9.3p550 หรือสูงกว่า ฉันใช้ RVM จากนั้นพยายามโยกย้ายอัญมณีของฉัน แต่หลายคนไม่ได้ไป จากนั้นฉันพยายามรวมกลุ่มการติดตั้ง แต่ล้มเหลวและฉันคิดว่าอาจเป็นความขัดแย้งระหว่างเส้นทางและการอ้างอิงต่างๆดังนั้นฉันจึงลบ Ruby เวอร์ชันเก่าออกไป สิ่งนี้ทำลายทุกอย่าง

ฉันได้รับข้อความแจ้งว่าคอมไพเลอร์ C หายไปแม้ว่าฉันจะดาวน์โหลด XCode และเพิ่งอัปเดตเครื่องมือ CLI ฉันพบเว็บไซต์อื่นที่บอกให้ฉันดาวน์โหลด GCC ของบุคคลที่สามซึ่งฉันทำ ซึ่งทำให้ทุกอย่างแย่ลง

ตอนนี้ฉันได้รับข้อความแจ้งว่าต้องแก้ไขโปรไฟล์และ PATH หรืออาจจะง่ายกว่าในการติดตั้ง OSX ใหม่ ดังนั้นฉันจึงทำ

อย่างไรก็ตามเรื่องอีกต่อไปเพียงยาว: การแก้ปัญหาที่ทำงานที่สุดสำหรับฉันคือการกำจัด RVM bundle installและเพียงแค่ชงใช้เพื่อดาวน์โหลดทับทิมรุ่นผมอยากแล้วก่อนที่จะใช้ ติดตั้ง Nokogiri FIRST เวอร์ชันที่ถูกต้อง

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

การใช้sudoจะทำให้ Nokogiri ติดตั้งใน Ruby เดียวที่รูทรู้จักซึ่งมีแนวโน้มสูงว่าจะเป็น Ruby ที่ติดตั้งของ Apple เว้นแต่จะใช้ Homebrew เนื่องจาก OP ใช้ RVM นั่นหมายความว่า Nokogiri จะไม่เห็น Ruby ที่จัดการ RVM และจะทำให้ปัญหาเพิ่มขึ้นเท่านั้น การใช้sudoอาจได้ผลในกรณีนี้ แต่ไม่ควรลองกับ RVM หรือ rbenv ที่มีการจัดการ Ruby RVM โดยเฉพาะบอกว่าจะไม่ทำมันในเอกสารการติดตั้ง
คนดีบุก

0

สำหรับ windows คุณสามารถลองติดตั้งภายในเครื่อง:

  1. ดาวน์โหลดอัญมณีที่เหมาะสมตามสภาพแวดล้อมของคุณ

  2. ไปที่ไดเร็กทอรีที่คุณบันทึกไฟล์ gem

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

หากไม่ได้ผลคุณสามารถตรวจสอบว่าคุณได้ติดตั้ง zlib และ mingw หรือคอมไพเลอร์ c ที่เหมาะสมหรือไม่


0

ทุกสิ่งที่น่ารังเกียจในที่นี่ไม่ได้ทำเพื่อฉัน (ฉันไม่ได้ติดตั้งการชงใหม่โอ้) แต่ในที่สุดก็ทำได้ (พบจากรายงานข้อบกพร่องในโครงการที่ไม่เกี่ยวข้อง):

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

โชคดี. ใช่สำหรับ #yakshaving!


-3

ตรวจสอบเวอร์ชันเครื่องมือ Commandline ของคุณ ตั้งค่าเครื่องของคุณให้ใช้เครื่องมือบรรทัดคำสั่ง Xcode 5.0.X จากนั้นเรียกใช้:

gem install nokogiri

คุณควรใช้คำสั่งนี้ เปิดเทอร์มินัล และเขียนคำสั่งนี้ ส่งออก NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.