◆ Ruby の Mechanize の使い始めさん向き解説あります ◆
- [Ruby][Mechanize] Ruby Mechanize 2.1.pre.1+
- [Ruby][Mechanize] RubyのMechanize2.0によるcookieで始まるちょっと泣けるログインできないい話
- [Ruby] Ruby の YARD(Yardoc) の @ タグ
- [Ruby][Mechanize] Ruby Mechanize 2.0 リリース
- [Ruby無関係] UbuntuのPulseAudioでコマンドから音を鳴らす
- [Ruby][Mechanize] RubyのMechanizeでのHTTPステータスとmetaリフレッシュ
- [Ruby] Rubyでテキストなプログレスバーを表示するProgressBar gem
- 【自作】RubyのMechanizeのGETにプログレスバーをつけるMechanize-ProgressBar
- [Ruby] RubyInstallerのMinGW32なRubyでのgem installでmakeが必要なとき
- [Ruby] Ruby1.9のNet::HTTPで取得した文字列はforce_encodingせざるを得ない
2010-02-23
真・$HOMEに入れたlibxml2を使うようにgem install nokogiriする方法
真ってなんら
え〜。前回の $HOMEに入れたlibxml2を使うようにgem install nokogiriする方法 が Nokogiri 1.3.1 くらいから動作しなくなりまして、困ったなと思いつつ警告だけだから騙し騙し使ってたんですが解決策いきます。
http://wiki.github.com/tenderlove/nokogiri/what-to-do-if-libxml2-is-being-a-jerk
…です。おわり。
……URLを見るとわかるかと思いますが、作者さんのオフィシャル情報ですね。
世の中そんなもんだと思います。
細かく条件変えて何度もインストールしまくって原因追求して悩んでた途中でこれ見つけた俺の青春を返せガッデム。
gem install nokogiri -- \ --with-xml2-include=libxml/parser.hが見つかるパス \ --with-xml2-lib=libxml2.soが見つかるパス \ --with-xslt-dir=libxslt/xslt.hとlibexslt/exslt.hが見つかるパス
となっております。LD がウンタラとか指定が複雑だった前回までが嘘のようです。「空っぽ」の -- は --with... オプションを始める前に必ずつけてください。これのあとに gem コマンドのオプションはつけてはいけません。
./configure --prefix=$HOME/usr/local とした場合は
gem install nokogiri -- --with-xml2-include=$HOME/usr/local/include/libxml2 --with-xml2-lib=$HOME/usr/local/lib --with-xslt-dir=$HOME/usr/local
です。XSLTの勝手インストールをしなかった場合は最後の --with-xslt-dir は書かなくても動作しそうな気がします。
libxml2 と libxslt のソースからインストール
# cd source # libxml2 と libxslt の 最新ソースを取得 wget ftp://xmlsoft.org/libxml2/LATEST_LIBXML2 wget ftp://xmlsoft.org/libxml2/LATEST_LIBXSLT # libxml2 からインストール tar xzvf LATEST_LIBXML2 cd libxml2-2.7.7/ # $HOME/usr/local/lib/libxml2.so になるようにインストールしたい ./configure --prefix=$HOME/usr/local make make install # libxslt(とlibexslt)をインストール # sudo apt-get install libgcrypt-dev tar xzvf LATEST_LIBXSLT cd libxslt-1.1.26/ ./configure --prefix=$HOME/usr/local --with-libxml-src=../libxml2-2.7.7 make make install
libxml2 はそうでもないのですが、libxslt は
- libxml2 (のソース)
- 外部ライブラリ libgcrypt-dev (RedHat 系列では libgcript-devel)
が必須です。libgcrypt-dev の本体は libgcrypt11-dev かもしれません。aptitude や yum や 各種パッケージマネージャでインストールしてください。
configure の時点で libxml2 のヘッダファイル等が必要なのですが、これは手元にある libxml2 のソースディレクトリを指定することで充当できます。(システム側に libxml2-dev などがインストールされているとそちらを見てしまうので明示的に手元を指定してください)
Python のチェックもあった気がしますが気にしないことにします。configure で詰まったら適当なライブラリとか入れてください。
gem install -V nokogiri と -V オプションつきでインストールするとバイナリビルドのときの表示が省略されません。原因究明にどうぞ。
Ruby1.9.1 の場合、rubygems1.3.5 ではディレクトリ指定が無視され rubygems1.3.6 では動作しました(なんで?)。
gem だけローカルに入れてる場合は $HOME/ruby/バージョン/gems/rubygems-update-1.3.6/lib に行って sudo ruby1.9 ./setup.rb とか sudo ruby ./setup.rb とかしてください。
検索引っかかる用警告文字列
WARNING: Nokogiri was built against LibXML version 2.6.32, but has dynamically loaded 2.7.6
あと、毎回の gem update のときに自動でオプション指定できるような方法をご存知の方いればプリーズ