共计 1717 个字符,预计需要花费 5 分钟才能阅读完成。
1、查询 RPM 软件包是否安装
命令格式如下:
[root@localhost ~]# rpm -q 包名
选项:-q:查询(query)
示例:
# 如果能看到包名,说明软件已安装
[root@localhost ~]# rpm -q httpd
httpd-2.2.15-53.e16.centos.x86_64
# 如果没有安装会提示你
[root@localhost ~]# rpm -q gdhjgas
package gdhjgas is not installed
2、查询系统中所有已安装的 RPM 软件包
可以查询 Linux 系统中所有已经安装的软件包,命令格式如下:
[root@localhost ~]# rpm -qa
选项:-a:所有(all)(这个命令很少用,因为会显示很多内容,不方便查看)可以统计通过 RPM 方式安装的软件包个数
[root@localhost ~]# rpm -qa | wc -l
708
当然,可以用管道符来查看所需的内容,比如:
[root@localhost ~]# rpm -qa | grep httpd
你会发现,使用 rpm -q 包名只能查看这个包是否安装,但是使用 rpm -qa | grep 包名
会把所有包含 httpd(包名)的包都列出来。
3、查询 RPM 软件包的详细信息
可以查询已经安装的某个软件包的详细信息(了解即可)。
命令格式如下:
[root@localhost ~]# rpm -qi 包名
选项:-i:查询软件信息(information)也可以查询还没有安装的软件包的详细信息。因为这些信息是在 RPM 软件包里的,作者事先写好的,并不是在软件安装之后才能查询软件包信息。注意要使用包全名。
命令格式如下:
[root@localhost ~]# rpm -qip 包全名
选项:-p:查询没有安装的软件包(package)4、查询 RPM 软件包中的文件列表
可以查询已经安装的软件包中的文件列表和安装的完整目录。(也就是软件的安装位置,非常常用。)
命令格式如下:
[root@localhost ~]# rpm -ql 包名
选项:-l:列出软件包中所有的文件列表和软件所安装的目录(list)那么,可以查询还没有安装的软件包中的文件列表和打算安装的位置吗?
答案是可以(原因同第 3 点)。
命令格式如下:
[root@localhost ~]# rpm -qlp 包全名
选项:-p:查询没有安装的软件包信息(package)
5、查询系统文件属于哪个 RPM 包
既然可以知道每个 RPM 包中的文件的安装位置,那么可以查询系统文件属于哪个 RPM 包吗?
当然可以,不过需要注意的是,手工建立的文件是不能查询的,因为这些文件不是通过 RPM 包安装的,当然不能反向查询它属于哪个 RPM 包。
命令格式如下:
[root@localhost ~]# rpm -qf 系统文件名(也就是软件中带有的,不能是自己创建的文件。)选项:-f:查询系统文件属于哪个软件包(file)示例:
# 自己创建的文件演示
[root@localhost ~]# rpm -qf abc
file/root/abc is not owned by any package(该文件不属于任何包)# 通过 rpm 安装包的方式,查询安装的软件产生的文件
[root@localhost ~]# rpm -qf /etc/httpd/conf/httpd.conf
httpd-2.2.15-53.e16.centos.x86_64
6、查询 RPM 软件包所依赖的软件包
查询系统中和已经安装的软件包有依赖关系的软件包,命令格式如下:
[root@localhost ~ # rpm -qR 包名
选项:-R:查询软件包的依赖性(requires)
上边命令只会把所有依赖的软件包列出来,但是结果中没有办法区分,这些依赖的软件包在系统中是否已经安装。(不常用,了解即可。)
如何可以查询没有安装的软件包的依赖性?
加 - p 选项即可。
例如,查看一下还没有安装的 bind 软件包的依赖包,可以执行如下命令:
[root@localhost ~]# rpm -qRp /mnt/cdrom/Packages/bind-9.8.2-0.10.rcl.e16.i686.rpm
正文完
星哥玩云-微信公众号