RPMファイルを抽出する最も一般的な方法は、rpm2cpio
コマンドを使用することです。このコマンドは、RPMファイルをcpioアーカイブに変換し、その後、cpioコマンドを使用してファイルを抽出します。以下は、この方法のコード例です。
$ rpm2cpio package.rpm | cpio -idmv
上記のコマンドを実行すると、RPMファイル内のすべてのファイルが現在のディレクトリに抽出されます。
また、Pythonを使用してRPMファイルを抽出することもできます。python-rpm
パッケージを使用すると、RPMファイルを簡単に操作することができます。以下は、Pythonを使用したRPMファイルの抽出のコード例です。
import rpm
ts = rpm.TransactionSet()
ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
rpm_file = "package.rpm"
rpm_fd = open(rpm_file, 'r')
hdr = ts.hdrFromFdno(rpm_fd)
files = hdr[rpm.RPMTAG_FILENAMES]
for file in files:
file_path = file.decode('utf-8')
if file_path.startswith('/'):
file_path = file_path[1:]
ts.extractFile(rpm_fd, file_path, '/tmp/' + file_path)
rpm_fd.close()
上記のコードは、python-rpm
パッケージを使用してRPMファイルを開き、ファイルを指定したディレクトリに抽出します。
このようにして、RPMファイルを抽出する方法といくつかのコード例を紹介しました。この記事は、RPMファイルの抽出に関心がある読者に役立つ情報を提供します。