ubuntu8.1.0 Server Editionに、apt-get install rubyで、rubyをインストールしました。

バージョンが、
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
で、最新のパッチが当てられていません。パッチを当てたいのですが、apt-getでインストールしたRubyに対する正しいパッチの当て方をご存じでしょうか?
よろしくおねがいします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/06/30 09:45:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:znz No.1

回答回数193ベストアンサー獲得回数25

ポイント60pt

本当に必要なパッチが当たっていないのでしょうか?

パッケージに独自に変更を加えるとセキュリティアップデートなどで更新されたときにまたやり直す必要があると思うので、あまりおすすめはしませんが、必要なパッチがわかっていて、ちゃんと deb パッケージにしたいのなら、以下のような手順になります。

  • apt-get source ruby1.8 でソースをとってくる。
  • sudo apt-get build-dep ruby1.8 でパッケージのビルドに必要なパッケージをインストールする。

以後 ruby1.8-1.8.7.72 ディレクトリの中での作業です。

  • dpatch-edit-patch パッチ名
  • dpatch 管理の他のパッチが当たった状態になっているので必要なパッチを追加で当てる。
  • exit で dpatch-edit-patch で起動されたシェルを抜ける。
  • debian/patches/00list に新しいパッチを追加する。
  • dch -i "add パッチ名" などで debian/changelog にエントリを追加する。
  • debuild -uc -us などでパッケージをビルドする。
  • 出来たパッケージを dpkg -i ../*.deb などでインストールする。

dpatch の使い方は http://www.netfort.gr.jp/~dancer/column/dpatch.html.ja などを参照してください。


単純に *.rb ファイルの変更だけなどなら、 /usr/lib/ruby/1.8 の中のファイルを無理矢理置き換えてしまうと言う手もあります。

パッケージ管理のファイルを無理矢理書き換えることになるので、パッケージのバージョンアップなどの時には元に戻ってしまいますが、自分でちゃんと管理できるのなら手軽です。

id:keisuke_yamane

znzさん、わかりやすい回答を有り難うございました。

rubyの脆弱性に対するパッチであるため、なるべく早く上げたかったのですが、公開されているdebパッケージはなかなか更新が追いついていないようです。

確かに、*.rbファイルを強制変更で済むのであれば、楽ですね。

ちょっと調べてみます。

2009/06/30 09:45:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません