2008年7月11日

[ruby-list:45217] Re: Debian4 GNU/LinuxとRubyGemsについて。

rubikitch@xxxxx さんは書きました:
>> ■エラー内容■
>> Debian 4 GNU/Linuxで、RubyGemsをソースからコンパイルしようとすると、
>> 以下のようなエラーが起きました。apt-getでRubyGemsをインストールすると、
>> やはり動いてくれませんでした。
>>
>> ○エラー1
>> Linux 2.6.18-6-686 #1 SMP Fri Jun 6 22:22:11 UTC 2008 i686 GNU/Linux

>> ruby 1.8.7 (2008-06-09 patchlevel 17) [i686-linux]
>>
>> # ruby setup.rb
>
> zlib拡張ライブラリがインストールされていないようです。
>
> Debian GNU/LinuxのRuby関連パッケージは変則的なのでこのような問題が起こります。
> たとえば、irbやriが別パッケージになっていてインストールされなかったりとかです。
> だからこそソースからインストールしています。

えーと、変則的といわれますが、
複数のバイナリパッケージに分かれているのは
それほどめずらしいことではありません。
分け方が好みに合わないという意見はうかがいますが。
# これでもDebian/etchにするときに議論の上で変更したんですよ ;-)

それはおきまして、
もう少し調べていただけるとよいなあと思います。

>> ruby 1.8.7 (2008-06-09 patchlevel 17) [i686-linux]

このバージョンのRubyはDebian/etchのパッケージにはありません。
よってソースからインストールされたのだと思います。
zlib.soがないのはzlibの開発環境がインストールされていない環境で
Rubyをインストールしたからではないかと思います。

>> ○エラー2
>> ruby 1.9.0 (2008-06-20 revision 17482) [i686-linux]
>> /usr/local/lib/ruby/1.9.0/rubygems/spec_fetcher.rb:1:in `require': no
>> such file to load -- zlib (LoadError)

こちらについても、/usr/localをパッケージでは使いませんから
ソースからインストールされたのだと思います。

# ついでにいいますと、Debianのパッケージのarchは
# i486-linuxになっているはずです。

(示されたバージョンによるとそうではないと思いますが)
バイナリパッケージをお使いであれば、
つまりruby1.8パッケージまたはrubyパッケージを
インストールされているのであれば

> パッケージ版のrubyならば、
> sudo apt-get install libruby1.8

これ(↑)は必要ありません。
パッケージ機能で自動的にインストールされているはずです。
また、

> sudo apt-get install libzlib-ruby
> で解決すると思います。

Debian/etchのlibruby1.8パッケージには
zlib.soが含まれていますのでこれ(↑)も必要ありません。

> RubyインタプリタとRubyGemsをソースからインストールしてしまえば、
> あとはgemでapt同様簡単にライブラリをインストールできるので。

とにかくRubyを構築するというのは多くの環境で容易だと思いますが
必要な拡張モジュールを含めて構築するためには
それなりの準備が必要になると思います。

zlib.soにはzlibの開発環境が必要とかそういったことですね
(zlibの開発環境はzlib1g-devですね)。

Debian系(Vine Linuxでも)でRubyを構築する際のヒントですが、
/etc/apt/sources.listにdeb-srcの行
(deb-src http://ftp.jp.debian.org/debian etch mainなど)
を追加し、apt-get updateを行った上で
apt-get build-dep ruby1.8を特権で実行することで
ruby1.8パッケージを構築した際に使用された
開発環境をまとめてインストールすることができます。

オプションの指定が必要なところもあるかもしれませんが
ソースからRubyを構築する場合であっても
開発環境を整える助けになると思います。おためしください。

なお、バイナリパッケージでインストールしたのにもかかわらず

>> 以下のようなエラーが起きました。apt-getでRubyGemsをインストールすると、
>> やはり動いてくれませんでした。

ということであれば、それはバイナリパッケージのバグの可能性があります。
可能ならバグ報告をしてください。

--
ay


投稿者 xml-rpc : 2008年7月11日 07:21
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75222
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。