首页 系统教程 操作系统 Linux下RPM软件包的安装、更新及卸载方法

Linux下RPM软件包的安装、更新及卸载方法

Jan 07, 2024 pm 03:26 PM
rpm

在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。

RPM 安装操作

命令:
rpm -i 需要安装的包文件名
举例如下:

rpm -i example.rpm 安装 example.rpm 包;
rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;
登录后复制

RPM 查询操作

命令:
rpm -q …
附加查询命令:

a 查询所有已经安装的包以下两个附加命令用于查询安装包的信息;
i 显示安装包的信息;
l 显示安装包中的所有文件被安装到哪些目录下;
s 显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;
p 查询的是安装包的信息;
f 查询的是已安装的某文件信息;

举例如下:
 

rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;
rpm -qip example.rpm 查看 example.rpm 安装包的信息;
rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;
rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;
登录后复制

RPM 卸载操作

命令:
rpm -e 需要卸载的安装包
在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。
举例如下:
rpm -e tomcat4 卸载 tomcat4 软件包

RPM 升级操作

命令:
rpm -U 需要升级的包

举例如下:
rpm -Uvh example.rpm 升级 example.rpm 软件包
RPM 验证操作
命令:
rpm -V 需要验证的包

举例如下:
rpm -Vf /etc/tomcat4/tomcat4.conf
输出信息类似如下:
S.5....T c /etc/tomcat4/tomcat4.conf
其中,S 表示文件大小修改过,T 表示文件日期修改过。限于篇幅,更多的验证信息请您参考rpm 帮助文件:man rpm

RPM 的其他附加命令

--force 强制操作 如强制安装删除等;
--requires 显示该包的依赖关系;
--nodeps 忽略依赖关系并继续操作;

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

语法
 

rpm(选项)(参数)
登录后复制

选项
 

-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--<span class="wp_keywordlink"><a href="https://www.php.cn/link/5ca41a86596a5ed567d15af0be224952" rel="nofollow" target="_blank" >install</a></span><套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。
登录后复制

参数
 

软件包:指定要操纵的rpm软件包。

实例
 

如何安装rpm软件包

rpm软件包的安装可以使用程序rpm来完成。执行下面的命令:

rpm -ivh your-package.rpm
登录后复制

其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。

安装过程中可能出现下面的警告或者提示:

... conflict with ...
登录后复制

可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的可以用rpm --force -i强制安装即可

... is needed by ...
... is not installed ...
登录后复制

此包需要的一些软件你没有安装可以用rpm --nodeps -i来忽略此信息,也就是说rpm -i --force --nodeps可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能。

如何安装.src.rpm软件包

有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法:

方法一:

rpm -i your-package.src.rpm
<span class="wp_keywordlink"><a href="https://www.php.cn/link/01632f7b7a127233fa1188bd6c2e42e1" rel="nofollow" target="_blank" >cd</a></span> /usr/src/redhat/SPECS
<span class="wp_keywordlink"><a href="https://www.php.cn/link/a2c770e3cc20139f429ebfe6e8cdea0b" rel="nofollow" target="_blank" >rpmbuild</a></span> -bp your-package.specs<span style="color: #808080"> #一个和你的软件包同名的specs文件</span>
cd /usr/src/redhat/BUILD/your-package/<span style="color: #808080">#一个和你的软件包同名的目录</span>
./configure <span style="color: #808080">#这一步和编译普通的源码软件一样,可以加上参数</span>
<span class="wp_keywordlink"><a href="https://www.php.cn/link/03dadd644cb5856e1bb2c75dda01a4f0" rel="nofollow" target="_blank" >make</a></span>
make install
登录后复制

方法二:

rpm -i you-package.src.rpm
cd /usr/src/redhat/SPECS
登录后复制

前两步和方法一相同

rpmbuild -bb your-package.specs #一个和你的软件包同名的specs文件
登录后复制

这时在/usr/src/redhat/RPM/i386/(根据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。

执行rpm -i new-package.rpm即可安装完成。

如何卸载rpm软件包

使用命令rpm -e包名,包名可以包含版本号等信息,但是不可以有后缀.rpm,比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:

rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
rpm -e proftpd
登录后复制

不可以是下列格式:

rpm -e proftpd-1.2.8-1.i386.rpm
rpm -e proftpd-1.2.8-1.i386
rpm -e proftpd-1.2
rpm -e proftpd-1
登录后复制

有时会出现一些错误或者警告:

... is needed by ...
登录后复制

这说明这个软件被其他软件需要,不能随便卸载,可以用rpm -e --nodeps强制卸载

如何不安装但是获取rpm包中的文件

使用工具rpm2cpiocpio

rpm2cpio xxx.rpm | cpio -<span class="wp_keywordlink"><a href="https://www.php.cn/link/a8621fdfb85b64f3214f86af1e1504a2" rel="nofollow" target="_blank" >vi</a></span>
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories
登录后复制

参数i和extract相同,表示提取文件。v表示指示执行进程,d和make-directory相同,表示根据包中文件原来的路径建立目录,m表示保持文件的更新时间。

如何查看与rpm包相关的文件和其他信息

下面所有的例子都假设使用软件包mysql-3.23.54a-11

1、我的系统中安装了那些rpm软件包。

rpm -qa 讲列出所有安装过的包
登录后复制

如果要查找所有安装过的包含某个字符串sql的软件包

rpm -qa | <span class="wp_keywordlink"><a href="https://www.php.cn/link/c467978aaae44a0e8054e174bc0da4bb" rel="nofollow" target="_blank" >grep</a></span> sql
登录后复制

2、如何获得某个软件包的文件全名。

rpm -q mysql
登录后复制

可以获得系统中安装的mysql软件包全名,从中可以获得当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11

3、一个rpm包中的文件安装到那里去了?

rpm -ql 包名
登录后复制

注意这里的是不包括.rpm后缀的软件包的名称,也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。如果只是想知道可执行程序放到那里去了,也可以用which,比如:

which mysql
登录后复制

4、一个rpm包中包含那些文件。

  • 一个没有安装过的软件包,使用rpm -qlp ****.rpm
  • 一个已经安装过的软件包,还可以使用rpm -ql ****.rpm

5、如何获取关于一个软件包的版本,用途等相关信息?

  • 一个没有安装过的软件包,使用rpm -qip ****.rpm
  • 一个已经安装过的软件包,还可以使用rpm -qi ****.rpm

6、某个程序是哪个软件包安装的,或者哪个软件包包含这个程序。

rpm -qf `which 程序名`<span style="color: #808080">#返回软件包的全名</span>
rpm -qif `which 程序名` <span style="color: #808080">#返回软件包的有关信息</span>
rpm -qlf `which 程序名` <span style="color: #808080">#返回软件包的文件列表</span>
登录后复制

注意,这里不是引号,而是`,就是键盘左上角的那个键。也可以使用rpm -qilf,同时输出软件包信息和文件列表。

7、某个文件是哪个软件包安装的,或者哪个软件包包含这个文件。

注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:

<span style="color: #ff0000">whereis <span class="wp_keywordlink"><a href="https://www.php.cn/link/96fca94df72984fc97ee5095410d4dec" rel="nofollow" target="_blank" >ftptop</a></span></span>
ftptop: /usr/bin/ftptop /usr/share/<span class="wp_keywordlink"><a href="https://www.php.cn/link/432fd02f951f393df1591310e6811118" rel="nofollow" target="_blank" >man</a></span>/man1/ftptop.1.gz

<span style="color: #ff0000">rpm -qf /usr/bin/ftptop</span>
proftpd-1.2.8-1

<span style="color: #ff0000">rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt</span>
proftpd-1.2.8-1
登录后复制

以上是Linux下RPM软件包的安装、更新及卸载方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

深入探讨Linux RPM工具的作用和原理 深入探讨Linux RPM工具的作用和原理 Feb 23, 2024 pm 03:00 PM

Linux系统中的RPM(RedHatPackageManager)工具是一种用于安装、升级、卸载和管理系统软件包的强大工具。它是RedHatLinux系统中常用的软件包管理工具,也被许多其他Linux发行版采用。RPM工具的作用非常重要,它使得系统管理员和用户能够方便地管理系统上的软件包。通过RPM,用户可以很容易地安装新的软件包,升级现有的软件

linux rpm 存放在哪 linux rpm 存放在哪 Mar 28, 2023 am 11:22 AM

linux rpm一般默认存放在“/usr/local”或者“/usr/bin”目录下;“/usr/local”目录是提供给一般用户的“/usr”目录,在这里安装一般的应用软件,而“/usr/bin”目录也存放着许多应用程序。

如何查找Linux系统中RPM文件的存储路径? 如何查找Linux系统中RPM文件的存储路径? Mar 14, 2024 pm 04:42 PM

在Linux系统中,RPM(RedHatPackageManager)是一种常见的软件包管理工具,用于安装、升级和删除软件包。有时候我们需要找到某个已安装的RPM文件的存储路径,以便进行查找或者其他操作。下面将介绍在Linux系统中如何查找RPM文件的存储路径,同时提供具体的代码示例。首先,我们可以使用rpm命令来查找已安装的RPM包及其存储路径。打开

centos7使用rpm安装mysql5.7的方法 centos7使用rpm安装mysql5.7的方法 May 27, 2023 am 08:05 AM

1.下载4个rpm包mysql-community-client-5.7.26-1.el7.x86_64.rpmmysql-community-common-5.7.26-1.el7.x86_64.rpmmysql-community-libs-5.7.26-1.el7.x86_64.rpmmysql-community-server-5.7.26-1.el7.x86_64.rpm想要用迅雷进行下载得先找到对应的rpm下载路径首先浏览器打开mysql官网:在打开的界面,按键盘f12打开开发者工具

如何进行rpm程序包管理功能解析 如何进行rpm程序包管理功能解析 May 24, 2023 am 09:01 AM

Rpm包管理功能全解软件包管理的功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装、升级、卸载、查询、校验、数据库维护。下面我们来看看RPM包管理的解析Rpm包在redhat和S.U.S.E中有很大的应用我们接下来就以centos系统中rpm包的管理做一些详细的功能解析使用yum(rhel系列)安装时可以自动解决依赖关系drpm包命名格式:name-VERSION-release.arch.rpmVERSION:major.minor.releaseMajor

Linux系统中RPM包存放的标准路径是什么? Linux系统中RPM包存放的标准路径是什么? Mar 14, 2024 am 11:18 AM

《Linux系统中RPM包存放的标准路径及代码示例》在Linux系统中,RPM(RedHatPackageManager)包是一种用于软件包管理的标准格式。当我们使用yum等工具安装软件的时候,实际上是在系统中安装或更新RPM包。RPM包在系统中存放的路径是有一定规范的,下面将介绍一下在常见的Linux发行版中RPM包存放的标准路径,并提供一些代码示例

CentOS中怎么使用RPM包安装redis CentOS中怎么使用RPM包安装redis May 26, 2023 am 11:47 AM

Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。前期准备平台:centos6.5x86_64安装:redis-3.0.7-4.el6.art.x86_64.rpm下载rpm包打开地址http://pkgs.org/download/redis进入根据自己的linux平台以及需要安装的redis版本进去下载对应的rpm包,这里我们以redis3.0.7为例安装:[roo

Linux RPM工具解析:你需要了解的基础知识 Linux RPM工具解析:你需要了解的基础知识 Feb 22, 2024 pm 06:36 PM

Linux上的RPM工具一直以来都是管理软件包的重要工具之一。无论你是一名Linux系统管理员,还是一名开发者,了解RPM工具的基础知识都是非常重要的。本文将深入解析LinuxRPM工具,帮助你更好地理解其原理、用途和操作方法。一、什么是RPM工具RPM全称为RedHatPackageManager,是一种用于在Linux系统上管理软件包的工具。它最

See all articles