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 mailxExecuting(%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-noteProcessing files: mailx-8.1.1-44.2.2ProvIDes: mailxRequires(rpmlib): rpmlib(Compressedfilenames) <= 3.0.4-1 rpmlib(PayloadfilesHavePrefix) <= 4.0-1Requires: 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/tlkN4yrYEiWrote: ~/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包的“正确”方法,主要是为了故障排除和教育目的而编写的.
总结以上是内存溢出为你收集整理的linux – 从已安装的rpm重新打包rpm全部内容,希望文章能够帮你解决linux – 从已安装的rpm重新打包rpm所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)