查询Linux中一个命令的安装目录以及RPM软件包的介绍和rpm命令的使用

直入正题:

[root@localhost ~]# which iostat
/usr/bin/iostat
[root@localhost ~]# rpm -qf /usr/bin/iostat
sysstat-9.0.4-22.el6.x86_64
[root@localhost ~]#

步骤就是:

  1. 使用which查看该命令的目录
  2. 使用rpm -qf查看该目录属于哪个RPM软件包

但是rpm命令是不能直接查到源代码包安装的命令的。

rpm命令

用途:

  • 查询RPM软件、包文件的相关信息
  • 安装、升级、卸载RPM软件包
  • 维护RPM数据库信息

命令使用格式:
已经安装的软件:rpm -q [ 子选项 ] [ 软件名 ]
未安装的RPM软件包:rpm -qp [ 子选项 ] RPM包文件

常用选项举例:

1、对于已经安装的软件:

  • -qa:查看系统中已安装的所有RPM软件包列表
  • -qi: 查看所有指定软件的详细信息
  • -ql:查询指定软件包所安装的目录、文件列表
  • -qc:仅显示指定软件包安装的配置文件
  • -qd:仅显示指定软件包安装的文档文件

2、对于未安装的RPM软件包

  • -qpi:通过.rpm包文件查看该软件的详细信息
  • -qpi:通过.rpm包文件查看该软件的详细信息
  • -qpl:查看.rpm安装包内所包含的目录、文件列表
  • -qpc:查看.rpm安装包内包含的配置文件列表
  • -qpd:查看.rpm安装包内包含的文档文件列表

安装或升级RPM软件:
格式:rpm [选项] RPM包文件
用法:不同选项适用于不同情况

  • -i:安装一个新的rpm软件包
  • -U:升级某个rpm软件,若原本未装,则进行安装
  • -F:更新某个rpm软件,若原本未装,则放弃安装(推荐)

卸载指定的RPM软件
格式:rpm -e 软件名
辅助选项:

  • –force:强制安装所指定的rpm软件包

  • –nodeps:安装、升级或卸载软件时,忽略依赖关系

  • -h:以“#”号显示安装的进度

  • -v:显示安装过程中的详细信息

  • 不推荐使用依赖关系最好一次安装上不然强制安装了,也不能使用软件。

     在使用rpm命令进行安装软件的时候,可能会出现一个告警:
     warning: /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
     产生这个告警的原因是:
     rpm文件开头有签名信息,签名信息是由谁发布的就有谁的签名信息。
     校验签名就可以确定是否是这个签名的人发布的软件,如何校验?
     使用公私钥。每个用户都有自己的公钥和私钥,可以理解为密码,公钥和私钥必须匹配才能解密。
    

那么如何进行RPM软件包的校验呢?

[root@centos6 ~]# ls /mnt                                                                                这里举的例子就是将光盘挂载到/mnt目录上,间接的访问光盘中的文件
CentOS_BuildTag  images                    repodata                       RPM-GPG-KEY-CentOS-Testing-6
EFI              isolinux                  RPM-GPG-KEY-CentOS-6           TRANS.TBL
EULA             Packages                  RPM-GPG-KEY-CentOS-Debug-6
GPL              RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Security-6
[root@centos6 ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-6                                                导入公钥
[root@centos6 ~]# rpm -e /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm                                      尝试卸载tree文件,注意安装的时候-i选项后面是文件名,卸载的时候-e选项后面跟软件名
error: package /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm is not installed
[root@centos6 ~]# rpm -q bash                                                                           查看软件名
'bash-4.1.2-40.el6.x86_64
[root@centos6 ~]# rpm -e tree                                                                           卸载tree
[root@centos6 ~]# rpm -q tree                                                                           查询tree
package tree is not installed                                                                           没有查找到那么就是卸载成功
[root@centos6 ~]# rpm -i /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm                                      再次重新安装tree软件包,发现已经没有之前的告警了。

rpm安装RPM包实际操作过程中容易遇到的最大的问题就是:RPM的依赖关系
依赖关系的解决办法:

  • 配置YUM源
  • 点击查看YUM源的配置方法
  • 使用rpm安装依赖的软件,只需要注意一点:被依赖的软件包需要先安装
    例如:

    这里vim-enhanced依赖于vim-common,所有在安装的时候,我们要先安装vim-common,在安装vim-enhanced,而在卸载的时候,与之相反,我们先卸载vim-enhanced,再卸载vim-common软件。
发布了33 篇原创文章 · 获赞 52 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_44714603/article/details/88662844