linux – 从已安装的rpm重新打包rpm
发布时间:2020-12-14 01:22:14 所属栏目:Linux 来源:网络整理
导读:在 linux上我们可以重新打包已安装的rpm,如果是这样的话.我记得可以从已安装的二进制文件生成一个rpm rpm -??? my.rpm 也就是后者,即较新的rpm应该在不同的机器上工作 解决方法 这是可能的,但不能使用rpm命令.我写了一个执行此操作的perl脚本;它根据rpm -q的
在
linux上我们可以重新打包已安装的rpm,如果是这样的话.我记得可以从已安装的二进制文件生成一个rpm
rpm -??? > my.rpm 也就是后者,即较新的rpm应该在不同的机器上工作 解决方法
这是可能的,但不能使用rpm命令.我写了一个执行此操作的perl脚本;它根据rpm -q的输出制作一个spec文件,并执行一个“build”,它只是从系统中复制已安装的文件.
你可以在这里找到它:https://github.com/cormander/rogue-beret-tools/blob/master/scripts/rpm-repack 用法示例,重新打包mailx rpm: 查询它: $rpm -ql mailx /bin/mail /etc/mail.rc /usr/bin/Mail /usr/lib/mail.help /usr/lib/mail.tildehelp /usr/share/man/man1/Mail.1.gz /usr/share/man/man1/mail.1.gz 重新包装: $./rpm-repack -p mailx Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.9773 + umask 022 + cd /usr/src/redhat/BUILD + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-static-archive + /usr/lib/rpm/brp-strip-comment-note Processing files: mailx-8.1.1-44.2.2 Provides: mailx Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) rtld(GNU_HASH) Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/tlkN4yrYEi Wrote: ~/rpmbuild/RPMS/i386/mailx-8.1.1-44.2.2.i386.rpm 查询新构建的包: $rpm -qpl ~/rpmbuild/RPMS/i386/mailx-8.1.1-44.2.2.i386.rpm /bin/mail /etc/mail.rc /usr/bin/Mail /usr/lib/mail.help /usr/lib/mail.tildehelp /usr/share/man/man1/Mail.1.gz /usr/share/man/man1/mail.1.gz 代码并不优雅,但功能齐全.它确实复制了很多rpm信息(rpm -qi和大多数脚本的所有内容),但它绝不是全面的.此外,它不能复制GPG签名,也不会与原始RPM文件具有相同的校验和. 注意:这不是构建和分发RPM包的“正确”方法,主要是为了故障排除和教育目的而编写的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |