请选择 进入手机版 | 继续访问电脑版

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

[复制链接]
查看212 | 回复42 | 2021-9-5 06:22:42 | 显示全部楼层 |阅读模式

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

RPM 安装操作

下令 :
rpm -i 必要 安装的包文件名
举比方 下:

  1. rpm -i example.rpm 安装 example.rpm 包;
  2. rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
  3. rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;
复制代码

RPM 查询操作

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

a 查询全部 已经安装的包以下两个附加下令 用于查询安装包的信息;
i 表现 安装包的信息;
l 表现 安装包中的全部 文件被安装到哪些目次 下;
s 表现 安装版中的全部 文件状态及被安装到哪些目次 下;以下两个附加下令 用于指定必要 查询的是安装包还是已安装后的文件;
p 查询的是安装包的信息;
f 查询的是已安装的某文件信息;

举比方 下:
 

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

RPM 卸载操作

下令 :

  1. rpm -e
复制代码
必要 卸载的安装包
在卸载之前,通常必要 使用 rpm -q …下令 查出必要 卸载的安装包名称。
举比方 下:
  1. rpm -e tomcat4
复制代码
卸载 tomcat4 软件包

RPM 升级操作

下令 :
rpm -U 必要 升级的包

举比方 下:

  1. rpm -Uvh example.rpm
复制代码
升级 example.rpm 软件包
RPM 验证操作
下令 :
rpm -V 必要 验证的包

举比方 下:

  1. 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的实用 度。

语法
 

  1. rpm(选项)(参数)
复制代码

选项
 

  1. -a:查询所有套件;
  2. -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
  3. -c:只列出组态配置文件,本参数需配合"-l"参数使用;
  4. -d:只列出文本文件,本参数需配合"-l"参数使用;
  5. -e<套件档>或--erase<套件档>:删除指定的套件;
  6. -f<文件>+:查询拥有指定文件的套件;
  7. -h或--hash:套件安装时列出标记;
  8. -i:显示套件的相关信息;
  9. -i<套件档>或--<span class="wp_keywordlink"><a title="install命令" target="_blank" href="http://man.linuxde.net/install">install</a></span><套件档>:安装指定的套件档;
  10. -l:显示套件的文件列表;
  11. -p<套件档>+:查询指定的RPM套件档;
  12. -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
  13. -R:显示套件的关联性信息;
  14. -s:显示文件状态,本参数需配合"-l"参数使用;
  15. -U<套件档>或--upgrade<套件档>:升级指定的套件档;
  16. -v:显示指令执行过程;
  17. -vv:详细显示指令执行过程,便于排错。
复制代码

参数
 

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

实例
 

怎样 安装rpm软件包

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

  1. rpm -ivh your-package.rpm
复制代码

此中 your-package.rpm是你要安装的rpm包的文件名,一样平常 置于当前目次 下。

安装过程中大概 出现下面的告诫 或者提示:

  1. ... conflict with ...
复制代码

大概 是要安装的包里有一些文件大概 会覆盖现有的文件,缺省时如许 的环境 下是无法正确 安装的可以用

  1. rpm --force -i
复制代码
逼迫 安装即可

  1. ... is needed by ...
  2. ... is not installed ...
复制代码

此包必要 的一些软件你没有安装可以用

  1. rpm --nodeps -i
复制代码
来忽略此信息,也就是说
  1. rpm -i --force --nodeps
复制代码
可以忽略全部 依赖 关系和文件题目 ,什么包都能安装上,但这种逼迫 安装的软件包不能保证完全发挥功能。

怎样 安装.src.rpm软件包

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

方法一:

  1. rpm -i your-package.src.rpm
  2. <span class="wp_keywordlink"><a title="cd命令" target="_blank" href="http://man.linuxde.net/cd">cd</a></span> /usr/src/redhat/SPECS
  3. <span class="wp_keywordlink"><a title="rpmbuild命令" target="_blank" href="http://man.linuxde.net/rpmbuild">rpmbuild</a></span> -bp your-package.specs <span style="color: #808080"> #一个和你的软件包同名的specs文件</span>
  4. cd /usr/src/redhat/BUILD/your-package/ <span style="color: #808080">#一个和你的软件包同名的目录</span>
  5. ./configure <span style="color: #808080">#这一步和编译普通的源码软件一样,可以加上参数</span>
  6. <span class="wp_keywordlink"><a title="make命令" target="_blank" href="http://man.linuxde.net/make">make</a></span>
  7. make install
复制代码

方法二:

  1. rpm -i you-package.src.rpm
  2. cd /usr/src/redhat/SPECS
复制代码

前两步和方法一雷同

  1. rpmbuild -bb your-package.specs #一个和你的软件包同名的specs文件
复制代码

这时在

  1. /usr/src/redhat/RPM/i386/
复制代码
(根据详细 包的不同,也大概 是i686,noarch等等)在这个目次 下,有一个新的rpm包,这个是编译好的二进制文件。

实行

  1. rpm -i new-package.rpm
复制代码
即可安装完成。

怎样 卸载rpm软件包

使用 下令

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

  1. rpm -e proftpd-1.2.8-1
  2. rpm -e proftpd-1.2.8
  3. rpm -e proftpd-
  4. rpm -e proftpd
复制代码

不可以是下列格式:

  1. rpm -e proftpd-1.2.8-1.i386.rpm
  2. rpm -e proftpd-1.2.8-1.i386
  3. rpm -e proftpd-1.2
  4. rpm -e proftpd-1
复制代码

偶然 会出现一些错误或者告诫 :

  1. ... is needed by ...
复制代码

这阐明 这个软件被其他软件必要 ,不能恣意 卸载,可以用rpm -e --nodeps逼迫 卸载

怎样 不安装但是获取rpm包中的文件

使用 工具rpm2cpiocpio

  1. rpm2cpio xxx.rpm | cpio -<span class="wp_keywordlink"><a title="vi命令" target="_blank" href="http://man.linuxde.net/vi">vi</a></span>
  2. rpm2cpio xxx.rpm | cpio -idmv
  3. rpm2cpio xxx.rpm | cpio --extract --make-directories
复制代码

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

怎样 查看与rpm包相干 的文件和其他信息

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

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

  1. rpm -qa 讲列出所有安装过的包
复制代码

假如 要查找全部 安装过的包含某个字符串sql的软件包

  1. rpm -qa | <span class="wp_keywordlink"><a title="grep命令" target="_blank" href="http://man.linuxde.net/grep">grep</a></span> sql
复制代码

2、怎样 获得某个软件包的文件全名。

  1. rpm -q mysql
复制代码

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

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

  1. rpm -ql 包名
复制代码

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

  1. which mysql
复制代码

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

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

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

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

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

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

留意 ,这里不是引号,而是`,就是键盘左上角的谁人 键。也可以使用

  1. rpm -qilf
复制代码
,同时输出软件包信息和文件列表。

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

留意 ,前一个题目 中的方法,只实用 与可实行 的程序,而下面的方法,不仅可以用于可实行 程序,也可以用于平常 的任何文件。条件 是知道这个文件名。起首 获得这个程序的完备 路径,可以用whereis或者which,然后使用

  1. rpm -qf
复制代码
比方 :

  1. <span style="color: #ff0000">whereis <span class="wp_keywordlink"><a title="ftptop命令" target="_blank" href="http://man.linuxde.net/ftptop">ftptop</a></span></span>
  2. ftptop: /usr/bin/ftptop /usr/share/<span class="wp_keywordlink"><a title="man命令" target="_blank" href="http://man.linuxde.net/man">man</a></span>/man1/ftptop.1.gz
  3. <span style="color: #ff0000">rpm -qf /usr/bin/ftptop</span>
  4. proftpd-1.2.8-1
  5. <span style="color: #ff0000">rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt</span>
  6. proftpd-1.2.8-1
复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 乔微博 | 2021-9-13 00:03:18 | 显示全部楼层
有节操!
回复

使用道具 举报

avatar 晴空万里659 | 2021-9-18 13:18:59 | 显示全部楼层
坚持回帖!
回复

使用道具 举报

avatar 阿豆学长长ov | 2021-9-20 15:08:51 | 显示全部楼层
楼上长在线啊?
回复

使用道具 举报

avatar 小灰363 | 2021-9-20 16:35:55 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,运动刷步数还是免费刷的,QQ和微信都可以刷,特别好用。访问地址:http://yd.mxswl.com 猫先森网络
回复

使用道具 举报

avatar 忆困血馆闻 | 2021-9-26 14:13:46 | 显示全部楼层
好无聊啊!
回复

使用道具 举报

avatar 掘金入眠刈 | 2021-9-27 02:53:46 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

avatar 下一站美安好 | 2021-10-1 21:41:53 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的源码论坛他的站点都是商业源码,还是免费下载的那种!特别好用。访问地址:http://www.mxswl.com 猫先森网络
回复

使用道具 举报

avatar 維健_廣律 | 2021-10-2 17:49:21 | 显示全部楼层
你觉得该怎么做呢?
回复

使用道具 举报

avatar 何幕之之rl | 2021-10-3 05:44:45 | 显示全部楼层
admin楼主会死的很有节奏的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则