rpm備忘録
■ コレを読むベシ http://docs.fedoraproject.org/drafts/rpm-guide-en/ ■ /etc/yum.conf はどのrpmパッケージからインストールされたものか? rpm -qf /etc/yum.conf ■ インストールされた httpd パッケージに含まれるリスト * 全ファイル rpm -ql httpd *ドキュメントのみ rpm -qd httpd * 設定ファイルのみ rpm -qc httpd * rpm パッケージ自体からやるには"p"を付ける。 rpm -qlp httpd-2.2.8-3.i386.rpm * install/uninstall時に実行されるスクリプトを表示 rpm -qp --scripts haproxy-1.3.15.2-2.fc9.i386.rpm ■ 重要ファイル /usr/lib/rpm/redhat/macros /usr/lib/rpm/macros ■ いろいろ FC9 /root/rpm/RPMS/i386# rpm -qpl haproxy-1.3.15.2-2.fc9.i386.rpm rpm -qp --scripts haproxy-1.3.15.2-2.fc9.i386.rpm rpm --showrc rpmbuild -bi --short-circuit stress.spec rpmbuild -bp stress.spec rpmbuild -ba stress.spec FC9 /root# cat .rpmmacros %_topdir /root/rpm %_tmppath %{_topdir}/tmp %debug_package %{nil} FC9 /root# find rpm -maxdepth 1 -type d rpm rpm/ROOT rpm/work rpm/SRPMS rpm/tmp rpm/BUILD rpm/SPECS rpm/SOURCES rpm/RPMS FC9 /root#
■ マクロ
specファイルの中で利用できる、マクロの定義の内容を知りたい場合、rpm --eval %マクロ名 とすることで確認できる。
FC9 /usr/lib/rpm# rpm --eval %makeinstall /usr/bin/make \ prefix=/usr \ exec_prefix=/usr \ bindir=/usr/bin \ sbindir=/usr/sbin \ sysconfdir=/etc \ datadir=/usr/share \ includedir=/usr/include \ libdir=/usr/lib \ libexecdir=/usr/libexec \ localstatedir=/var \ sharedstatedir=/usr/com \ mandir=/usr/share/man \ infodir=/usr/share/info \ install FC9 /usr/lib/rpm#
マクロ自体は、/usr/lib/rpm/macros内で定義されている。
マクロの定義は以下のようにする。
* 再定義
%define _prefix /usr/local
* クリア
%undefine _prefix
.rpmmacrosに独自定義を行えば、定義済みの内容を再定義できる。ただし、specファイルの中で.rpmmacrosに定義した独自マクロを使用するのspecファイルの汎用性が落ちる事を理解しておくこと。