linux下RPM工具的使用:RPM安装、查询、查看、卸载升级软件包

32 篇文章 0 订阅
30 篇文章 0 订阅

目录

  • 一.关于软件包
  • 二.RPM软件包
  • 三.RPM包通用的命名规则
  • 四.RPM工具的使用
    • 4.1 rpm安装软件的功能
    • 4.2 rpm查询的功能
    • 4.3 rpm查看软件包内容是否被修改
    • 4.4 rpm卸载软件的功能
    • 4.5 rpm升级软件的功能

一.关于软件包

image-20230904163049000

在linux中安装软件是需要安装包的,软件的安装包有各种类型:.zip,.rar,.rpm,.tar.gz,.tar。软件包还可以分为源代码包和二进制包,源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行。二进制包无需编译,可以直接安装使用。区分是否为源代码包还是二进制包还得基于软件包里面的文件来判断,包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源代码包,而软件包里面存在bin目录(bin目录里有可执行文件),称之为二进制包。源码包高度可定制,可以自由选择自己需要的功能。

二.RPM软件包

RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是

开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM包是二进制包

可以直接使用。

rpm包的获取方式:Centos系统镜像光盘;网站http://rpmfind.net/;各种软件的官网下载。

三.RPM包通用的命名规则

RPM包的一般命名规则为:name-version-arch.rpm或者name-version-arch.src.rpm。

  • name就是软件包的名称
  • version是软件的版本号,版本号的格式通常为“主版本号.次版本号.修正号”,也有发布版本号,表示这个RPM包是第几次编译生成的
  • arch表示软件包适用的硬件平台,目前RPM支持的平台有:i386,i586,i686、sparc,alpha,x86_64等等
  • .rpm或.src.rpm,是RPM包类型的后缀,.rpm是编译好的二进制包,可用rpm命令直接安装;.src.rpm表示是源代码包,需要编译之后才可以使用
  • el* 表示这个软件包的发行商版本,el7表示这个软件包是在RHEL 7.x/CentOS 7.x下使用
  • devel:表示这个RPM包是软件的开发包
  • noarch:说明这样的软件包可以在任何平台上安装,不需要特定的硬件平台。在任何硬件平台上都可以运行
  • manual 手册文档
httpd-2.2.3-29.el5.i386.rpm
软件名称httpd|软件版本号2.2.3|发布版本号29|el5软件包是在RHEL 5.x/CentOS 5.x下使用|包适用的硬件平台i386|RPM包的类型

四.RPM工具的使用

RPM工具可以进行安装、查询、验证、更新、删除等操作。

4.1 rpm安装软件的功能

1.RPM的命令格式:rpm [参数] 软件包,rpm的安装参数有:

  • -i 是install的意思, 安装软件包
  • -v 显示附加信息,提供更多详细信息
  • -V 校验,对已经安装的软件进行校验
  • -h --hash 安装时输出####标记

2.使用rpm时,什么情况使用软件包全名,什么时候使用软件包名?

答:1.在安装和更新升级时候使用全名;2.对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。

3.当我们使用rpm查找某个rpm安装包的信息时,默认去目录/var/lib/rpm下面进行搜索。当一个 rpm 包安装到系统上之后,安装信息通常

会保存在本地的 /var/lib/rpm/目录下。

[root@mast ~]# ls /var/lib/rpm
Basenames  Conflictname  __db.001  __db.002  __db.003  Dirnames  Group  Installtid  Name  Obsoletename  Packages  Providename  Requirename  Sha1header  Sigmd5  Triggername

4.从本地安装rpm安装包

[root@mast ~]# rpm -ivh telnet-0.17-64.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:telnet-1:0.17-64.el7             ################################# [100%]

5.从网上下载centos epel扩展源,然后安装

