Linux RPM安装软件

来自CloudWiki
跳转至: 导航搜索

RPM包管理机制

RPM Package Manager

  • 由Red Hat公司提出,被众多Linux发行版所采用
  • 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系

RPM软件包

软件素材参考:http://rpmfind.net 
一般命名格式:bash-3.1-16.1.i386.rpm  
(软件名称+版本号+硬件平台. 扩展名)

在图形界面中管理RPM包

图形界面中的“添加/删除软件”

依赖于YUM(Yellow dog Updater,Modified)机制
调用yum命令工具进行软件更新

使用“添加/删除软件”工具的条件

能够访问互联网中的YUM源服务器
若使用默认源,需有合法的安装序列号和服务订阅号



RPM包管理命令 —— rpm

主要功能

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

查询RPM软件信息

查询现在已安的所有软件包

格式:rpm -qa

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

查询特定的RPM包是否已经安装

格式:rpm -q[子选项] [软件名]

用法:结合不同的子选项 完成不同查询

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

查询特定的软件是否已安装:

[root@localhost ~]# rpm -q httpd
httpd-2.2.15-5.el6.x86_64
rpm -q lynx
package lynx is not installed

查询带特定关键字的安装包是否已安装

[root@localhost ~]# rpm -qa | grep bash
bash-3.1-16.1
[root@localhost ~]# rpm -q bash
bash-3.1-16.1

查询软件包的说明信息

命令格式为: rpm -qi 软件包名称

[root@localhost ~]# rpm -qi bash
Name        : bash                         Relocations: (not relocatable)
Version     : 4.1.2                             Vendor: Red Hat, Inc.
Release     : 3.el6                         Build Date: Tue 22 Jun 2010 11:52:17 PM CST
Install Date: Thu 28 Jun 2018 04:29:58 AM CST      Build Host: x86-008.build.bos.redhat.com
Group       : System Environment/Shells     Source RPM: bash-4.1.2-3.el6.src.rpm
Size        : 3143558                          License: GPLv3+
Signature   : RSA/8, Mon 16 Aug 2010 11:30:37 PM CST, Key ID 199e2f91fd431d51
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL         : http://www.gnu.org/software/bash
Summary     : The GNU Bourne Again shell
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification.
[root@localhost ~]#


查询bash软件包安装的文件列表

格式:rpm -ql 软件包名称

例如,要查询bash软件包含有哪些文件,以及都安装在什么位置。

[root@localhost ~]# rpm -ql bash
/bin/bash
/bin/sh
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
……


查询未安装的RPM包文件

格式:rpm -qp[子选项] RPM包文件

用法:结合不同的子选项 完成不同查询

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

查询lynx软件安装包的摘要信息

[root@localhost ~]# rpm -qpi lynx-2.8.5-28.1.i386.rpm
warning: lynx-2.8.5-28.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Name        : lynx         Relocations: (not relocatable)
Version     : 2.8.5          Vendor: Red Hat, Inc.
Release     : 28.1          Build Date: 2006年07月13日 星期四 14时10分20秒
……

查询lynx安装包中的文件列表

[root@localhost Server]# rpm -qpl lynx-2.8.5-28.1.i386.rpm
/etc/lynx-site.cfg
/etc/lynx.cfg
……

查询某个文件属于哪个RPM包

查询vim是由哪个软件包安装的

[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.0.109-3

安装RPM软件包

安装或升级RPM软件

格式:rpm [选项] RPM包文件...

用法:不同选项适用于不同情况

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

辅助选项

--force:强制安装所指定的rpm软件包
--nodeps:安装、升级或卸载软件时,忽略依赖关系
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息 

公网安装rpm包

常用的RPM下载网址:

https://pkgs.org/ http://rpmfind.net http://rpm.pbone.net/

搜索到你不要的rpm包,鼠标复制地址,在命令行:

下载好以后 rpm -ivh *.rpm安装,就可以使用。

rpm -ivh https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.0-1.el8.ngx.x86_64.rpm

本地安装rpm包

准备工作:挂载Redhat的光盘到Linux系统

mkdir /mnt/downloads
mount -o loop /dev/cdrom /mnt/downloads
ls /mnt/downloads

查询相关的gcc包:

[root@localhost ~]# find /mnt/downloads  -name "*.rpm" | grep gcc
/media/RHEL_6.0 x86_64 Disc 1/Packages/gcc-2.8.6-27.el6.x86_64.rpm

将查询到的包复制到当前目录

[root@localhost media]# cp "/mnt/downloads/RHEL_6.0 x86_64 Disc 1/Packages/gcc-2.8.6-27.el6.x86_64.rpm" /home
[root@localhost media]# ls ~
anaconda-ks.cfg  Downloads           lynx-2.8.6-27.el6.x86_64.rpm  Public
Desktop          install.log         Music                         Templates
Documents        install.log.syslog  Pictures                      Videos
[root@localhost media]# cd

执行安装:

[root@localhost ~]# rpm -ivh gcc-2.8.6-27.el6.x86_64.rpm
warning: gcc-2.8.6-27.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:gcc                   ########################################### [100%]

安装rpm包示例2

升级RPM软件包

升级wget软件包:

[root@localhost ~]# rpm -i wget-1.10.2-3.2.1.i386.rpm
[root@localhost ~]# rpm -q  wget
wget-1.10.2-3.2.1
[root@mail ~]# rpm -Uvh /media/cdrom/wget-1.10.2-7.el5.i386.rpm
warning: /media/cdrom/wget-1.10.2-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
   1:wget       ########################################### [100%]
[root@localhost ~]# rpm -q  wget
wget-1.10.2-7.el5

卸载RPM软件包

卸载指定的RPM软件

格式:rpm -e 软件名

辅助选项

--force:强制安装所指定的rpm软件包
--nodeps:安装、升级或卸载软件时,忽略依赖关系
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息 

卸载lynx软件包:

[root@localhost ~]# rpm -q lynx
lynx-2.8.5-28.1
[root@localhost ~]# rpm -e lynx
[root@localhost ~]# rpm -q lynx
package lynx is not installed


思考:

如何用rpm方式安装软件包 ?升级软件包 ?卸载软件包 ?查询某软件包是否已安装?