之前介绍过Linux安装软件的编译安装,在安装的时候需要进行如下流程:
下载源码到/usr/local/src ——> 解压源码——> 查看install和readme档案安装相依性软件——> ./configure安装软件到特定位置——> make clean清除目标档案——> make编译——> make install ——> 修改PATH
后来,安装软件又出现了RPM、SRPM以及YUM,下面分别介绍这三种安装方式相对于源码编译安装有什么不同。
RPM:RPM是Linux开发商将源码在特定硬件平台和操作系统平台上编译后,记载软件相依性应编辑成档案,并将这两者打包成的一个特殊格式的档案。使用RPM安装后,各文档会被安装到特定的目录下,所以很方便查询、升级(使用YUM)与卸载
SRPM:在RPM管理方式下,使用***.src.rpm安装包进行编译程RPM档案,而后按照RPM安装流程进行安装。由此,SRPM包是未编译的原始码,但是包含有该软件所需相依性说明,不用安装特定硬件平台和操作系统平台上。
YUM:YUM同样是由RPM发展而来。centOS将各释出软件放置到YUM服务器内,然后分析各软件的相依属性问题并记录成列表。客户端主机通过主动下载清单列表后,每次安装自动解决相依性问题,一次性安装具有相依属性的软件。同时,YUM也可以用来升级相关软件。相对于前面几种,YUM安装要方便许多,只要给客户端制定YUM容器(服务器),就可以一键完成软件的安装。
RPM
RPM包安装流程
1、明确安装包所在路径或者网站(find /dirname–name ‘name*’)
2、测试相依性rpm –ivh [http://]/path/to/file.rpm–test
3、安装rpm –ivh /path/to/file.rpm
RPM安装常用长选项:
--nodeps:忽略相依性强制安装
--replacepkgs:重复安装已安装过的软件档案
--force:强制安装
--nosignature:忽略数字签名认证
--prefix:指定安装路径
--relocate:改变安装路径
--justdb:完善RPM关于此软件档案的数据库文件
--initdb:初始化RPM数据库
--rebuilddb:重建RPM数据库
RPM查询
RPM [options] [filename]
常用选项:
-q:查询后面的软件是否有安装
-qa:列出此系统上已安装的所有软件
-ql:列出该软件安装后产生的所有文件完整目录列表
-qd:列出该软件安装后产生的所有man文件完整目录列表
-qf:列出该档案所属的已安装软件
-qi:列出该软件的详细信息
-qR:列出与该软件的相依软件有关的档案
-p:未安装的软件包
-e:移除某个软件(要从相依性的顶层开始)
RPM升级
-Uvh:安装未安装软件或者升级已安装软件至新版
-Fvh:升级已安装软件至新版
RPM验证
rpm –V[apf] [filename/dirname]
-V:后面加软件名称,显示该软件所含的被更动过的档案
-Va:列出系统上所有被改动过的档案
-Vf:列出某个档案是否被更动过
RPM数字签名验证流程
1、获取公钥安装包
2、安装公钥rpm --import /path/to/GPG-KEY
3、得到gpg-pubkey*档案,包含签章信息
4、安装原厂软件时,rpm指令会去读取签章信息,与已导入的公钥相比较。如果相同则安装,不同则不允许安装
SRPM
rpmbuild [options]
常用选项:
--rebuild:将***.src.rpm源码进行编译,并打包成rpm包
--recompile:将***.src.rpm源码进行编译、打包,并进行安装
-ba:将数据编译并同时产生RPM与SRPM
-bb:将数据仅编译程RPM档案
备注:SRPM包用rebuild创建成rpm包后,里边会有一个*.spec配置档案
YUM
YUM安装流程:
1、配置yum仓库/etc/yum.repo.d/*
2、联网
3、yum install filename
4、yum clean all删除所有yum仓库中的数据
yum [options] [filename](这里只列出部分选项,详情请man yum)
常用选项:
-y
--installroot=/some/path
search
list
info
provides
install
update
remove
grouplist
groupinfo
groupinstall
groupremove
设置系统自动升级:
vi /etc/crontab
0 3 * * * root /usr/bin/yum –y update