rpm作成時の小ネタ (yum-builddep)

欲しいrpmが無かったりバージョンが古かったりするときにrpmを自前で作成する場合、こういうことがあるかと思います。

rpmbuild --rebuild foovar-0.0.1.src.rpm
error: Failed build dependencies:
        bzip2-devel is needed by foovar-0.0.1.i386
        sqlite2-devel >= 2.8.0 is needed by foovar-0.0.1.i386
        libedit-devel is needed by foovar-0.0.1.i386
        libtool-ltdl-devel is needed by foovar-0.0.1.i386
        libc-client-devel is needed by foovar-0.0.1.i386
        mysql-devel >= 4.1.0 is needed by foovar-0.0.1.i386
        unixODBC-devel is needed by foovar-0.0.1.i386
        net-snmp-devel is needed by foovar-0.0.1.i386
        libxslt-devel >= 1.0.18-1 is needed by foovar-0.0.1.i386
        libjpeg-devel is needed by foovar-0.0.1.i386
        xorg-x11-devel is needed by foovar-0.0.1.i386
        libmcrypt-devel is needed by foovar-0.0.1.i386
        libtidy-devel is needed by foovar-0.0.1.i386
        freetds-devel is needed by foovar-0.0.1.i386
        aspell-devel >= 0.50.0 is needed by foovar-0.0.1.i386
        recode-devel is needed by foovar-0.0.1.i386
        libicu-devel >= 3.6 is needed by foovar-0.0.1.i386</code></pre>

specファイルに記述された BuildRequires 依存パッケージの嵐!こういう時素直に

sudo yum install bzip2-devel sqlite2-devel libedit-devel libtool-ltdl-devel

でもいいんだけど、すごくめんどくさい。

そんなときに便利な yum-builddep 。 yum-utils というツール郡の中の一つです。

入っていなければインストール。

sudo yum install yum-utils

たとえば foovar-0.0.1.src.rpm というSRPMがあって、それが BuildRequires している依存パッケージをインストールするのが、下の1コマンドで完了します。

sudo yum-builddep foovar-0.0.1.src.rpm

他にも yum-utils はその名のごとく色々な便利ツールを含んでいるのですが、それはまた別で調べようかと思います。