2010-05-08

【備忘録】deltarpm の applydeltarpm

RPM の差分インストール (delta RPM, drpm) の処理について、yum のプラグイン presto にばかり目が行ってしまい、直接、差分 RPM を処理できる deltarpm パッケージがあることを知りませんでした。Google で drpm をキーワードに情報収集を続けていたことも、(インストールされているにもかかわらず)deltarpm をすぐに見つけられなかった原因のひとつかもしれません。

とにかく deltarpm パッケージの存在を知ったので、遅ればせながら試してみました。

$ rpm -q deltarpm
deltarpm-3.5-0.7.20100121git.fc13.x86_64
$ rpm -ql deltarpm
/usr/bin/applydeltarpm
/usr/bin/combinedeltarpm
/usr/bin/makedeltarpm
/usr/bin/rpmdumpheader
/usr/share/doc/deltarpm-3.5
/usr/share/doc/deltarpm-3.5/LICENSE.BSD
/usr/share/doc/deltarpm-3.5/README
/usr/share/man/man8/applydeltarpm.8.gz
/usr/share/man/man8/combinedeltarpm.8.gz
/usr/share/man/man8/makedeltarpm.8.gz
$

applydeltarpm を利用すると、差分 RPM から、新しい RPM を生成(再構成)することができます。差分 RPM を使ってインストールされたパッケージを直接アップデートすることははできません。しかし、そういうものが必要であれば、機能を組み合わせて、表面上は直接アップデートしてくれるようなツールができそうです。

man makedeltarpm の出力の一部を日本語に訳してみました。

NAME
applydeltarpm - 差分 RPM から RPM を再構成します

SYNOPSIS
applydeltarpm [-v] [-p] [-r oldrpm] deltarpm newrpm

DESCRIPTION
applydeltarpm は、バイナリの差分データを、古い RPM ファイルあるいはインス
トールされたディスク上のデータに適用して新しい RPM を生成します。古い RPM
は -r オプションで指定し、指定がない場合はディスク上のデータが使用されま
す。
-p オプションを指定すると完了率が表示され、-v オプションを指定すると、処
理状態が出力されます。

実行例を以下に示します。

$ rpm -q sawarabi-gothic-fonts
sawarabi-gothic-fonts-20100315-1.fc12.noarch
$ ls
sawarabi-gothic-fonts-20100315-1.fc12_20100430-1.fc13.noarch.drpm
$ applydeltarpm -p -v sawarabi-gothic-fonts-20100315-1.fc12_20100430-1.fc13.noar
ch.drpm sawarabi-gothic-fonts-20100430-1.fc13.noarch.rpm

reading deltarpm
applying delta
100 percent finished.
$ ls
sawarabi-gothic-fonts-20100315-1.fc12_20100430-1.fc13.noarch.drpm
sawarabi-gothic-fonts-20100430-1.fc13.noarch.rpm
$ su
パスワード:
# rpm -Uvh sawarabi-gothic-fonts-20100430-1.fc13.noarch.rpm
準備中... ########################################### [100%]
1:sawarabi-gothic-fonts ########################################### [100%]
#

deltarpm パッケージの makedeltarpm を利用すれば、差分 RPM を生成出来ます。しかしながら自分にとっては、前回紹介した presuto-utils パッケージの createdeltarpms の方が操作が簡単のように思います。使用例を以下に示しました。

$ ls
sawarabi-gothic-fonts-20100315-1.fc12.noarch.rpm
sawarabi-gothic-fonts-20100430-1.fc13.noarch.rpm
$ makedeltarpm sawarabi-gothic-fonts-20100315-1.fc12.noarch.rpm sawarabi-gothic-
fonts-20100430-1.fc13.noarch.rpm sawarabi-gothic-fonts-20100315-1.fc12_20100430-
1.fc13.noarch.drpm

$ ls
sawarabi-gothic-fonts-20100315-1.fc12.noarch.rpm
sawarabi-gothic-fonts-20100315-1.fc12_20100430-1.fc13.noarch.drpm
sawarabi-gothic-fonts-20100430-1.fc13.noarch.rpm
$

0 件のコメント: