免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 919 | 回复: 0
打印 上一主题 下一主题

★★★★RPM 套件管理程式:RPM 查询 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-11 15:36 |只看该作者 |倒序浏览
RPM 查询
RPM 在查询的时候,其实查询的地方是在 /var/lib/rpm 这个目录下的资料库档案啦!另外, RPM 也可以查询档案内的资讯喔!那如何去查询呢?我们底下以 简单的范例来说明:
[root@linux ~]# rpm -qa
[root@linux ~]# rpm -q[licdR] 已安装的套件名称
[root@linux ~]# rpm -qf 存在于系统上面的某个档案
[root@linux ~]# rpm -qp[licdR] 未安装的某个档案名称
参数:
在查询的部分,所有的参数之前都需要加上 -q 才是所谓的查询!
查询主要分为两部分,一个是查已安装,另一个则是查某个 rpm 档案内容。
查询已安装套件的资讯:
-q  :仅查询,后面接的套件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有套件名称;
-qi :列出该套件的详细资讯 (information),包含开发商、版本与说明等;
-ql :列出该套件所有的档案与目录所在完整档名 (list);
-qc :列出该套件的所有设定档 (找出在 /etc/ 底下的档名而已)
-qd :列出该套件的所有说明档 (找出与 man 有关的档案而已)
-qR :列出与该套件有关的相依套件所含的档案 (Required 的意思,列出所有依附于该套件的套件。)
-qf :由后面接的档案名称,找出该档案属于哪一个已安装的套件;(通过文件找所安装的套件。)
查询某个 RPM 档案内含有的资讯:
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 档案内的资讯,而非已安装的套件资讯!注意!
范例:
范例一:找出你的 Linux 是否有安装 logrotate 这个套件?
[root@linux ~]# rpm -q logrotate
logrotate-3.7.1-10
[root@linux ~]# rpm -q logrotating
package logrotating is not installed
# 注意到,系统会去找是否有安装后面接的套件名称。注意,
# 不必要加上版本喔!至于显示的结果,一看就知道有没有安装啦!
范例二:列出上题当中,该套件的所有目录与档案:
[root@linux ~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
......以下省略......
# 可以看出该套件到底提供了多少的档案与目录。
范例三:列出 logrotate 这个套件的相关说明资料:
[root@linux ~]# rpm -qi logrotate
Name        : logrotate                Relocations: (not relocatable)
Version     : 3.7.1                         Vendor: Red Hat, Inc.
Release     : 10                        Build Date: Fri Apr  1 03:54:42 2005
Install Date: Sat Jun 25 08:28:26 2005  Build Host: tweety.build.redhat.com
Group       : 系统环境/基础             Source RPM: logrotate-3.7.1-10.src.rpm
Size        : 47825                        License: GPL
Signature   : DSA/SHA1, Sat May 21 01:34:11 2005, Key ID b44269d04f2a6fd2
Packager    : Red Hat, Inc.
Summary     : 循环、压缩、移除以及邮寄系统纪录档案。
Description :
The logrotate utility is designed to simplify the administration of
log files on a system which generates a lot of log files. Logrotate
allows for the automatic rotation, compression, removal, and mailing of
log files. Logrotate can be set to handle a log file daily, weekly,
monthly, or when the log file gets to a certain size. Normally,
logrotate runs as a daily cron job.
# 列出该套件的 information (资讯),里面的资讯可多著呢,包括了套件名称、
# 版本、开发商、SRPM档案名称、打包次数、简单说明资讯、套件打包者、
# 安装日期等等!如果想要详细的知道该套件的资料,用这个参数来瞭解一下
范例四:分别仅找出 logrotate 的设定档与说明档
[root@linux ~]# rpm -qc logrotate
[root@linux ~]# rpm -qd logrotate
范例五:若要成功安装 logrotate ,他还需要什么档案的帮忙?[root@linux ~]# rpm -qR logrotate
/bin/sh
config(logrotate) = 3.7.1-10
libc.so.6
....以下省略....
# 由这里看起来,呵呵~还需要很多档案的支援才行喔!
范例六:由上面的范例五,找出 /bin/sh 是那个套件提供的?
[root@linux ~]# rpm -qf /bin/sh
bash-3.0-31
# 这个参数后面接的可是‘档案’呐!不像前面都是接套件喔!
# 这个功能在查询系统的某个档案属于哪一个套件所有的。
范例七:假设我有下载一个 RPM 档案,想要知道该档案的需求档案,该如何?
[root@linux ~]# rpm -qpR filename.i386.rpm
# 加上 -qpR ,找出该档案需求的资料!
常见的查询就是这些了!要特别说明的是,在查询本机上面的 RPM 套件相关资讯时, 不需要加上版本的名称,只要加上套件名称即可!因为他会由 /var/lib/rpm 这个资料库里面去查询, 所以我们可以不需要加上版本名称。但是查询某个 RPM 档案就不同了, 我们必须要列出整个档案的完整档名才行~ 这一点朋友们常常会搞错。底下我们就来做几个简单的练习吧!
例题:
我想要知道我的系统当中,以 c 开头的套件有几个,如何实做?
      rpm -qa | grep ^c | wc -l
我的 WWW 伺服器为 Apache ,我知道他使用的 RPM 套件档名为 httpd 。现在,我想要知道这个套件的所有设定档放置在何处,可以怎么作?
      rpm -qc httpd
承上题,如果查出来的设定档案已经被我改过,但是我忘记了曾经修改过哪些地方,所以想要直接重新安装一次该套件,该如何作?
      假设该套件在网路上的网址为:
      http://web.site.name/path/httpd-x.x.xx.i386.rpm
      则我可以这样做:
      rpm -ivh http://web.site.name/path/httpd-x.x.xx.i386.rpm --replacepkgs
如果我误砍了某个重要档案,例如 /etc/crontab,偏偏不晓得他属于哪一个套件,该怎么办?!
      虽然已经没有这个档案了,不过没有关系,因为 RPM 有纪录在 /var/lib/rpm 当中的资料库啊!所以直接下达:
      rpm -qf /etc/crontab
      就可以知道是那个套件啰!重新安装一次该套件即可!
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68904/showart_1824119.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP