利用queryformat查询rpm包的安装时间

本文介绍了如何使用命令行工具查询rpm包的安装时间,并以glibc-2.12-1.47.el6.x86_64为例,展示了获取到的安装时间为Fri23Aug201304:40:27PMCST。
想知道某个rpm包是什么时候安装的,可以在查询时指定queryformat
rpm -q --qf "%{installtime:date}\n" glibc-2.12-1.47.el6.x86_64

输出是
[quote]Fri 23 Aug 2013 04:40:27 PM CST[/quote]
<think>好的,用户的问题是关于在CentOS中如何查看已安装的RPM缺少哪些依赖项。首先,我需要回忆RPM管理相关的内容,尤其是依赖项处理。用户之前提到过安装RPM时遇到的依赖问题,比如引用[3]和[5],所以可能他们遇到了安装后的依赖缺失,或者想检查已安装的是否有未满足的依赖。 首先,RPM的依赖通常在安装时检查,如果安装时用了--nodeps,可能之后会有问题。所以用户可能想知道如何检查已安装的是否存在未解决的依赖。不过,正常情况下,已安装的应该已经满足依赖,否则安装不会完成。不过可能有些情况,比如动态库在安装后被删除,或者版本冲突,导致依赖缺失。 接下来,我需要思考有哪些命令或方法可以检查已安装的依赖状态。已知的rpm命令有rpm -V用来验证,但这更多是检查文件是否被修改。而依赖方面,可能需要查看的依赖列表,然后检查这些依赖是否满足。例如,使用rpm -qR <package>可以列出某个的所有依赖,然后逐一检查这些依赖是否已安装。 但如何自动化这个过程呢?可能需要写脚本,对每个依赖项进行查询。例如,对于每个依赖,使用rpm -q来检查是否安装。如果未找到,则标记为缺失。不过需要注意依赖可能有版本要求,比如某个库的特定版本,这时候可能需要更复杂的解析。 另外,用户提到的引用[4]中有提到repotrack和yumdownloader来下载依赖,但那是安装前的处理。用户现在的问题是关于已安装的,可能需要检查运行时依赖是否满足。比如,使用ldd检查动态库是否存在,但仅限于二进制文件。 此外,可能有工具如deplist,或者yum的插件可以帮助。例如,yum check可能会检查依赖问题,但不确定是否适用于已安装的。或者使用repoquery命令,结合已安装的来列出依赖。 总结可能的步骤: 1. 使用rpm -qa列出所有已安装的。 2. 对每个,使用rpm -qR列出其依赖。 3. 对每个依赖项,检查是否已安装,可能需要处理版本条件。 4. 输出未安装的依赖项。 或者使用rpm -V来验证的依赖是否满足,但不确定是否可行。 另外,用户可能需要知道如何检查某个特定的依赖是否满足,或者系统范围内所有已安装的依赖。如果是后者,可能需要编写循环脚本。 此外,注意用户可能混淆了安装时的依赖缺失和安装后的依赖缺失,比如动态库被删除导致的问题,这时候需要用ldd检查二进制文件的依赖。 所以,回答应该括几种方法: 1. 检查单个的依赖:rpm -qR <名>,然后手动检查每个依赖是否安装。 2. 使用repoquery工具来检查依赖。 3. 使用rpm -V进行验证,但主要针对文件变化。 4. 使用ldd检查二进制文件的动态库依赖。 需要确保方法正确,并且引用中的内容可能涉及安装时的依赖解决,但用户现在需要的是已安装后的检查。可能需要参考引用中的rpm命令和yum工具,比如引用[4]中的方法可能部分适用,但需要调整。 最后,要验证这些方法是否正确,例如,使用rpm -qR列出依赖,然后用rpm -q来检查是否存在,如果不存在则输出。这可能需要脚本处理,或者在回答中指导用户如何手动进行。</think>在CentOS系统中,查看已安装RPM缺少的依赖项可通过以下方法实现: ### 方法一:使用`rpm -V`验证完整性 通过验证RPM完整性,可间接发现因依赖缺失导致的问题: ```bash rpm -V <名> ``` 若输出含`missing`或`not found`,可能涉及依赖文件丢失。例如: ```bash $ rpm -V httpd .....U.... /usr/lib64/httpd/modules/mod_ssl.so (No such file or directory) ``` 此方法需结合依赖文件路径人工排查[^3]。 ### 方法二:列出依赖并手动检查 1. **查询的依赖项**: ```bash rpm -qR <名> ``` 例如查看`nginx`的依赖: ```bash $ rpm -qR nginx libc.so.6()(64bit) libcrypt.so.1()(64bit) libpcre.so.1()(64bit) ... ``` 2. **逐项检查依赖是否存在**: ```bash rpm -q <依赖名称> ``` 若返回`未安装`,则标记为缺失依赖[^4]。 ### 方法三:使用`ldd`检查动态库依赖 针对二进制文件或共享库,检查运行时动态链接: ```bash ldd /path/to/binary_file ``` 输出中若含`not found`,表示动态库缺失: ```bash $ ldd /usr/sbin/nginx libpcre.so.1 => not found ``` ### 方法四:通过`yum check`检查系统依赖 全局检查所有已安装的依赖关系: ```bash yum check --dependencies ``` 该命令会列出所有未满足的依赖关系(需确保YUM缓存已更新)[^5]。 --- ### 自动化脚本示例 批量检查系统中所有已安装的依赖状态: ```bash for pkg in $(rpm -qa --queryformat "%{NAME}\n"); do echo "检查: $pkg" rpm -qR $pkg | xargs -n1 rpm -q >/dev/null 2>&1 || echo "存在未满足的依赖" done ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值