Nokogiri: libiconv๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค

์— ๋งŒ๋“  2011๋…„ 04์›” 03์ผ  ยท  109์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sparklemotion/nokogiri

์šฐ๋ฆฌ๋Š” OS X 10.6.6์—์„œ Ruby 1.8.7(RVM์„ ํ†ตํ•ด)์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ nokogiri 1.4.4๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํ•ญ์ƒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Installing nokogiri (1.4.4) with native extensions /Users/administrator/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/installer.rb:533:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/Users/administrator/.rvm/rubies/ruby-1.8.7-p302/bin/ruby extconf.rb 
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
[โ€ฆ]

์—ฌ๊ธฐ Wiki์˜ ์ง€์นจ๊ณผ ์ธํ„ฐ๋„ท ์ฃผ๋ณ€์—์„œ ์šฐ๋ฆฌ๋Š” MacPorts๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ libxml2 ๋ฐ libxslt ๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

sudo port install libxml2 libxslt
Password:
Error: Cannot install libxml2 for the arch(s) 'x86_64' because
Error: its dependency libiconv is only installed for the archs 'i386 ppc'.
Error: Unable to execute port: architecture mismatch

์šฐ๋ฆฌ๋Š” ์†Œ์Šค์—์„œ libxml2 ๋ฐ libxslt ๋ฅผ ๋นŒ๋“œํ–ˆ์œผ๋ฉฐ Wiki์— ์„ค๋ช…๋œ ๋Œ€๋กœ MacPorts ๋ฐ ๋นŒ๋“œ์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ์™€ ์˜จ๋ผ์ธ์—์„œ ์ฐพ์€ ๋ช‡ ๊ฐ€์ง€ ๋ณ€ํ˜•์œผ๋กœ gem์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. โ€” ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” gem ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์—ฌ๊ธฐ์— ์ œ์•ˆ๋œ ๋Œ€๋กœ extconf.rb ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋กœ์ปฌ๋กœ ์ปดํŒŒ์ผํ–ˆ์ง€๋งŒ ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด ์ƒํ™ฉ์— ๊ฑฐ์˜ ๊ฐ‡ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  109 ๋Œ“๊ธ€

๋‚˜๋Š” ์ด์™€ ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ต๋ณ€์„ ๋ฐ›์•˜๋‹ค.

MacPorts ์„ค์น˜: http://www.macports.org
/opt/local/bin์„ PATH์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค(bashrc ๋˜๋Š” zshrc ๋˜๋Š” ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ).
sudo ํฌํŠธ ์„ค์น˜ libxml2 ๋ฐ sudo ํฌํŠธ ์„ค์น˜ libxslt
๊ทธ๋Ÿฐ ๋‹ค์Œ sudo gem install nokogiri --no-rdoc --no-ri ๋ฌธ์ œ ์—†์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์‹œ์Šคํ…œ ๋ฃจ๋น„(OSX 10.6์˜ 1.8.7)์™€ rvm์„ ํ†ตํ•œ 1.9.2์— ๋Œ€ํ•ด ํ•ด์•ผ ํ–ˆ๋˜ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

10.6์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. MacPorts๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  libxml2 ๋ฐ libxslt๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ์ด์ œ ๋” ์ด์ƒ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MacPorts์™€ ํ•จ๊ป˜ libxml2 ๋ฐ libxslt๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด have_func('iconv_open', 'iconv.h') ํ˜ธ์ถœ์— ์‚ฌ์šฉ๋œ ํฌํ•จ ๊ฒฝ๋กœ ๋ฐ ๋งํฌ ๊ฒฝ๋กœ์˜ ์ˆœ์„œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ(ํŒจ์น˜) ์†”๋ฃจ์…˜: /usr/local/lib์—์„œ libiconv.* ์‚ญ์ œ

์ œ์•ˆ: extconf.rb๊ฐ€ ์‹ค์ œ๋กœ ์„ค์น˜๋œ iconv ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ๋” ์ •๊ตํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋‚˜์€ ๋‹จ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ libiconv๊ฐ€ ๋ˆ„๋ฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋‘ ๊ฐœ์˜ libiconvs๊ฐ€ ์žˆ์œผ๋ฉฐ ์˜ฌ๋ฐ”๋ฅธ ํ—ค๋”๊ฐ€ ์ปดํŒŒ์ผ๋˜๊ณ  ์ด์ „ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ํŒŒ์ผ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ข€ ๋” ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด mkmf์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์‹คํŒจํ•œ ์ปดํŒŒ์ผ ๊ฒ€์‚ฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

