Hatena::Grouplinux2

Going My Linux Way このページをアンテナに追加 RSSフィード

2012年04月20日(金)

Ubuntu 12.04/11.10 での Ruby 1.9.3 コンパイル

00:51 | Ubuntu 12.04/11.10 での Ruby 1.9.3 コンパイル - Going My Linux Way を含むブックマーク はてなブックマーク - Ubuntu 12.04/11.10 での Ruby 1.9.3 コンパイル - Going My Linux Way Ubuntu 12.04/11.10 での Ruby 1.9.3 コンパイル - Going My Linux Way のブックマークコメント

Ubuntu 12.04/11.10 での Ruby 1.9.3-p194 コンパイルのメモです。

----

以下の拡張ライブラリUbuntu パッケージに依存します。

拡張ライブラリ依存する Ubuntu パッケージ
curseslibncurses5-dev
dbm, gdbmlibgdbm-dev
openssl, net/httpslibssl-dev
psychlibyaml-dev
readlinelibreadline-dev
tktk-dev
yamllibyaml-dev(Warning がでる)
zlibzlib1g-dev

(※) 次のものは調べてません。

- win32/registry

- win32/resolv

- Win32API

- win32ole

----

ビルド

ディレクトリなどは環境に合わせて読み替えてください。

$ yes | sudo apt-get install libncurses5-dev \
                             libgdbm-dev     \
                             libssl-dev      \
                             libyaml-dev     \
                             libreadline-dev \
                             tk-dev          \
                             zlib1g-dev

$ cd ~/build/
$ tar jxvf ~/store/ruby-1.9.3-p194.tar.bz2

$ cd ruby-1.9.3-p194/
$ ./configure && make && sudo make install 2>&1 | tee make.log

$ make clean

----

インストールされるもの(ruby/ は /usr/local/ などに読み替えてください)

$ ls ruby/
bin/  include/  lib/  share/
$ ls ruby/bin/
erb*  gem*  irb*  rake*  rdoc*  ri*  ruby*  testrb*
$ ls ruby/include/
ruby-1.9.1/
$ ls ruby/lib/
libruby-static.a  pkgconfig/  ruby/
$ ls ruby/lib/pkgconfig/
ruby-1.9.pc
$ ls ruby/share/
doc/  man/  ri/
$ ls ruby/share/doc/
ruby/
$ ls ruby/share/man/
man1/
$ ls ruby/share/man/man1/
erb.1  irb.1  rake.1  ri.1  ruby.1

エラー例

依存するライブラリがないままコンパイルした場合の、拡張ライブラリのエラーの例です。(実行時 の LoadError)

$ irb -r zlib
/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require':LoadError: cannot load such file -- zlib

zlib および psych の依存性を解決しない場合、以下のエラーがでます。

$ sudo gem update --system
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
ERROR:  Loading command: update (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::UpdateCommand