#注释:epel源是对centos7系统中自带的 base源的扩展。
[root@mast ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:epel-release-7-12                ################################# [100%]

6.安装rpm包的时候,有时候需要解决依赖关系,这时候根据提示,优先安装依赖包,再次安装即可。

[root@mast ~]# rpm -ivh mariadb-server-5.5.56-2.el7.x86_64.rpm 
警告:/mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
	mariadb(x86-64) = 1:5.5.56-2.el7 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
	perl-DBD-MySQL 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
解决:
[root@mast ~]# rpm -ivh /mnt/Packages/mariadb-5.5.56-2.el7.x86_64.rpm 
[root@mast ~]# rpm -ivh /mnt/Packages/perl-DBD-MySQL-4.023-5.el7.x86_64.rpm 
[root@mast ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm 

4.2 rpm查询的功能

1.rpm查询语法:rpm -q(query),常与下面参数组合使用

  • -a(all) 查询所有已安装的软件包
  • -f(file)查询系统文件名(查询系统文件所属哪个软件包),反向查询
  • -i 显示已经安装的rpm软件包信息,后面直接跟包名
  • -l(list) 查询软件包中文件安装的位置
  • -p 查询未安装软件包的相关信息,后面要跟软件的全名
  • -R 查询软件包的依赖性
#查询zsh包是否安装
[root@mast ~]# rpm -q zsh
zsh-5.0.2-34.el7_8.2.x86_64

#查询所有已安装的软件包
[root@mast ~]# rpm -qa 
......
libX11-1.6.7-2.el7.x86_64
kernel-3.10.0-693.el7.x86_64
setup-2.8.71-7.el7.noarch
......

#查询所有已安装包中带rest关键字的包
[root@mast ~]# rpm -qa | grep rest
rest-0.8.1-2.el7.x86_64

#查看find命令的路径
[root@mast ~]# which find
/usr/bin/find

#查看find命令的路径
[root@mast ~]# whereis find
find: /usr/bin/find /usr/share/man/man1/find.1.gz

#查询文件或命令属于哪个安装包
[root@mast ~]# rpm -qf /usr/bin/find
findutils-4.5.11-5.el7.x86_64

#查询已经安装的rpm包的详细信息或作用
[root@mast ~]# rpm -qi hardlink
Name        : hardlink
Epoch       : 1
Version     : 1.0
Release     : 19.el7
Architecture: x86_64
Install Date: Fri 26 Apr 2019 05:10:21 PM CST
Group       : System Environment/Base
Size        : 16545
License     : GPL+
Signature   : RSA/SHA256, Fri 04 Jul 2014 09:53:40 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : hardlink-1.0-19.el7.src.rpm
Build Date  : Tue 10 Jun 2014 02:26:04 PM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git
Summary     : Create a tree of hardlinks
Description :
hardlink is used to create a tree of hard links.
It's used by kernel installation to dramatically reduce the
amount of diskspace used by each kernel package installed.

#查询没有安装的rpm包的详细信息或作用
[root@mast ~]# rpm -qpi telnet-0.17-64.el7.x86_64.rpm
Name        : telnet
Epoch       : 1
Version     : 0.17
Release     : 64.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Internet
Size        : 115888
License     : BSD
Signature   : RSA/SHA256, Fri 11 Aug 2017 04:04:43 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : telnet-0.17-64.el7.src.rpm
Build Date  : Fri 04 Aug 2017 04:00:38 AM CST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://web.archive.org/web/20070819111735/www.hcs.harvard.edu/~dholland/computers/old-netkit.html
Summary     : The client program for the Telnet remote login protocol
Description :
Telnet is a popular protocol for logging into remote systems over the
Internet. The package provides a command line Telnet client

#查看rpm安装后,将生成哪些文件
[root@mast ~]# rpm -qpl telnet-0.17-64.el7.x86_64.rpm 
/usr/bin/telnet
/usr/share/doc/telnet-0.17
/usr/share/doc/telnet-0.17/README
/usr/share/man/man1/telnet.1.gz

#查看已安装的命令,生成了哪些文件
[root@mast ~]# rpm -ql telnet
/usr/bin/telnet
/usr/share/doc/telnet-0.17
/usr/share/doc/telnet-0.17/README
/usr/share/man/man1/telnet.1.gz

4.3 rpm查看软件包内容是否被修改

1.语法:rpm -V包名 或者 rpm -Vf 文件路径

[root@mast ~]# which telnet
/usr/bin/telnet

[root@mast ~]# rpm -qf /usr/bin/telnet
telnet-0.17-64.el7.x86_64

#查看telnet命令内容是否被修改,没有输出,则没有被修改
[root@mast ~]# rpm -Vf /usr/bin/telnet

[root@mast ~]# echo aaa >> /usr/bin/telnet

[root@mast ~]# rpm -Vf /usr/bin/telnet
S.5....T.    /usr/bin/telnet

[root@mast ~]# rpm -V telnet
S.5....T.    /usr/bin/telnet

#注释:如果执行rpm -V 包名  出现的全是点,表示测试通过,命令内容没有被修改
#出现下面的字符代表测试的失败,即是命令内容被修改
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
#文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含
l 授权文件(license file)
r 描述文件

2.查看系统中所有的rpm包及安装的文件有没有被黑客修改过?

#注释:检查时参考了/var/lib/rpm 目录下的rpm数据库信息
[root@mast ~]# rpm -Va > rpm_check.txt
 
[root@mast ~]# ll rpm_check.txt -h
-rw-r--r-- 1 root root 629 Oct 19 21:34 rpm_check.txt
                                                                                                          
[root@mast ~]# cat rpm_check.txt 
.......T.  c /etc/httpd/conf/httpd.conf
S.5....T.  c /etc/sysconfig/authconfig
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/postlogin
....L....  c /etc/pam.d/smartcard-auth
....L....  c /etc/pam.d/system-auth
S.5....T.  c /etc/security/limits.conf
missing     /var/run/wpa_supplicant
S.5....T.  c /etc/vsftpd/vsftpd.conf
.....UG..    /var/ftp/pub
S.5....T.  c /etc/sysconfig/iptables
.......T.    /usr/aarch64-linux-gnu/include/rpc/netdb.h
S.5....T.    /usr/bin/telnet
S.5....T.  c /etc/rc.d/rc.local
.M.......    /etc/rc.d/init.d/functions
S.5....T.  c /etc/sysctl.conf

4.4 rpm卸载软件的功能

1.卸载软件的语法:rpm -e(erase) 包名

[root@mast ~]# rpm -q telnet
telnet-0.17-64.el7.x86_64

[root@mast ~]# rpm -e telnet
[root@mast ~]# rpm -q telnet
package telnet is not installed

#有时候卸载的软件包有依赖关系,所以加上--nodeps强制卸载软件
[root@mast ~]# rpm -e --nodeps lrzsz

4.5 rpm升级软件的功能

1.语法:rpm -Uvh 包名

[root@mast ~]# rpm -Uvh telnet-0.17-64.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:telnet-1:0.17-64.el7             ################################# [100%]

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 系统中安装 RPM 软件包的方法是使用命令行工具 "rpm"。 1. 使用以下命令检查软件包是否已经安装: ``` rpm -q package_name ``` 2. 使用以下命令安装软件包: ``` sudo rpm -i package_name.rpm ``` 3. 使用以下命令软件包: ``` sudo rpm -e package_name ``` 注意: - 在执行上面命令时需要root权限,所以要先用sudo - 在软件包之前请确保软件包已经安装,否则可能会报错 简单来说: - rpm -q package_name:查询软件包是否已安装 - sudo rpm -i package_name.rpm安装软件包 - sudo rpm -e package_name:软件包 ### 回答2: Linux是一款开源的操作系统,它的软件包管理系统非常强大,其中一种软件包格式是RPM(Red Hat Package Manager)。本文将介绍如何在Linux系统中安装RPM软件包。 1. 下RPM软件包 需要先从官方网站或第三方下站点上下需要安装RPM软件包。 2. 安装RPM软件包Linux系统中通过命令行进行安装,以CentOS系统为例,首先打开终端命令行窗口,使用root权限登录系统,然后执行以下命令: # rpm -ivh package_name.rpm # rpm -Uvh package_name.rpm 其中,第一行命令-i表示安装,-v表示输出详细的安装过程,-h表示显示进度条。第二行命令-U表示升级安装软件包。package_name.rpm指的是下RPM软件包的名称。 3. RPM软件包 如果需要安装软件包,可以使用以下命令: # rpm -e package_name 其中,-e表示软件包,package_name指的是需要软件包的名称。 4. 查询安装软件包 如果需要查询安装软件包,可以使用以下命令: # rpm -qa | grep package_name 其中,-qa表示查找查询所有已安装软件包,| grep用于过滤查询结果,package_name指的是要查询软件包的名称。 总之,安装RPM软件包需要使用命令行,具体命令包括安装升级查询安装软件包。需要特别注意的是,安装RPM软件包时可能会有依赖关系,需要先安装依赖包才能顺利安装软件包。在安装软件包时,尽量使用root权限以避免权限问题。 ### 回答3: Linux系统支持RPM(Red Hat Package Manager)软件包管理方式,这种方式是一种比较高效的方式来管理软件包安装和更新等操作。在Linux系统中,安装RPM类型的软件包主要有两种方式:使用命令行方式或者使用图形界面工具方式。下面我们来详细介绍这两种方法。 1. 命令行方式安装RPM软件包Linux系统中,使用命令行方式来安装RPM软件包主要分为以下几个步骤: 步骤1:打开终端界面。 步骤2:在终端中输入命令yum install rpmname进行安装。 步骤3:等待一段时间,直到安装完成。 步骤4:通过命令rpm –qa | grep rpmname命令进行验证是否安装成功。 参考命令及说明: yum -y install rpmname 确定依赖并安装rpm包 命令详解: -y 代表默认回答yes,避免命令受到交互式操作的干扰 2. 图形界面工具方式安装RPM软件包Linux系统中,还可以使用图形界面工具安装RPM软件包,这种方法更加直观,可以帮助用户快速完成安装。 步骤1:打开终端界面。 步骤2:输入命令yum install gnome-packagekit,安装软件包。 步骤3:通过启动PackageKit图形界面工具来进行RPM软件包安装。 步骤4:通过在PackageKit图形工具中输入软件包名称进行搜索,并选择需要安装软件包进行安装。 总之,在Linux系统中,安装RPM软件包主要有两种方式:通过命令行方式或者通过图形界面工具方式进行安装。这种管理方式不仅可以帮助用户更加方便快捷地进行软件安装,而且还能够有效保证软件的安全性和稳定性。因此,建议用户能够掌握这种管理方式,以便更好地管理系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值