2009-08-09 9 views
3

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の他の拡張機能で発生するようです。

モジュールが読み込まれない理由を知る方法はありますか?トレース/冗長モードのようなもの?

+0

[可能なのはなぜプロダクションで利用できないのですか?](http://stackoverflow.com/questions/1793693/why-would-yaml-be-unavailable-in-production) –

+0

実際には、もう一つの問題は複製です、これはオリジナルです。気にしないで。とにかく、これは一般的な誤解であるため、私は 'false'が何を意味するのかを説明するために' require'のRDocを要求しました:http://redmine.ruby-lang.org/issues/5210 –

答えて

2

あなたの問題は何もわかりません。 require 'zlib'falseと返されます。しかし、それはの仕事をしたことを意味します!エラーが発生した場合は、LoadError例外が発生します。

+0

Pedantic文法の提案:それはすでに「うまくいった」と働いていましたか? –

1

libzlib-rubyをインストールしましたか? Rubygemsをインストールする前に、私の典型的なUbuntuの初期化があります:

$ apt-get update 
$ apt-get dist-upgrade 
$ apt-get install build-essential -y 
$ apt-get install rsync -y 
$ apt-get install ruby ri rdoc irb ri1.8 ruby1.8-dev libzlib-ruby zlib1g libopenssl-ruby -y 
5

ここで私はUbuntu 11にルビー、宝石、レールをインストールしました。04

  • zlibのインストール

  • からRubyGemsのをインストールソースからルビーをインストールします。
    • 須藤はapt-getをあります:zlib1g-devの
    • CDあなた-ルビー・ソースをインストール/ ext/zlib
    • ruby​​ extconf.rb
    • mak電子
    • sudoはreadlineのインストール
  • インストールします
    • 須藤はapt-getをインストールのlibreadline5-devの
    • CD-あなたのルビーソース/ EXT/readlineの
    • ルビーextconf.rbは
    • make
    • sudo make install
  • インストールのopenssl:
    • 須藤はapt-getののlibssl-devの
    • CDあなた-ルビーソース/ EXT/OpenSSLが
    • ルビーextconf.rbは
    • sudoはmake installを作るインストール
関連する問題