```"gcc -o conftest -I. -I/usr/local/lib/ruby/1.8/i686-darwin10.3.0 -I. -III/opt/local/include -III/usr/local/include -III /usr/local/include -III/usr/include -III/usr/include/libxml2 -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -II/opt/local/include -II/usr/local/include -II/usr/local/include -II/usr/include -II/usr/include/libxml2 -I/opt/local/include -I/usr /local/include -I/usr/local/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/usr/local/lib -L/opt/local/lib -L/usr/local/lib -L /usr/lib -L. -lruby-static -lpthread -ldl -lobjc "
์•„ํ‚คํ…์ฒ˜ x86_64์— ๋Œ€ํ•œ ์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐํ˜ธ:
"_libiconv_open", ๋‹ค์Œ์—์„œ ์ฐธ์กฐ:

Note the compile stage starts with /opt/local/include, but the link stage starts with /usr/local/lib, which is where the old version was

Lion๊ณผ homebrew๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์€ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

brew install libiconv
brew link libiconv

์ œ ๊ฒฝ์šฐ์—๋Š”(OS X Lion์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด macports๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

port -qv installed > myports.txt
sudo port -fp uninstall --follow-dependents installed
sudo port clean all

์ž์„ธํ•œ ๋‚ด์šฉ : http://trac.macports.org/wiki/Migration

jfahrenkrug๊ฐ€ ๋งํ•œ ๊ฒƒ์— +1. http://nokogiri.org/tutorials/installing_nokogiri.html ์˜ ์„ค์น˜ ๊ฐ€์ด๋“œ , homebrew ์„น์…˜์ด ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–‘์กฐ ์„ค์น˜ libxml2 libxslt
์–‘์กฐ ๋งํฌ libxml2 libxslt

์—๊ฒŒ

์–‘์กฐ ์„ค์น˜ libxml2 libxslt libiconv
์–‘์กฐ ๋งํฌ libxml2 libxslt libiconv

jfahrenkrug์˜ ์ˆ˜์ • ์‚ฌํ•ญ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

+1์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

brew์—์„œ libxml2 ๋ฐ libxslt๋ฅผ ๋นŒ๋“œํ•˜๋Š” ์ง€์นจ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋…ธ์ฝ”๊ธฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

'brew install libiconv'๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

$ ์–‘์กฐ ์„ค์น˜ libiconv
์˜ค๋ฅ˜: libiconv์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์‹์ด ์—†์Šต๋‹ˆ๋‹ค.
Apple์€ OS X์™€ โ€‹โ€‹ํ•จ๊ป˜ libiconv๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. /usr/lib์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ๊ณต์‹.

์ €๋Š” Snow Leopard๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. MacPorts๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋„์™€์ฃผ์„ธ์š”.

@jseigler ์ €๋Š” brew 0.8.1์„ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ๋ฌธ์ œ ์—†์ด libiconv๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. brew๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@jseigler์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. OS X 10.7.3์—์„œ brew 0.9๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

libiconv๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ˆ˜๋™์œผ๋กœ ์ปดํŒŒ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

brew 0.9 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด Nokogiri๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ์„ค์น˜ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๋™์•ˆ์—๋Š” Linux๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๋กœ์„œ ๋งŽ์€ ๋„์›€์„ ๋“œ๋ฆฌ์ง€ ๋ชปํ•˜์—ฌ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@tenderlove , ์–ด๋–ค ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์€ <3 ๋งฅ. :) :) :)

OSX 10.7.3์—์„œ brew 0.9๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–‘์กฐ ์„ค์น˜ libxml2 libxslt
์–‘์กฐ ๋งํฌ libxml2 libxslt

์†Œ์Šค์—์„œ libiconv ์„ค์น˜:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
CD libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
๋งŒ๋“ค๋‹ค
sudo make ์„ค์น˜

๊ทธ๋Ÿฐ ๋‹ค์Œ nokogiri๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
๋ณด์„ ์„ค์น˜ nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Cellar/libiconv/1.13.1/lib

@ ๋ธŒ๋ ˆ๋„จํ”„

์ž˜ ํ•˜์…จ์–ด์š”. ์ €์—๊ฒŒ๋„ ๊ทธ๋žฌ์Šต๋‹ˆ๋‹ค.

nokogiri.org์— ๊ฒŒ์‹œ๋œ ์ง€์นจ:

http://nokogiri.org/tutorials/installing_nokogiri.html#homebrew_09

๋ชจ๋“  ๋ถ„์—๊ฒŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@brennenf ์ด ๋ผ์ธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค
๋ณด์„ ์„ค์น˜ nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Cellar/libiconv/1.13.1/lib

@brennenf ๊ท€ํ•˜์˜ ์ˆ˜์ • ์‚ฌํ•ญ์€ "nokogiri-1.5.2๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ‹์ง„ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ๋‚ด ๋ ˆ์ผ ์•ฑ์—์„œ ๋ฒˆ๋“ค ์„ค์น˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์—ฌ์ „ํžˆ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. "nokogiri(1.5.2)๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ Bundler๋ฅผ ๊ณ„์†ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฒˆ๋“ค๋ง ์ „์— gem install nokogiri -v '1.5.2' ๊ฐ€ ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค." ์ฐธ๊ณ  "gem install nokogiri -v '1.5.2"๋„ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@tringas - nokogiri-talk๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”. ์ด ๋ฌธ์ œ๋Š” nokogiri 1.4.4์— ๊ด€ํ•œ ๊ฒƒ์ด๋ฉฐ ๋ช‡ ๋‹ฌ ๋™์•ˆ ํ์‡„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์šดํ‹ด ๋ผ์ด์–ธ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
์„ค์น˜๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

nokogiri ์„ค์น˜ ํŽ˜์ด์ง€์— ์–ธ๊ธ‰๋œ ๊ฒฝ๋กœ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ณด๋‹ตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค: https://gist.github.com/3186643

@polarblau ์ง€๊ธˆ ๊ณ ๋ฏผํ•˜์‹œ๋Š” ๋ถ„๋“ค ๋ณด์„ธ์š” :D (๋‚˜)

๋„์›€์ด ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ Mountain lion์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ RVM "์ƒํƒœ๊ณ„"๊ฐ€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. http://unfiniti.com/software/mac/jewelrybox/ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .rvm์„ ์ œ๊ฑฐํ•˜๊ณ  rvm์„ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ์ด์ œ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8

์—ฌ๊ธฐ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Ruby๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pietia ;) et al. SO, ์ฐธ๊ณ ๋กœ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด โ€” http://stackoverflow.com/questions/5528839/installing-nokogiri-fails-libiconv-missing .

@polarblau , ๋Šฆ๊ฒŒ๊นŒ์ง€! ๋‚˜๋Š” ์ด๋ฏธ ๊ทธ๊ฒƒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค ;)

์ƒˆ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ Mountain Lion์—์„œ ์„ค์น˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด์ „์— ์„ค์น˜ํ•œ rvm ํŒจํ‚ค์ง€($rvm_path/usr์— ์žˆ์Œ)๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ruby โ€‹โ€‹1.9.3์„ ๋‹ค์‹œ ๋นŒ๋“œํ•œ ๋‹ค์Œ gem install nokogiri๊ฐ€ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. https://rvm.io/packages/ ์ฐธ์กฐ

์ €๋Š” ๋งˆ์šดํ‹ด ๋ผ์ด์–ธ์— ์žˆ์Šต๋‹ˆ๋‹ค. Ruby๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

libxml/parser.h ํ™•์ธ ์ค‘... ์•„๋‹ˆ์š”

libxml2๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Mac OS X 10.8 Mountain Lion์—์„œ Homebrew 0.9์— ๋Œ€ํ•ด ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด "/usr/bin/gcc-4.2" ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•œ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์–‘์กฐ ์„ค์น˜ libxml2 libxslt
์–‘์กฐ ๋งํฌ libxml2 libxslt
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
CD libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
๋งŒ๋“ค๋‹ค
sudo make ์„ค์น˜
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
๋ณด์„ ์„ค์น˜ nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Cellar/libiconv/1.13.1/lib

brax4444 ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋‹น์‹ ์€ ์ƒ๋ช…์˜ ์€์ธ์ž…๋‹ˆ๋‹ค!! ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋งˆ์ง€๋ง‰ ๋ช…๋ น์— sudo๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜: gem์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ... (Errno::EPERM)
์ž‘์—…์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ - ~/.rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.5/.autotest

brax4444๋Š” ๋‚จ์ž๋‹ค! ๊ฐ์‚ฌ ํ•ด์š”

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ดˆ๋ณด์ž๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Mountain Lion 10.8.2 ์‹คํ–‰ w/ Homebrew.

nokogiri 1.5.2๋กœ ์‹œ์ž‘ - ์ผ๋ฐ˜์ ์ธ libiconv๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ, ํŠนํžˆ Brax4444 ๋ฐ nokogiri์˜ ์„ค์น˜ ํŠœํ† ๋ฆฌ์–ผ ์‚ฌ์ด: http://nokogiri.org/tutorials/installing_nokogiri.html for Homebrew .9 ๋‹ค์Œ FUBAR๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋ ˆ์ผ์ด 1.5.2๋ฅผ ์ฐพ๋Š” nokogiri 1.5.5๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋งŽ์€ ์‹œ๊ฐ„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ libiconv ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

gem > nokogiri: 1.5.2 ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•ด ๋” ์ด์ƒ ๋ ˆ์ผ์Šค ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

gem(1.5.5๊ฐ€ ๋จ) ๋˜๋Š” rails new(์ด ์‹œ์ ์—์„œ ์•„๋ฌด ๊ฒƒ๋„ ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค...์ง€๊ธˆ ๋‹ค์Œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๋Œ์•„์˜ต๋‹ˆ๋‹ค. ERROR: When execution gem ...(Errno::EPERM)
ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ์ž‘์—… - /usr/local/rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.5/.autotest

์•„๋ฌด๋„ ๋‚˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด์ผ๊นŒ์ง€ ์•ฑ์„ ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋ณด์„ธ์š”!

์งˆ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! Nokogiri๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ง€์› ์š”์ฒญ์€ ์‘๋‹ต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒ๋˜์—ˆ์œผ๋ฉฐ Nokogiri์˜ Github ๋ฌธ์ œ๋Š” ๋ฒ„๊ทธ ๋ณด๊ณ  ๋˜๋Š” ํŒจ์น˜ ์ œ์ถœ์„ ์œ„ํ•ด ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์—์„œ ์งˆ๋ฌธ์„ ํ•˜๋ฉด Team Nokogiri๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ ์‹œ์— ๋‹ต๋ณ€์„ ์ œ๊ณตํ•  ๊ฒƒ์ด๋ผ๊ณ  ์•ฝ์†ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ •์ฑ…์— ๋Œ€ํ•œ Team Nokogiri์˜ ๊ทผ๊ฑฐ๋ฅผ ์ฝ๊ณ  ์‹ถ๋‹ค๋ฉด http://bit.ly/nokohelp๋ฅผ ๋ฐฉ๋ฌธํ•˜์‹ญ์‹œ์˜ค.

์ดํ•ดํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋ฆฌ๊ณ  ๋…ธ์ฝ”๊ธฐ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

brax4444, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. pg gem์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

http://nokogiri.org/tutorials/installing_nokogiri.html ํŽ˜์ด์ง€์˜ ์ง€์นจ์€ ๋ฒˆ๋“ค ์„ค์น˜๋กœ ์ธํ•ด ์ตœ์‹  ๋ฒ„์ „์ด ์•„๋‹™๋‹ˆ๋‹ค(ํ˜„์žฌ libxml2๋Š” 2.9.0, libxslt๋Š” 1.1.28).

@์œˆ์Šคํ„ด์Šค

๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ๊ฝค ์˜ค๋žซ๋™์•ˆ ํ์‡„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

nokogiri ์„ค์น˜ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ์ฃผ์†Œ๋กœ pull ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/sparklemotion/nokogiri.org-tutorials

๋˜๋Š” ์ƒˆ ๋ฌธ์ œ์—์„œ ๋ฌธ์ œ์™€ ์†”๋ฃจ์…˜(๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ libxml2 ๋˜๋Š” libxslt๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ... brew๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ๋˜๋Š” mac ํฌํŠธ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ๋˜๋Š” ... ?)์„ ์ƒˆ ๋ฌธ์ œ์— ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋…ธ์ฝ”๊ธฐ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@flavorjones ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋ฉ€๋ฆฌ ๊ฐˆ๊ฑฐ์•ผ.

Nokogiri์˜ ๊ณต๋™ ์ €์ž‘์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์‹ค์ œ๋กœ XCode๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์ค„ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

@dentarg ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Mac์„ ๋ณต์›ํ•œ ํ›„ ๋ช…๋ น์ค„ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ช…๋ น์œผ๋กœ 'xcode-select --install'

https://github.com/Homebrew/homebrew-dupes/blob/master/libiconv.rb ์‚ฌ์šฉ

์–‘์กฐ ํƒญ ํ™ˆ๋ธŒ๋ฅ˜/๋“€ํ”„
์–‘์กฐ ์„ค์น˜ libiconv

๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์ด๊ฒƒ์€:
๋ฒˆ๋“ค ๊ตฌ์„ฑ build.nokogiri --use-system-libraries

ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค

@brax4444 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์กฐ์–ธ์ด ์ €์—๊ฒŒ๋„ ํฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

๊ธฐ๋ณธ iconv๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. libxml2/libxslt๋ฅผ ์—ฐ๊ฒฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 \
    --with-iconv-lib=/usr/lib \
    --with-iconv-include=/usr/local/include 

@patricksereno ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฒˆ๋“ค ๊ตฌ์„ฑ build.nokogiri --use-system-libraries
์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค

๊ณ ๋งˆ์›Œ์š”, brax4444! ๊ทธ ํ•œ ์ค„(gcc ๋งํฌ)๋„ ์ €๋ฅผ ์œ„ํ•ด ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค!

์—…๋ฐ์ดํŠธ๋œ ์ง€์นจ ๋ณด๊ธฐ: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

์ฐธ๊ณ : ์ด ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ์„ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•œ๋‹ค๋ฉด ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. '๋งํฌ ์–‘์กฐ'์— ๋Œ€ํ•œ ๋ชจ๋“  ์กฐ์–ธ(ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ ํฌํ•จ)์€ ๋‚˜์œ ์กฐ์–ธ์ž…๋‹ˆ๋‹ค. "--use-system-libraries"์— ๋Œ€ํ•œ ๋ชจ๋“  ์กฐ์–ธ๋„ ๋‚˜์œ ์กฐ์–ธ์ž…๋‹ˆ๋‹ค. ใ…‹ใ…‹ใ…‹ใ…‹ ๋๊นŒ์ง€ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

brew tap homebrew/dupes
brew install libiconv
brew link libiconv --force
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ libiconv๊ฐ€ /usr/local/include์— '์–‘์กฐ ๋งํฌ'๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 'dupes' ํƒญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ --force ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ nokogiri์—๊ฒŒ /usr/local ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋นŒ๋“œํ•  ๋•Œ ํฌํ•จ๋œ libxml2์— ์ „๋‹ฌํ•  iconv ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋„๋ก ์ง€์‹œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. --use-system-libraries ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‚ฌ๋žŒ๋“ค์ด ํ•˜๋Š” ์ผ์€ ๋‚ด๋ถ€ libxml2 ๋นŒ๋“œ์— ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„์•ผ ํ•  ํ•„์š”์„ฑ์„ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ homebrew๊ฐ€ libiconv์— ๋Œ€ํ•œ pkg-config ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ /usr/local/include ๋ฅผ ์—ฌ๊ธฐ์—์„œ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ๋กœ ํ•˜๋“œ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/sparklemotion/nokogiri/blob/983ff1f2962c7f9fd20a6fc4c18784eccfff21c0/ext/nokogiri/extconf.rb#L132 -L133

๋‚˜๋Š” ๋ฃจ๋น„์˜ mkmf์— ์žˆ๋Š” ๊ฒฝ๋กœ์—์„œ /usr/local/include๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๊ณ  ๊ทธ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์  ์žฅ. mkmf์˜ ๊ฐ„์ ‘ ์ฐธ์กฐ ๊ณ„์ธต์ด ๋„ˆ๋ฌด ๊นŠ์Šต๋‹ˆ๋‹ค. mkmf์˜ find_header() ๋ฉ”์„œ๋“œ๋Š” iconv.h๋ฅผ ํ™•์‹คํžˆ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฐพ์€ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ—ค๋” ํŒŒ์ผ์„ ์ฐพ๊ธฐ ์œ„ํ•œ nokogiri์˜ ์˜ฌ๋ฐ”๋ฅธ ์ˆ˜์ • ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. mkmf๊ฐ€ ํ—ค๋” ํŒŒ์ผ์„ ์ฐพ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

nokogiri๊ฐ€ ์™ธ๋ถ€ pkg-config์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ์—†์ด๋Š” /usr/local/include์—์„œ ๊ฐ„๋‹จํ•œ ํ—ค๋” ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์ด ๊นจ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ํ•˜๋“œ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ถ”ํ•œ์ง€ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ find_header๊ฐ€ ํ—ค๋”๋ฅผ ์ฐพ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ mkmf์— ๋ฌป๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค...

๋˜ํ•œ dir_config()๊ฐ€ ๋‘ ๊ฒฝ๋กœ์˜ ๋ฐฐ์—ด ๋Œ€์‹  ':'๋กœ ๊ตฌ๋ถ„๋œ ๊ฒฝ๋กœ์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์•„๋ฌด๋Ÿฐ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/sparklemotion/nokogiri/blob/983ff1f2962c7f9fd20a6fc4c18784eccfff21c0/ext/nokogiri/extconf.rb#L126 -L130

@lamont-granquist ํ›Œ๋ฅญํ•œ ์ง€์นจ, ํƒญ์„ ํƒญ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋” ์ข‹์Šต๋‹ˆ๋‹ค :-)

@ericbrooke lol, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ด์ „ ํฌ์Šคํ„ฐ์—์„œ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค ... ์ง€๊ธˆ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค ...

์ด ๊ฒŒ์‹œ๋ฌผ์— ์–ธ๊ธ‰๋œ ๋ชจ๋“  ๋ช…๋ น์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-lib=/usr/lib --with-iconv-include=/usr/local/include/
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-lib=/usr/lib --with-iconv-include=/usr/local/include/'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-lib=/usr/lib --with-iconv-include=/usr/local/include/
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.

iconv.h ์ด ๋ฐœ๊ฒฌ๋œ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ iconv_open() $๋Š” ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(ํ•ด๋‹น ํŒŒ์ผ์— ์ •์˜๋˜์–ด ์žˆ์Œ). ๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ตœ๊ทผ์— ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฌธ์ œ์— ๋ถ€๋”ชํžŒ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค - http://stackoverflow.com/questions/24735534/nokogiri-install-fails-iconv-doesnt-work-osx

์ด ๋ฌธ์ œ๋ฅผ ๋ณธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ๋œ ์ง€์นจ ๋ณด๊ธฐ: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

@Reinmar ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํŠนํžˆ:

  1. brew link libiconv --force ๊ทธ๋Ÿฐ ๋‹ค์Œ ls -la /usr/local/include/iconv.h ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ๋˜ํ•œ ls -la /usr/local/lib/libiconv.dylib ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  3. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ„๋‹จํžˆ: gem install nokogiri -- --with-iconv-dir=/usr/local

homebrew์˜ 'Cellar' ๊นŠ์ˆ™ํ•œ ๊ณณ์— ์žˆ๋Š” ๋ฒ„์ „์ด ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ์— ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ๋Š” ๋”์ฐํ•˜๊ณ  ๋ถ€์„œ์ง€๊ธฐ ์‰ฝ๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์— ๊ทธ๋‹ค์ง€ ๋†€๋ผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ๊ฐ€ ๋น„์Šทํ•˜๋„๋ก http://nokogiri.org/tutorials/installing_nokogiri.html ์ง€์นจ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค(๋ฒ„์ „์ด ๋‹ค๋ฆ„).

piotrus<strong i="7">@macus</strong> ~> brew link libiconv --force
Warning: Already linked: /usr/local/Cellar/libiconv/1.14
To relink: brew unlink libiconv && brew link libiconv
piotrus<strong i="8">@macus</strong> ~> ls -la /usr/local/include/iconv.h
lrwxr-xr-x  1 piotrus  admin  39 Jul 29 19:47 /usr/local/include/iconv.h -> ../Cellar/libiconv/1.14/include/iconv.h
piotrus<strong i="9">@macus</strong> ~> ls -la /usr/local/lib/libiconv.dylib
lrwxr-xr-x  1 piotrus  admin  42 Jul 29 19:47 /usr/local/lib/libiconv.dylib -> ../Cellar/libiconv/1.14/lib/libiconv.dylib
piotrus<strong i="10">@macus</strong> ~> gem install nokogiri -- --with-iconv-dir=/usr/local
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
piotrus<strong i="11">@macus</strong> ~> sudo gem install nokogiri -- --with-iconv-dir=/usr/local
Password:
Building native extensions with: '--with-iconv-dir=/usr/local'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-iconv-dir=/usr/local
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no

Ruby/gem์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ  ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค... :| ๊ทธ๊ฒƒ์€ ๋งน๋ชฉ์ ์ธ ์ถ”์ธก์ž…๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค... gem ์—…๋ฐ์ดํŠธ๊ฐ€ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ rvm์„ ์„ค์น˜ํ•œ ํ›„(ํ•˜์ง€๋งŒ Ruby๋ฅผ 2.0.0์—์„œ 2.1.*์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์ „์—) ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ  ์‹ค์ˆ˜๋กœ iterm ์—์„œ ํ‘œ์ค€ ํ„ฐ๋ฏธ๋„๋กœ ์ „ํ™˜ํ–ˆ๊ณ ... nokogiri ์„ค์น˜๋Š” ์ด์ „์— ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋˜ ๋™์ผํ•œ ๋ช…๋ น. ๊ทธ๋ž˜์„œ (์ด์ „์— iterm์—์„œ ๋งŽ์€ ํƒญ์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ) ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ xterm์œผ๋กœ ์ธํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ๋Š” ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@lamont-granquist ๋‹ต๋ณ€ ์™ธ์—๋„ ๋ฒˆ๋“ค์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ gem ์„ค์น˜๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

@lamont-granquist ์˜ ์ง€์นจ์„ ๋”ฐ๋ฅธ ํ›„:

brew tap homebrew/dupes
brew install libiconv
brew link libiconv --force
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local

๊ทธ๋ฆฌ๊ณ  @Reinmar ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ•˜์—ฌ StackOverflow ์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ์ฐพ์•˜๊ณ  ์—ฌ๊ธฐ์—์„œ ๋‹ค๋ฅธ ์ œ์•ˆ๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 sudo gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

๊ทธ๊ฒƒ์€ ๋งˆ์นจ๋‚ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋ผ๊ฑด๋Œ€ ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์„ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค @Reinmar . ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ์ด์œ ๋Š” _[ Apple์˜ ํ์‡„๋œ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์–ธ๊ธ‰]_์ž…๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง‘์—์„œ ๋งŒ๋“  ์–‘์กฐ์žฅ์„ ์ฐข์–ด์•ผํ–ˆ๊ณ  ๋ชจ๋“  ์–‘์กฐ์žฅ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์„ค์น˜ํ•œ ๋‹ค์Œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@doublerebel xcode๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ xcode-select๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋‹น์‹ ์ด ํ•œ ์ผ์€ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค ...

ํ˜„์žฌ ๋ฒ„์ „์˜ homebrew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ @lamont-granquist๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์˜ ์•ฝ๊ฐ„ ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

brew tap homebrew/dupes
brew install libiconv
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local/opt/libiconv

์•„๋‹ˆ brew link --force libiconv ...

๊ทธ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค @jacobvosmaer , ๋ฌธ์„œ๋Š” ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(์•„๋งˆ๋„ -v 1.6.3.1์„ ์‚ญ์ œํ•˜์ง€๋งŒ)

๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์ง€๊ธˆ์€ ๋‹ค๋ฅธ ์ฝ”๋”ฉ์œผ๋กœ ์ธํ•ด ์‚ฐ๋งŒ ํ•ด์กŒ์Šต๋‹ˆ๋‹ค ...

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•˜๋ฃจ ์ข…์ผ ์ž‘์—…ํ•œ ํ›„ ์œ„์˜ @doublerebel ์†”๋ฃจ์…˜์ด ๊ฐ€์žฅ ๋จผ์ € ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ์„ ์–ธ๊ธ‰ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋œ ์ง€์นจ ๋ณด๊ธฐ: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

์ด๊ฒƒ์€ Xcode 5.1.1 ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

์—…๋ฐ์ดํŠธ๋œ ์ง€์นจ ๋ณด๊ธฐ: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

๋˜ํ•œ Xcode 5.1.1์ด ์„ค์น˜(๋ฐ/๋˜๋Š” ์žฌ์„ค์น˜)๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ ๋‹ค์Œ "Xcode์šฉ ๋ช…๋ น์ค„ ๋„๊ตฌ"๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. https://developer.apple.com/downloads/

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

Mac OSX ์—…๋ฐ์ดํŠธ ๋ฐ ๋ณต์›์€ ์–ด๋–ค ์ด์œ ๋กœ Xcode์™€ homebrew๋ฅผ ํ๊ธฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ /usr/local/include์— ๊ฐ•์ œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค /usr/local/opt/libiconv๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์„ ๋” ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

@lamont-granquist ์†”๋ฃจ์…˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ ์šฉํ–ˆ๊ณ  ๋‹น์‹ ์˜ ๊ฒƒ์ด ๋งˆ์นจ๋‚ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

'brew uninstall libxml2 libxslt'๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ 'sudo gem install nokogiri'๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

RVM์„ ์‚ฌ์šฉํ•˜๊ณ  ์ƒˆ ๋ณด์„ ์„ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋™์•ˆ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

brew uninstall libiconv
brew install libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

@lamont-granquist ์ˆ˜์ •์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค.

@lamont-granquist @ericbrooke ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์ฃฝ์˜€๋‹ค.

ํŽธ์ง‘: ๋” ๊ฐ„๋‹จํ•œ ์ง€์นจ: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -54091434

๋”ฐ๋ผ์„œ ์ด ๋‹ต๋ณ€์— ๋Œ€ํ•œ stackoverflow ์งˆ๋ฌธ์˜ ์ข‹์€ ๋ถ€๋ถ„์„ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์‹คํ–‰ํ•˜์—ฌ ์ตœ์‹  Xcode ๋ฐ Xcode ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค(๋Œ€ํ™” ์ƒ์ž์—์„œ 'Xcode ๊ฐ€์ ธ์˜ค๊ธฐ' ์„ ํƒ).

sudo xcode-select --install

๊ทธ๋Ÿฐ ๋‹ค์Œ homebrew์—์„œ libiconv๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

brew tap homebrew/dupes
brew update
brew uninstall libiconv
brew install libiconv

nokogiri ์„ค์น˜๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

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

10.9 + homebrew์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์›ํ•ฉ๋‹ˆ๋‹ค ^^

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

-ํฌ๋ฆฌ์Šค

2014๋…„ 8์›” 28์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 4์‹œ 40๋ถ„, lamont-granquist [email protected]
์ผ๋‹ค:

์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์›ํ•ฉ๋‹ˆ๋‹ค ^^

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53794057
.

๊ถ๊ธˆํ•ด์„œ brew uninstall libiconv ์€? ์–ด๋–ป๊ฒŒ ๋“  libiconv๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

@knu ๋„ค, Mac OsX๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๊ณ  MacPorts๊ฐ€ ์•„๋‹Œ Homebrew ๋ฅผ ํ†ตํ•ด libiconv๋ฅผ ์„ค์น˜ํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. brew๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์— brew๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋‹ค์Œ ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]
  brew pin/unpin [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | config]

Brewing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  open https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook

Further help:
  man brew
  brew home

homebrew๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

brew list

libiconv๋ฅผ ํฌํ•จํ•˜์—ฌ ์„ค์น˜ํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

@ericbrooke ๋‚ด ๋ง์€, brew tap homebrew/dupes brew uninstall libiconv ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์š”์ ์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. libiconv๋Š” ํ‘œ์ค€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์—†๊ธฐ ๋•Œ๋ฌธ์— ์†์ž„์ˆ˜๋ฅผ ํƒญํ•œ ํ›„์—๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™ˆ๋ธŒ๋ฅ˜ ์„ค์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ๋“  ์†์ƒ๋œ ๊ฒฝ์šฐ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ "dupes"์— libiconv๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด iconv๋Š” brew๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” OS X+Xcode์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ Homebrew๋Š” /usr/{include,lib} ์•„๋ž˜์— ์•„๋ฌด ๊ฒƒ๋„ ๊ฑด๋“œ๋ฆฌ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋งž์ฃ ? ์•„๋‹ˆ๋ฉด brew๋ฅผ ํ†ตํ•ด libiconv๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ ์†์ƒ๋œ ํ•ญ๋ชฉ์„ ๋ณต๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๊นŒ?

๋ฐ”๋‹๋ผ Mountain Lion+Xcode+Command Line Tools๊ฐ€ ์„ค์น˜๋œ ์ƒˆ๋กœ์šด MacBook Pro์—๋Š” /usr/include/iconv.h ๋ฐ /usr/lib/libconv.so๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ๋“ค์ด ๋ถ€์กฑํ•œ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@lamont-granquist ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ๋‚˜์—ดํ•œ ๊ฒƒ์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์— ๋Œ€ํ•œ ๊ถŒํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
/Library/Ruby/Gems/2.0.0 ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ๋‚ด rvm์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„ ํ›„์— ์„ค์น˜๋˜์–ด ๋ฒˆ๋“ค ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
rvm ์„ค์น˜ 2.1.2
rvm ์‚ฌ์šฉ 2.1.2
๋ณด์„ ์—…๋ฐ์ดํŠธ --์‹œ์Šคํ…œ

@knu ๋„ค, O/S๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜ ํƒ€์ž„๋จธ์‹ ์—์„œ ๋ณต์›ํ•  ๋•Œ๋งˆ๋‹ค ํ™ˆ๋ธŒ๋ฅ˜๋ฅผ ํ๊ธฐํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ง€์‹œ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋น„๊ด€์ ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ •์ƒ์ ์ธ ๊นจ๋—ํ•œ xcode ์„ค์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  libiconv๊ฐ€ homebrew์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ๋งˆ์ง€๋ง‰ gem install ๋ช…๋ น๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ /usr/local/include/iconv.h๋Š” #define iconv_open์„ libiconv_open์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์–ด๋–ค ์ด์œ ๋กœ clang์€ /usr/include๋ฅผ ํ†ตํ•ด /usr/local/include์— ์žˆ๋Š” ํ™ˆ๋ธŒ๋ฅ˜ ํ—ค๋” ํŒŒ์ผ์„ ์„ ํƒํ•œ ๋‹ค์Œ ๋งํฌ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. /usr/lib/libiconv.dylib์— ๋Œ€ํ•ด. ํŠธ๋ฆญ์€ libiconv๋ฅผ ๊ฐ•์ œ ์—ฐ๊ฒฐํ•˜์—ฌ ์ƒ์„ฑ๋œ iconv.h ํ—ค๋” ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

TL;DR: ์ด ๋ฌธ์ œ(๋‚ด ๋ฌธ์ œ ํฌํ•จ)๋ฅผ '์ˆ˜์ •'ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์นจ์ด ๋ชจ๋“  ๊ฒƒ์„ ์•…ํ™”์‹œํ‚ต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Mac ์„ค์น˜๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ตœ์‹  ์ง€์นจ:

Xcode์™€ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ /usr/include/iconv.h ํ—ค๋” ํŒŒ์ผ์ด ์—†๋Š” ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ™” ์ƒ์ž์—์„œ 'Xcode ๊ฐ€์ ธ์˜ค๊ธฐ'๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

sudo xcode-select --install

์˜ค๋ž˜๋œ ๊ฒฝ์šฐ(๊ทธ๋ฆฌ๊ณ  homebrew์˜ libiconv๊ฐ€ ์˜ค๋ž˜ ์ „์— ์„ค์น˜๋œ ๊ฒฝ์šฐ) homebrew ๋ฐ libiconv๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ homebrew libiconv์— ๋Œ€ํ•ด ๋งํฌํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ์™„์ „ํžˆ ์„ ํƒ ์‚ฌํ•ญ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv

libiconv๋ฅผ ์—ฐ๊ฒฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์‹œ์Šคํ…œ libiconv๋ฅผ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ด๋ ‡๊ฒŒ ํ•˜๋ฉด '๊ทธ๋Ÿฐ ํ†ต์ด ์—†์Œ'์ด ํ‘œ์‹œ๋˜๊ณ  ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋Œ์•„๊ฐ€์„œ homebrew ๋ฐ libiconv๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค):

brew unlink libiconv

๋นŒ๋“œ ๋…ธ์ฝ”๊ธฐ๋ฆฌ:

gem install nokogiri

@lamont-granquist ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!

@lamont-granquist Dunno ์ด์œ , ํ•˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์—์„œ gem install nokogiri ๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„:

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv
brew unlink libiconv

gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋„์›€์ด๋œ๋‹ค๋ฉด rvm๊ณผ ํ•จ๊ป˜ 10.9์— ์žˆ์Šต๋‹ˆ๋‹ค.

@lamont-granquist ํ›Œ๋ฅญํ•œ ์กฐ์‚ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ณ  ์ด์— ๋Œ€ํ•œ "์ˆ˜์ •"์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

@SeanWangDev ์–ด๋”˜๊ฐ€์— ๋‹ค๋ฅธ iconv.h๊ฐ€ ์žˆ์–ด ๋จผ์ € ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Homebrew ๋Œ€์‹  MacPorts๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๋ ‡๊ฒŒ ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์— ํ•˜๋‚˜ ์žˆ๋‹ค

/usr/local/Cellar/libiconv/1.14/include/iconv.h

๋‹ค๋ฅธ ํ•˜๋‚˜

/usr/include/iconv.h

์ตœ์‹  ๋ฒ„์ „์€ ์ด์ „ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
@lamont-granquist ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

/usr/include/iconv.h๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. Xcode์˜ ์ผ๋ถ€์ด๊ณ  ์ „์ž๋Š” 'Cellar'์— ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ์ž์ž‘๊ณก์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. /opt/local/include ๋˜๋Š” ๊ธฐํƒ€ ํ•ญ๋ชฉ์— ์•„๋ฌด ๊ฒƒ๋„ ์—†์œผ๋ฉด /usr/lib/libiconv.dylib๊ฐ€ ์–ด๋–ป๊ฒŒ๋“  ์†์ƒ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@lamont-granquist ์ด๊ฒƒ์€ ์ด์ œ ๋‚ด ๊นŠ์ด์—์„œ ์กฐ๊ธˆ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. libiconv.dylib๊ฐ€ ์†์ƒ๋˜์—ˆ์Œ์„ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
ls -al /usr/lib/libiconv* ํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

xxxx  1 xxx  xxx       16 10  5  2013 /usr/lib/libiconv.2.4.0.dylib -> libiconv.2.dylib
xxxx  1 xxx  xxx  2088992 10  5  2013 /usr/lib/libiconv.2.dylib
xxxx  1 xxx  xxx       20 10  5  2013 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib

์˜ˆ, ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

% ls -al /usr/lib/libiconv*
lrwxr-xr-x  1 root  wheel       16 Feb 26  2014 /usr/lib/libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2088992 Feb 26  2014 /usr/lib/libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Feb 26  2014 /usr/lib/libiconv.dylib@ -> libiconv.2.4.0.dylib

/opt/local/lib/libiconv.dylib ๋˜๋Š” /opt/local/include/iconv.h ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@lamont-granquist
์•„๋‹ˆ์š”, /opt/ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

-r--r--r--+ 1 User  admin  1052128  9  4 11:30 /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib
-rw-r--r--+ 1 User  admin  1658  9  4 11:22 /usr/local/Library/Taps/homebrew/homebrew-dupes/libiconv.rb
-r-xr-xr-x  1 root  wheel  2088992 10  5  2013 /usr/lib/libiconv.2.dylib

iconv.h ํŒŒ์ผ์€ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

/usr/local/Cellar/libiconv/1.14/include/iconv.h
/usr/include/iconv.h

์•„๋‹ˆ, ๋ชจ๋‘ ๋ฉ‹์ง€๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ํ•œ ๋‹ค๋ฅธ ์ธ์ˆ˜์—†์ด 'nokogiri๋ฅผ ๋ณด์„ ์„ค์น˜'ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค....

gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local ๊ฐ€ ์ €์—๊ฒŒ ์ž˜ ๋งž์•˜์Œ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ bundle config build.nokogiril --with-iconv-dir=/usr/local ๋ฅผ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

@lamont-granquist ์˜ˆ, ์ด์ œ gem install nokogiri ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์กฐ๊ฑด์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” nokogiri๊ฐ€ ์ด๋ฏธ 'gem install nokogiri --with-iconv-dir=/usr/local/opt/libiconv'์— ์˜ํ•ด ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” nokogiri๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ 'gem install nokogiri'๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
'gem install nokogiri --with-iconv-dir=/usr/local/opt/libiconv'๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ libiconv.dylib ๋˜๋Š” iconv.h ์™€ ๊ฐ™์€ ํŒŒ์ผ์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@SeanWangDev :+1:

OS X 10.9.4 ๋งค๋ฒ„๋ฆญ์Šค.
๋„์™€์ฃผ์„ธ์š”. ๋‚˜๋Š” ์œ„์˜ ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ๋ˆ„๊ตฌ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ธ์ž๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์—†๋Š” gem install nokogiri์— ์Œ“์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

$ gem install nokogiri
๋„ค์ดํ‹ฐ๋ธŒ ํ™•์žฅ ๋นŒ๋“œ. ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...
ํŒจํ‚ค์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ nokogiri ๋นŒ๋“œ.
์˜ค๋ฅ˜: nokogiri ์„ค์น˜ ์˜ค๋ฅ˜:
์˜ค๋ฅ˜: gem ๊ธฐ๋ณธ ํ™•์žฅ์„ ๋นŒ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb

ํŒจํ‚ค์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ nokogiri ๋นŒ๋“œ.
iconv.h ํ™•์ธ ์ค‘... * extconf.rb ์‹คํŒจ *
์–ด๋–ค ์ด์œ ๋กœ Makefile์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ถ€์กฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ/๋˜๋Š” ํ—ค๋”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ mkmf.log ํŒŒ์ผ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‹น์‹ ์€ ํ•  ์ˆ˜์žˆ๋‹ค
๊ตฌ์„ฑ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ณต๋œ ๊ตฌ์„ฑ ์˜ต์…˜:
--with-opt-dir
--opt-dir ์—†์ด
--์˜ต์…˜ ํฌํ•จ ํฌํ•จ
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--make-prog ํฌํ•จ
--make-prog ์—†์ด
--srcdir=.
--curdir
--ruby=/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby
--๋•๋‹ค
--๊นจ๋—ํ•œ
--use-system-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
--ํ™œ์„ฑํ™”-์ •์ 
--disable-์ •์ 
--with-zlib-dir
--without-zlib-dir
--with-zlib-include
--without-zlib-include=${zlib-dir}/include
--with-zlib-lib
--without-zlib-lib=${zlib-dir}/lib
--enable-๊ต์ฐจ ๋นŒ๋“œ
--disable-ํฌ๋กœ์Šค ๋นŒ๋“œ
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:434:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:565:in try_cpp'
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1044:in check_for์˜ block in have_header' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:895:in ๋ธ”๋ก์—์„œ'
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in block (2 levels) in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in ์—ด๊ธฐ'์—์„œ
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in block in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in ์—ด๊ธฐ'์—์„œ
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:336:in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:894:in checking_for'์—์„œ
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1043:in have_header' from extconf.rb:103:in have_iconv?'
extconf.rb:148:in block (2 levels) in iconv_prefix' from extconf.rb:90:in preserving_globals'
extconf.rb:143:in block in iconv_prefix' from extconf.rb:120:in each_iconv_idir'
extconf.rb:137:in iconv_prefix' from extconf.rb:428:in ๋ธ”๋ก์—์„œ

'
extconf.rb:161: block in process_recipe' from extconf.rb:154:in ํƒญ์—์„œ '
extconf.rb:154: process_recipe' from extconf.rb:423:in ์—์„œ
'

Gem ํŒŒ์ผ์€ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด /usr/local/rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.3.1์— ์„ค์น˜๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
/usr/local/rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out์— ๊ธฐ๋ก๋œ ๊ฒฐ๊ณผ

๋‹ค์Œ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

% ls -la /usr/include/iconv.h
-rw-r--r--  1 root  wheel  7981 Jul 29 15:32 /usr/include/iconv.h
% ls -la /usr/lib/libiconv.*
lrwxr-xr-x  1 root  wheel       16 Feb 26  2014 /usr/lib/libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2088992 Feb 26  2014 /usr/lib/libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Feb 26  2014 /usr/lib/libiconv.dylib@ -> libiconv.2.4.0.dylib

๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ sudo xcode-select --install ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Apple ๊ฐœ๋ฐœ์ž ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜์—ฌ ํ•ด๋‹น ํŒŒ์ผ์ด ์„ค์น˜๋  ๋•Œ๊นŒ์ง€ xcode ๋ฐ xcode ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ homebrew๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ homebrew ๋ฐ unlink libiconv๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew unlink libiconv
brew install libiconv

/usr/local/include/iconv.h๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

% ls -la /usr/local/include/iconv.h
ls: /usr/local/include/iconv.h: No such file or directory

๋˜ํ•œ /opt/local/include/iconv.h๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

% ls -la  /opt/local/include/iconv.h
ls: /opt/local/include/iconv.h: No such file or directory

ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด macports์—์„œ iconv๋ฅผ ์„ค์น˜ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ด ํŒŒ์ผ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹œ๋„:

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

(์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ์ฐพ์œผ๋ฉด ์ค‘์ง€)

๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์ด ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ:

brew link --force libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local

๊ฑฐ๊ธฐ์— ๋ญ”๊ฐ€๊ฐ€ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@ lamont-granquist: +1:

@lamont-granquist ์ง€์‹œํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํ™ฉ์„ ํŒŒ์•…ํ•˜๊ณ  ์ˆ˜์ • ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๋‚ด Mac์—์„œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ์žฌ์ƒ์‚ฐ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ธ€์Ž„, ๋‚˜๋Š”์ด MBP๋ฅผ 3 ๋…„ ๋™์•ˆ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ  2 ๊ฐœ์˜ OS ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ์ตœ์†Œ 3 ๊ฐœ์˜ TM ๋ณต์› ํ›„์— /usr/include/iconv.h๊ฐ€ ์–ด๋–ป๊ฒŒ ๋“  ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ํŒŒ์ผ์„ ํ•ต์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์€ xcode์™€ ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ ์‚ฌ๋žŒ๋“ค์ด ์ œ์•ˆํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ 'brew install libiconv'๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์—„์ฒญ๋‚œ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ๋”๋ผ๋„ /usr/local/include/iconv.h์— ์„ค์น˜๋˜๋„๋ก 'brew link libiconv --force'์ž…๋‹ˆ๋‹ค. ' ๋ฐ 'brew link libiconv'๋Š” ์ด๊ฒƒ์ด ๋‚˜์œ ์ƒ๊ฐ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” /usr/lib/libiconv.dylib ์‹œ์Šคํ…œ์„ ์„ ํƒํ•˜๋Š” ๋™์•ˆ iconv.h๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ณ  iconv_open() ๋Œ€ libiconv_open()์— ๋Œ€ํ•ด ์ฆ‰์‹œ ์ถฉ๋Œ์ด ์žˆ๊ณ  ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ์— ์‹คํŒจํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „.

๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์— ๊ณ ์น  ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์‹ค์ œ๋กœ ์šด์˜ ์ฒด์ œ๋ฅผ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค๊ณ  ๋” ๊นจ๋—ํ•œ ํ˜•ํƒœ๋กœ ๋˜๋Œ๋ ค์•ผ ํ•˜๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ํ•œ ๊ฐ€์ง€ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์ด nokogiri์˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด MacPorts๊ฐ€ ์„ค์น˜๋œ /opt/local/include/iconv.h ํŒŒ์ผ์„ ์ฐพ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ €๋Š” MacPorts๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋””๋ฒ„๊น…ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ homebrew์— iconv.h๊ฐ€ /usr/local/include์— ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. nokogiri๊ฐ€ ๊ทธ ์ผ์„ ๋ฉˆ์ถ”๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด MacPorts์—์„œ libiconv๋ฅผ ์„ค์น˜ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

$ ls -la /usr/include/iconv.h

-rw-r--r-- 1 ๋ฃจํŠธ ํœ  7981 9์›” 11์ผ 11:32 /usr/include/iconv.h

ls -la /usr/lib/libiconv.*
lrwxr-xr-x 1 ๋ฃจํŠธ ํœ  16 Sep 11 01:03 /usr/lib/libiconv.2.4.0.dylib -> libiconv.2.dylib
-r-xr-xr-x 1 ๋ฃจํŠธ ํœ  2088992 Sep 11 01:02 /usr/lib/libiconv.2.dylib
lrwxr-xr-x 1 ๋ฃจํŠธ ํœ  20 Sep 11 01:03 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib

์–‘์กฐ ์—…๋ฐ์ดํŠธ
Homebrew๋ฅผ 45e07c0e์—์„œ e0dee399๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
==> ์—…๋ฐ์ดํŠธ๋œ ๊ณต์‹
android-ndk go lockrun pazpar2
์•„ํŒŒ์น˜ ์ŠคํŒŒํฌ h2 mpd pktanon
Gearman juju-quickstart ossp-uuid

$ ๋ธŒ๋ฃจ ํƒญ ํ™ˆ๋ธŒ๋ฃจ/๋“€ํ”„
๊ฒฝ๊ณ : ์ด๋ฏธ ํƒญํ–ˆ์Šต๋‹ˆ๋‹ค!

$ ์–‘์กฐ ์ œ๊ฑฐ libiconv

/usr/local/Cellar/libiconv/1.13.1 ์ œ๊ฑฐ ์ค‘...

์˜ค๋ฅ˜: ๊ถŒํ•œ ๊ฑฐ๋ถ€๋จ - /usr/local/Cellar/libiconv/1.13.1/bin/iconv

๊ทธ ๋‹จ๊ณ„์—์„œ ๊ถŒํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

/usr/local์—์„œ ๋ชจ๋“  ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ์ด ๋ฌด์—‡์ด๋“  ๋ฃจํŠธ๊ฐ€ /usr/local ์•„๋ž˜์˜ homebrew ํŒŒ์ผ์„ ์†Œ์œ ํ•˜์ง€ ์•Š๋„๋ก perms๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ id ๋ช…๋ น์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” 'lamont'์ž…๋‹ˆ๋‹ค.

% id -nu
lamont

ํŒŒ๋งˆ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

% sudo chown -R lamont /usr/local

ํ•˜์ง€๋งŒ ๊ทธ ๋ช…๋ น์— ๋Œ€ํ•ด ์ •๋ง ์ฃผ์˜ํ•˜๊ณ  ๋ชจ๋“  ์ฒ ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€, ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์–ป์—ˆ๋Š”์ง€ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@lamont-granquist Homebrew์˜ libiconv ํŒจํ‚ค์ง€๋Š” /usr/local/include/iconv.h๋ฅผ ๋„ฃ๋Š” ๋™์•ˆ /usr/local/lib/libiconv.dylib๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ /usr/local/include/iconv.h๊ฐ€ ์„ ํƒ๋˜๋ฉด ๋งํฌํ•  ๋•Œ /usr/local/lib/libiconv.dylib๊ฐ€ ์—†๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ -I/usr/local/include๊ฐ€ CPPFLAGS์— ์žˆ์„ ๋•Œ -L/usr/local/lib๊ฐ€ LDFLAGS์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ํŒŒ๊ดด์™€ ๊ด€๋ จํ•˜์—ฌ Nokogiri๋Š” OS X์—์„œ /usr/include/iconv.h๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ์ตœ์†Œํ•œ ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ (์žฌ)์„ค์น˜ํ•˜๋„๋ก ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–‘์กฐ ํ•ด์ œ libiconv
์˜ค๋ฅ˜: ํ•ด๋‹น ํ†ต ์—†์Œ: /usr/local/Cellar/libiconv

๋‚˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ž๋‹ค. ์„ฑ๊ณต ์—†์Œ

@knu ๋„ค, ๋ดค๋Š”๋ฐ mkmf.rb์˜ ๊ตฌ๋ถˆ๊ตฌ๋ถˆํ•œ ๋ฏธ๋กœ์—์„œ ๊ธธ์„ ์žƒ์€ ๊ฒƒ ๊ฐ™์•„์š”.

@Ilovebarca rm -f /usr/local/include/iconv.h ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@lamont-granquist
์•„๋‹ˆ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. BTW ์ €๋ฅผ ๋„์™€์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฑด ๋ฏธ์นœ ์ง“์ด์•ผ, ๋‚˜๋Š” Mac์—์„œ ์ฒ˜์Œ์ด๊ณ  ๊ทธ๊ฒƒ์„ ์‹ซ์–ดํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์–ด :))

iconv ๊ฐ์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ๋ถ€ ๋ณ€๊ฒฝํ•˜๊ณ  OS X์—์„œ ๋ˆ„๋ฝ๋œ /usr/include/iconv.h์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ extconf.rb์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—… ์ด๋ฉฐ ํ…Œ์Šคํ„ฐ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

๋‚˜๋Š” github ๋ฌธ์ œ, ์Šคํƒ ๊ตํ™˜, Google ๋“ฑ์„ ๊ฒช์—ˆ๊ณ  ์ง€๊ธˆ๊นŒ์ง€ ์ž‘๋™ํ•œ ์œ ์ผํ•œ ๊ฒƒ์€ @lamont-granquist ์ œ์•ˆ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •:

OSX 10.9.5
rbenv

๋‚˜๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์–ด๋–ป๊ฒŒ๋“  OS X ํ™˜๊ฒฝ์„ ๋ง๊ฐ€๋œจ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ฆฌ์ง€๋„ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” Xcode ๋ช…๋ น์ค„ ๋„๊ตฌ๊ฐ€ ๋ˆ„๋ฝ๋˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Homebrew์ž…๋‹ˆ๋‹ค. nokogiri์˜ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋Š” ๋นŒ๋“œ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์ด๋Ÿฌํ•œ ํŒŒ์†์„ ๊ฐ์ง€ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์›ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@lamont-granquist์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ผ์ฃผ์ผ ๋™์•ˆ ์ด ๋ฌธ์ œ๋กœ ๊ณ ์ƒํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋งˆ์นจ๋‚ด libiconv๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค...์•ˆ๋„์ž…๋‹ˆ๋‹ค!!!

@jomz ๋Š” osx 10.10์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค:+1:

๋ฐ”๋กœ ์˜ค๋Š˜ 10.10์„ ์ƒˆ๋กœ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ:

xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew install ruby
source /etc/profile
gem install nokogiri

์ด๊ฒƒ์€ ๋ฃจ๋น„ ๋ฒ„์ „ 2.1.5p273๊ณผ nokogiri 1.6.4.1์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ homebrew ๋ฐ rubygems๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋ฒ„์ „์„ ๊ฐ•์ œ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

homebrew ๋ฐ ruby๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋œ 10.9์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ 10.10 ์„ค์น˜์—์„œ:

brew install libxml2 libxslt
gem install nokogiri -- --use-system-libraries

libxml2 ๋ฐ/๋˜๋Š” libxslt๋ฅผ ๋‹ค์‹œ/์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๊ฒƒ์ด ์ €์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ์—…๋ฐ์ดํŠธ๋œ ์„ค์น˜ ์ž์Šต์„œ์—์„œ ์ด๊ฒƒ์„ ์บก์ฒ˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

http://www.nokogiri.org/tutorials/installing_nokogiri.html

๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŠœํ† ๋ฆฌ์–ผ ๋งํฌ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! "๋น„ํ‘œ์ค€ libxml2 / libxslt ์„ค์น˜ ์‚ฌ์šฉ"์— ์„ค๋ช…๋œ ๋Œ€๋กœ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•  ๋•Œ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (OS X 10.6.8์˜ /usr/bin์€ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋น„ํ‘œ์ค€ ์œ„์น˜๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.)

ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„ ๋ช…๋ น which xml2-config ๋ฐ which xslt-config ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ œ์•ˆํ•˜๊ธฐ ์œ„ํ•ด ํŠœํ† ๋ฆฌ์–ผ์„ ์—…๋ฐ์ดํŠธํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