linux重新安装rpm命令,linux – 从已安装的rpm重新打包rpm

这是可能的,但不能使用rpm命令.我写了一个执行此操作的perl脚本;它根据rpm -q的输出制作一个spec文件,并执行一个“build”,它只是从系统中复制已安装的文件.

用法示例,重新打包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包的“正确”方法,主要是为了故障排除和教育目的而编写的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值