質問: ubuntu8.1.0 Server Editionに、apt-get install rubyで、rubyをインストールしました。 バージョンが、 ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] で、最新のパッチが当てられていません。パッチを当てたいのですが、apt-getでインストールしたRubyに対する正しいパッチの当て方をご存じでしょうか? よろしくおねがいします。
回答: 本当に必要なパッチが当たっていないのでしょうか? パッケージに独自に変更を加えるとセキュリティアップデートなどで更新されたときにまたやり直す必要があると思うので、あまりおすすめはしませんが、必要なパッチがわかっていて、ちゃんと 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 の使い方は などを参照してください。 単純に *.rb ファイルの変更だけなどなら、 /usr/lib/ruby/1.8 の中のファイルを無理矢理置き換えてしまうと言う手もあります。 パッケージ管理のファイルを無理矢理書き換えることになるので、パッケージのバージョンアップなどの時には元に戻ってしまいますが、自分でちゃんと管理できるのなら手軽です。