linux未找到rpm命令_Linux命令查询rpm软件包用法

RPM 包管理系统是非常强大和方便的包管理系统,它比源码包的方便之处就在于可以使用命令查询、升级和卸载。在查询的时候,其实是在查询 /var/lib/rpm/ 这个目录下的数据库文件,那为什么不直接查看这些文件呢?你可以尝试使用 Vim 查看这些文件,会发现都是乱码。也就是说,这些文件其实都是二进制文件,不能直接用编辑器查看,所以才需要使用命令查看。

查询命令的格式

RPM 查询命令采用如下格式:

[root@localhost ~]# rpm 选项 查询对象

查询软件包是否安装

可以查询软件包是否安装,命令格式如下:

[root@localhost ~]# rpm -q 包名

选项:

  • -q:查询(query)

例如,查看一下 apache 包是否安装,可以执行如下命令:

[root@localhost ~]# rpm -q httpd

httpd-2.2.15-15.el6.centos.1.i686

因为 apache 是已经安装完成的包,所以只需要给出"包名",系统就可以识别。而没有安装的包就必须使用"绝对路径+包全名"格式才可以确定包。前面一直强调的包名和包全名不能写混乱就是这个原因。

查询系统中所有安装软件包

可以查询 Linux 系统中所有已经安装的软件包,命令格式如下:

[root@localhost ~]# rpm -qa

libsamplerate-0.1.7-2.1.el6.i686

startup-notification-0.10-2.1.el6.i686

gnome-themes-2.28.1-6.el6.noarch

fontpackages-filesystem-1.41-1.1.el6.noarch

gdm-libs-2.30.4-33.el6_2.i686

gstreamer-0.10.29-1.el6.i686

redhat-lsb-graphics-4.0-3.el6.centos.i686

…省略部分输出…

当然,可以用管道符来查看所需的内容,比如:

[root@localhost ~]# rpm -qa | grep httpd

httpd-devel-2.2.15-15.el6.centos.1.i686

httpd-tools-2.2.15-15.el6.centos.1.i686

httpd-manual-2.2.15-15.el6.centos.1.noarch

httpd-2.2.15-15.el6.centos.1.i686

你会发现,使用"rpm-q包名"只能查看这个包是否安装,但是使用"rpm-qa|grep 包名"会把包含包名称的所有包都列出来。

查询软件包的详细信息

[root@localhost ~]# rpm -qi 包名

选项:

  • -i:查询软件信息(information)

例如,查看 apache 包的安装信息,可以使用以下命令:

[root@localhost ~]# rpm -qi httpd

Name : httpd Relocations:(not relocatable)

#包名

Version : 2.2.15 Vendor:CentOS

#版本和厂商

Release : 15.el6.centos.1 Build Date: 2012年02月14日星期二 06时27分1秒

#发行版本和建立时间

Install Date: 2013年01月07日星期一19时22分43秒

Build Host:

c6b18n2.bsys.dev.centos.org

#安装时间

Group : System Environment/Daemons Source RPM:

httpd-2.2.15-15.el6.centos.1.src.rpm

#组和源RPM包文件名

Size : 2896132 License: ASL 2.0

#软件包大小和许可协议

Signature :RSA/SHA1,2012年02月14日星期二 19时11分00秒,Key ID

0946fca2c105b9de

#数字签名

Packager:CentOS BuildSystem

URL : http://httpd.apache.org/

#厂商网址

Summary : Apache HTTP Server

#软件包说明

Description:

The Apache HTTP Server is a powerful, efficient, and extensible web server.

#描述

通过这条命令可以看到包名、版本、发行版本、安装时间,软件包大小等信息。

不仅如此,还可以查询还没有安装的软件包的详细信息,命令格式如下:

[root@localhost ~]# rpm -qip 包全名

选项:

  • -p:查询没有安装的软件包(package)

注意,没有安装的软件包是存放在光盘中的,而且因为没有安装,所以需要使用包全名。

查询软件包中的文件列表

可以查询已经安装的软件包中的文件列表和安装的完整目录,命令格式如下:

[root@localhost ~]# rpm -ql 包名

选项:

  • -l:列出软件包中所有的文件列表和软件所安装的目录(list)

例如,想要查看一下问 apache 包文件的安装位置,可以执行如下命令:

[root@localhost ~]# rpm -ql httpd

/etc/httpd

/etc/httpd/conf

/etc/httpd/conf.d

/etc/httpd/conf.d/README

/etc/httpd/conf.d/welcome.conf

/etc/httpd/conf/httpd.conf

/etc/httpd/conf/magic

…省略部分输出…

那么,可以查询还没有安装的软件包中的文件列表和打算安装的位置吗?答案是可以,命令格式如下:

[root@localhost ~]# rpm -qlp 包全名

选项:

  • -p:查询没有安装的软件包信息(package)

想要查询还没有安装的 bind 软件包中的文件列表和打算安装的位置,可以执行如下命令:

[root@localhost ~]# rpm -qlp /mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm

/etc/NetworkManager/dispatcher.d/13-named

/etc/logrotate.d/named

/etc/named

/etc/named.conf

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

查询系统文件属于哪个rpm包

既然可以知道每个 RPM 包中的文件的安装位置,那么可以查询系统文件属于哪个 RPM 包吗?当然可以,不过需要注意的是,手工建立的文件是不能查询的,因为这些文件不是通过 RPM 包安装的,当然不能反向查询它属于哪个 RPM 包。

命令格式如下:

[root@localhost ~]# rpm -qf 系统文件名

选项:

  • -f:查询系统文件属于哪个软件包(file)

想查询一下 ls 命令是由哪个软件包提供的,可以执行如下命令:

[root@localhost ~]# rpm -qf /bin/ls

coreutils-8.4-19.el6.i686

查询软件包所依赖的软件包

查询系统中和已经安装的软件包有依赖关系的软件包,命令格式如下:

[root@localhost ~]# rpm -qR 包名

选项:

  • -R:查询软件包的依赖性(requires)

例如,想查询一下 apache 包的依赖包,可以执行如下命令:

[root@localhost ~]# rpm -qR httpd

/bin/bash

/bin/sh

/etc/mime.types

/usr/sbin/useradd

apr-util-ldap

chkconfig

config(httpd) = 2.2.15-15.el6.centos.1

httpd-tods = 2.2.15-15.el6.centos.1

initscripts >= 8.36

可以查询没有安装的软件包的依赖性吗?加"-p"选项即可。例如,查看一下还没有安装的 bind 软件包的依赖包,可以执行如下命令:

[root@localhost ~]# rpm -qRp /mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm

/bin/bash

/bin/sh

bind-libs = 32:9.8.2-0.10.rc1.el6

chkconfig

chkconfig

config(bind) = 32:9.8.2-0.10.rc1.el6

grep

libbind9.so.80

libc.so.6

libc.so.6(GLIBC_2.0)

libc.so.6(GLIBC_2.1)

…省略部分输出…

056b9944df6ddcd68b07ecdfc1705c44.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值