Linux 平台上的软件包管理(8)

最新的基于 DEB 包的系统中,远程安装通常被更先进的 APT 代替。

可以从 RPM/DPKG 中抽取个别文件吗?

RPM

是。可以使用 rpm2cpio 工具来提取文件:

DPKG

是。可以使用 dpkg-deb 工具来提取文件:

$ dpkg-deb --extract ibm_lotus_notes-8.5.i586.deb $dir( 目标目录 )

RPM/DPKG 提供包安装成功的验证机制吗?

RPM

是。可以使用 -V 参数进行验证。

DPKG

Debian 系统通常使用 debsums 工具参数进行验证。

RPM/DPKG 提供包安全签名吗?

RPM

是。可以使用 --import 导入与软件同时发布的 GPG KEY, 接着使用 -K 命令来验证包的安全性,如:

# rpm --import pub_ibm_lotus_notes.gpg # rpm -K ibm_lotus_notes-8.5.i586.rpm 返回信息 : ibm_lotus_notes-8.5.i586.rpm: (sha1) dsa sha1 md5 gpg OK

DPKG

DPKG 不提供原生的 Key 验证机制。可以使用 debsigs 和 debsigs-verify,如果 RPM 的底层数据库损坏,RPM 还能使用吗?

RPM

如果底层数据库损坏,RPM 将无法正常使用。此时最常用的解决方法是重构数据库:

# rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb

RPM

DPKG 本身不提供底层数据库恢复机制。它的数据库以文件形式保存在 /var/lib/dpkg 目录中。及时地备份这个目录是最好的预防数据库损坏措施。

可以查询系统中已经安装的某个文件属于哪个 RPM 包吗?

RPM

可以。使用 -qf 参数 , 如在安装了 Notes8.5 的系统中:

# rpm -qf /opt/ibm/lotus/notes/notes 返回信息 : Ibm_lotus_notes-8.5-20081211.1920

DPKG

可以。使用— search 参数 , 如在安装了 Notes8.5 的系统中:

$ dpkg --search /opt/ibm/lotus/notes/notes 返回信息 : ibm-lotus-notes: /opt/ibm/lotus/notes/notes

可以查询 RPM 包的安装时间吗?

RPM

可以。可使用 --last 查询。如:

rpm -qa --last 返回信息 : 系统中所有软件的安装时间。

DPKG

DPKG 不提供直接的查询参数,但是可以用过查询 dpkg 的日志文件实现这个功能。如:

cat /var/log/dpkg.log | grep "\ install\ "

关于作者

江一帆,在 IBM 中国软件开发中心工作的软件工程师。他目前是 IBM Lotus Notes Client Beijing Core/Infra/Linux Testing 团队的成员,从事 Notes/Linux 的测试工作,有 6 年的 Linux 相关经验。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27962.html