Ruby on RailsのWebサイトでは、LinuxでソースからRubyをインストールすることを推奨しています。 Unbuntu 9をクリーンインストールしたときに、ソースからrubyをビルドする際のCライブラリの問題が多数発生しました。誰かがubuntu(できればunbuntu 9)のソースからrubyとrubygemsをインストールしようとしましたか?
ubuntuでRubyをインストールする方法について、ネットで見つけたすべての手順は、あらかじめパッケージ化された。明らかに、これはレールの人々が推奨するものではありません。
私がRubyのクリーンソースビルドを行ったとき、私はRubygemsがzlib拡張が機能しなかったのでインストールに失敗したことを発見しました。
2つの問題が発生します。
1)zlib拡張モジュールが内蔵されていません。
ソリューション:
I)のzlibはRubyのソースのEXTNディレクトリ内の設定ファイルでコメント解除されていることを確認し、
II)これらのzlibのUbuntuのパッケージがインストールされていることを確認:
aptitude install zlib1g
aptitude install zlib1g-dbg
aptitude install zlib1g-dev
aptitude install zlibc
2)上記の問題1を修正した後(そしてrubyをきれいに再構築した後)、拡張機能が読み込まれないためzlibが動作しません。あなたは、モジュールが「偽」にこれを実行し、出力を取得することにより、ロードに失敗していることがわかります
:
puts require 'zlib'
私は、これはEXTNディレクトリ内の他のC拡張の任意の数に起こるので、それが表示された観察しましたzlib固有のものよりも、これらの拡張でより一般的な問題になります。
要約すると:
- をルビーの私のビルドはルビー固有のCのzlib拡張モジュールを見つけたが、それはzlibのモジュールをロードするために失敗しました。
- この現象は/ extnの他の拡張機能で発生するようです。
モジュールが読み込まれない理由を知る方法はありますか?トレース/冗長モードのようなもの?
[可能なのはなぜプロダクションで利用できないのですか?](http://stackoverflow.com/questions/1793693/why-would-yaml-be-unavailable-in-production) –
実際には、もう一つの問題は複製です、これはオリジナルです。気にしないで。とにかく、これは一般的な誤解であるため、私は 'false'が何を意味するのかを説明するために' require'のRDocを要求しました:http://redmine.ruby-lang.org/issues/5210 –