3

Ruby on RailsのWebサイトでは、LinuxでソースからRubyをインストールすることを推奨しています。Ubuntu9のクリーンインストールでソースからrubyをビルドする際にCライブラリの問題がいくつか発生しました。

Ubuntuへのrubyのインストールについてネット上で見つけたすべての手順には、事前にパッケージ化された(.debベースの)rubyの使用が含まれています。明らかに、これは人々が推奨するものではありません。

rubyのクリーンソースビルドを実行したとき、zlib拡張機能が機能しなかったためにRubygemsをインストールできなかったことがわかりました。

2つの問題が発生します。

1)zlib拡張機能がビルドされていません。

解決:

i)rubyソースのextnディレクトリ内のセットアップファイルでzlibのコメントが解除されていることを確認します。

ii)これらのzlibubuntuパッケージがインストールされていることを確認します。

aptitude install zlib1g
aptitude install zlib1g-dbg
aptitude install zlib1g-dev
aptitude install zlibc

2)上記の問題1を修正した後(そしてrubyのクリーンな再構築を行った後)、拡張機能のロードに失敗したため、zlibはまだ機能しません。

これを実行して出力「false」を取得すると、モジュールのロードに失敗することがわかります。

puts require 'zlib'

これは、extnディレクトリ内の他の任意の数のC拡張機能で発生することを確認したため、これらの拡張機能では、zlib固有のものよりも一般的な問題のようです。

要約する:

  • 私のrubyのビルドでは、ruby固有のC zlib拡張機能が見つかりましたが、zlibモジュールのロードに失敗しました。
  • この動作は、/extn内の他の拡張機能で発生するようです。

モジュールがロードに失敗する理由を見つける方法はありますか?ある種のトレース/冗長モード?

4

3 に答える 3

5

これが、Ubuntu 11.04にruby、gems、railsをインストールするために行ったことです。

  • ソースからrubyをインストールする

  • ソースからRubyGemsをインストールする

  • zlibをインストールします。
    • sudo apt-get install zlib1g-dev
    • cd your-ruby-sources / ext / zlib
    • ルビーextconf.rb
    • 作る
    • sudo make install
  • readlineをインストールします:
    • sudo apt-get install libreadline5-dev
    • cd your-ruby-sources / ext / readline
    • ルビーextconf.rb
    • 作る
    • sudo make install
  • opensslをインストールします。
    • sudo apt-get install libssl-dev
    • cd your-ruby-sources / ext / openssl
    • ルビーextconf.rb
    • 作る
    • sudo make install
于 2011-08-19T20:04:14.970 に答える
2

私はあなたの問題が何であるかわかりません。require 'zlib'あなたはそれが戻ると言いますfalse。しかし、それはそれがうまくいったことを意味します!エラーが発生した場合は、LoadError例外が発生します。

于 2009-08-10T10:19:33.943 に答える
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
于 2009-08-09T21:21:37.690 に答える