RPMパッケージには何か奇妙なことがあります。リストされた内容は、実際rpm -ql
にレンダリングされたファイルとは異なります。たとえば、次の行openldap-servers-2.4.26-8.fc16.i686.rpm
をダウンロードして実行しました。
rpmfile=openldap-servers-2.4.26-8.fc16.i686.rpm; diff <(rpm2cpio $rpmfile | cpio -t | sed -e 's!^\.!!g') <(rpm -ql -p $rpmfile)
rpm
解凍した内容と出力内容をrpm2cpio
比較します。rpm -ql
そして得る:
9122 blocks
20a21,22
> /etc/openldap/slapd.conf
> /etc/openldap/slapd.conf.bak
21a24
> /etc/pki/tls/certs/slapd.pem
rpm -ql
パッケージに 3 つのファイルがあると言いますが、実際には存在しません。
これについての説明はありますか?
答え1
RPMパッケージは、パッケージをインストールするときに何をすべきかを.spec
示すさまざまなセクションを含むファイルを使用して構築されます。rpm
表示されるファイルは、rpm
パッケージのインストール時に動的に生成される可能性が高いですopenldap
。このrpm -ql
コマンドは実際に.spec
ファイルを読み取り、何がインストールされるのかを正確に知らせますが、このコマンドcpio
はファイルを.rpm
。 。しかし、ビルド時に注意してください。ルートとして実行することと間違ったパスが組み合わされると、1日を本当に台無しにすることができます。openldap-2.4.26-8.fc16.src.rpm
.spec
rpmbuild