linux_rpm软件包管理

来源:互联网 发布:李兴华 java 框架 编辑:程序博客网 时间:2024/06/03 12:34
### rpm命令格式
rpm -选项组合
1)安装或者升级一个rpm包
rpm -ivh rpm文件   //安装rpm文件,i,显示安装包的信息;v,显示一个软件包安装,升级,卸载的过程
rpm -Uvh rpm文件   //更新rpm文件

举例:
rpm -i example.rpm 安装 example.rpm 包;
rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;

2)删除一个rpm包
rpm -e 软件名  //删除一个rpm文件
如何需要不管依赖问题,强制删除软件,在如上命令其后加上 --nodeps

3)查看系统上已经安装的所有的软件包
rpm -qa  //查询系统上已安装的所有的软件包
rpm -q   //查询某个软件包,一般与别的选项组合使用

rpm的命令一般都是组合使用的,常用的组合选项有:
rpm -q          查询某个软件包,一般与别的选项组合使用
rpm -qa         查询系统上已安装的所有的软件包
rpm -qf         查询系统中的某个文件是由哪个软件包所生成
rpm -qd         查询一个软件包安装后在系统生成的帮助文件
rpm -ql         查询一个软件包安装后在系统生成文件的列表
rpm -qc         查询一个软件包的配置文件
rpm -qpl        查询一个未安装软件包安装后会在系统生成的文件列表
rpm -qi         查询一个软件包的发行信息
rpm -v          显示一个软件包安装,升级,卸载的过程            
rpm -K          校验一个软件包的私钥是否正确
rpm -U          升级软件包
rpm -f          强制安装,升级或卸载某软件
rpm -e          卸载软件包
rpm -a          查询所有已经安装的包以下两个附加命令用于查询安装包的信息;
rpm -i          显示安装包的信息;
rpm -l             显示安装包中的所有文件被安装到哪些目录下;
rpm -s             显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;
rpm -p             查询的是安装包的信息;
rpm -f             查询的是已安装的某文件信息;
 

rpm管理器一些其它的用法:
rpm --replacepkgs       重新安装某个软件包
rpm --initdb            初始化系统的rpm数据库
rpm --rebuilddb         重建系统的rpm数据库
rpm --import            向系统导入软件包的公钥
rpm --test              测试一个软件包是否能够安装在系统上,不真正安装
rpm --nodeps            安装软件包,不解决依赖关系
rpm --force             强制安装,升级或卸载,等同于rpm -f
rpm --scripts           查看一个软件包内的脚本
rpm --nodigest          不检查软件包的完整性
rpm --nosignature       不检查软件包来源的合法性

校验软件包的文件:
S      文件大小发生改变
M      文件权限发生改变
5      文件的md5值发生改变
D      设备的主次设备号发生改变
L      文件的链接发生改变
U      文件的属主发生改变
G      文件的属组发生改变
T      文件的最后修改时间发生改变
P      文件的能力发生改变

### 软件包组成说明
在linux上,一个软件包通常由下面几方面组成:
1)二进制程序
   二进制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin这几个目录下边;
2)库文件
   库文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/local/lib64这些目录下;
3)配置文件
   配置文件一般都是放在/etc这个目录下;
4)帮助文件
   man帮助文件则是放在/usr/share/man这个目录下的。

### 软件安装方式种类
在CentOS上,软件的安装方式一般有四种:
1)通用二进制编译
   由志愿者把开发完成的源代码编译成二进制文件,打包后发布在网络上,大家都可以通过网络进行下载,到本地之后,经过解压配置就可以使用。
2)软件包管理器
   使用包管理工具安装,有时候必须要解决软件包之间的依赖问题,例如rpm和deb等。
3)软件包前端管理工具
   可以自动解决软件包依赖关系,例如yum和apt-get等。
4)源码包安装
   从网络上下载软件的源码包到本地计算机,用gcc等编译工具编译成二进制文件后才能使用,有时必须要解决库文件的缺失问题。

CentOS上常用的rpm和yum等的用法。
CentOS上默认使用的软件包格式是rpm包。
rpm最初是由RedHat公司开发的一种软件包管理工具,最初它的全称是Redhat Package Manager,现在包括SUSE在内的很多linux发行版都使用这种软件管理工具,使得rpm成为linux的软件包管理标准,所以现在它的全称为Rpm Package Manager.

### rpm包管理器的过程
rpm包的管理器包括软件的打包,查询,校验,安装,升级,卸载,数据库管理等功能。

### 在CentOS上,一个rpm的命令格式为:
name-version.release.arch.rpm,其中version由主版本号,次版本号构成。
以下面软件包为例: httpd-2.2.15-59.el6.centos.x86_64.rpm
1)httpd是软件包的包名
2)2.2.15-59依次是软件包的主发行版本号,次发行版本号和修正号等
3)el6.centos是软件包适用的操作系统的版本号
4)x86_64是软件包的架构。

rpm包管理器的通用配置文件:
公钥文件位置:/etc/pki/rpm-gpg/
[root@localhost ~]# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6

数据库文件位置:/var/lib/rpm/
[root@localhost ~]# ls /var/lib/rpm
Basenames     __db.003     Group         Packages        Requirename     Triggername
Conflictname  __db.004     Installtid    Providename     Requireversion
__db.001      Dirnames     Name          Provideversion  Sha1header
__db.002      Filedigests  Obsoletename  Pubkeys         Sigmd5

### rpm使用方式说明
(一)查询系统装已经安装的软件信息

对于一个rpm包来说,都是有"-"和"."构成的,基本上有以下几部分组成: * 包名 * 版本信息 * 发布版本号 * 运行平台,当出现noarch,代表的是软件可以平台兼容
1)查询系统中已经安装的软件
rpm -qa
2)查询一个已经安装的文件属于哪个软件包;
rpm -qf 文件名的绝对路径
3)查询已安装软件包都安装到何处;
软件名定义是:rpm包去除平台信息和后缀后的信息
rpm -ql 软件名
4)查询一个已安装软件包的信息
rpm  -qi 软件名
5)查看一下已安装软件的配置文件;
rpm -qc 软件名
6)查看一个已经安装软件的文档安装位置:
rpm -qd 软件名
7)查看一下已安装软件所依赖的软件包及文件;
rpm -qR 软件名
 
(二)对于未安装的软件包信息查询
1)查看一个软件包的用途、版本等信息;
rpm -qpi rpm文件
2)查看一件软件包所包含的文件;
rpm -qpl rpm文件
3)查看软件包的文档所在的位置;
rpm -qpd rpm文件
4)查看一个软件包的配置文件;
rpm -qpc rpm文件
5)查看一个软件包的依赖关系
rpm -qpR rpm文件

(三)签名导入
rpm --import 签名文件  rpm --import RPM-GPG-KEY

做为一个标准的软件包管理系统,rpm确实很强大,但是rpm软件包的依赖问题却又让所有的SA又爱又恨,因此rpm包的前端管理工具就应运而生了。
原创粉丝点击