![Linux下安装的软件包列表](https://linux22.com/image/592256/Linux%E4%B8%8B%E5%AE%89%E8%A3%85%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%88%97%E8%A1%A8.png)
我有 RedHat Linux,上面安装了一些软件,例如:
- 标准 C++ 库 33-3.2.3-47.3
- WebSphere MQ 客户端 6.0.2.6
- IBM 全球安全套件 7.0.4.11
- IBM 密钥管理工具 6.0 或更高版本
- Tivoli 数据交换 4.4.0.0
我想知道是否有办法通过从命令行执行某些命令来获取此列表,这样当我执行该命令时,它会提示我那里有什么,如果缺少什么,那么就可以安装
答案1
如果您知道所有这些包的 RPM 名称,则可以使用verify (-V)
该命令的选项rpm
来识别丢失的文件或自安装以来修改的内容。
例如:
rpm -V compat-libstdc++-33
rpm -V gsk7bas
如果没有任何变化,该命令将不会产生任何输出。但是,如果检测到更改,您将收到如下报告:
# rpm -V openssh-server
S.5....T. c /etc/ssh/sshd_config
来自 rpm 手册页:“验证软件包会将软件包中已安装文件的信息与从存储在 rpm 数据库中的软件包元数据中获取的文件信息进行比较。除其他事项外,验证还会比较每个文件的大小、MD5 总和、权限、类型、所有者和组。”
如果您不知道 RPM 名称,请尝试以下操作:
rpm -qa --queryformat="%{NAME}\t%{VENDOR}\n" | egrep -v "Red Hat"
答案2
尝试rpm -qa
获取已安装软件包的列表