软件安装:RPM、SRPM与YUM

来源:互联网 发布:csgo视频制作软件 编辑:程序博客网 时间:2024/06/10 06:06
1、软件安装方式
(1)目前比较流行的Linux软件安装方式是dpkg和rpm。
  • dpkg:主要用在Debian、B2D、Ubuntu等。
  • rpm:主要用在Redhat、Centos、Fedora、Suse等。
(2)解决软件包依赖的问题
前面提到过可以使用ldd来观察软件的依赖关系,可以将软件安装时的依赖关系做成列表,这样在安装时,就可以根据列表去自动安装相关依赖包。

2、RPM
2.1、RPM概念
(1)RPM是以一种数据库记录的方式,来将你所需要的软件安装到Linux系统的一套管理机制。它最大的特点就是将你要安装的软件先进行编译,并且打包成为RPM机制的包装档案,并记录这个软件安装时候的依赖包。
(2)安装时,rpm会先依照软件里头的数据查询所需的依赖包是否满足,满足则予以安装,不满足则不予安装。安装的时候将该软件的信息整个写入RPM的数据库中,以便之后的查询、验证与卸载。
(3)缺点:
由于使用RPM安装的软件都是预先编译好的,所以你的主机环境必须与RPM当初编译软件的环境相同才行。

2.2、RPM安装
(1)RPM安装完软件之后,该软件的相关信息会被写入/var/lib/rpm/目录下的数据库档案中。这个目录内的数据的作用:
  • 将来如果升级软件,版本之间的比较就是来自于这个数据库。
  • 查询系统已经安装的软件,也是从这里查询的。
  • 存放数字签名信息。
(2)rpm命令
rpm -【ivh】 xxx.rpm/网址
-i install的意思
-v 输出详细的安装信息
-h 以安装信息列显示安装进度
(3)rpm安装时的相关参数选项
--nodeps不顾错误提示强行安装软件--replacefiles覆盖已安装的部分档案--replacepkgs重复安装软件--force--replacefiles与--replacepkgs的结合--test测试安装--justdb如果RPM数据库损坏,可使用此指令更新软件信息--nosignature略过数字签名检查--prefix后面跟路径,指定软件的安装目录--noscripts禁止RPM自动执行某些指令

2.3、RPM升级与更新
(1)rpm -Uvh 软件包
若后面的软件没有安装过,则予以安装。
(2)rpm -Fvh 软件包
若后面的软件没有安装过,则不予安装。

2.3、RPM查询
(1)rpm -qa
-q 仅查询
-qa 列出所有已安装的软件
(2)rpm -q【licdR】 已安装的软件名
-qi 列出该软件的详细信息,包括开发商、版本与说明等
-ql 列出该软件的所有文件与目录
-qc 列出该软件的所有配置文件(/etc/底下的)
-qd 列出该软件的所有说明文件(与man相关)
-qR 列出该软件的依赖包的信息
(3)rpm -qf 文件名
找出后面的文件名属于哪个软件
(4)rpm -qp【licdR】 软件名
可以查出未安装的软件在RPM内的信息

2.4、RPM验证与数字签名
(1)rpm -Va
列出系统上面所有可能被改过的文件
(2)rpm -V 已安装的软件名
若该软件被改动过,才会列出来
(3)rpm -Vp RPM档案名
列出该文件可能被改动过的RPM档案
(4)rpm -Vf 系统上的某个档案
列出某个档案是否被改动过

2.5、RPM卸载软件
(1)rpm -e 软件名
软件的卸载是从最上层开始的,即当软件被卸载时,该软件没有被其他软件依赖,才能卸载。
(2)rpm --rebuilddb
因为软件的安装,卸载常常会影响RPM数据库,所以使用该指令可以重建数据库。

3、SRPM
3.1、SRPM概念
(1)SRPM就是source rpm的意思,也就是这个rpm里含有源代码,也是为了解决rpm环境强一致性的问题。
(2)扩展名
通常srpm的扩展名是以xxx.src.rpm这种格式来命名的。
那srpm是提供的源代码,为什么不使用Tarball的方式安装呢?
这是因为srpm虽然提供的是源代码,但是同时也提供了软件的依赖关系,以及参数配置文件(configure和makefile)。
(3)安装SRPM过程
  • 先将该软件以RPM管理的方式编译,此时SRPM会被编译为RPM档案
  • 然后将编译完成的RPM档案安装到Linux系统中

3.2、SRPM安装
(1)rpmbuild 选项 软件包
--rebuild 编译、打包后面的软件。生成RPM包,需要再使用rpm命令安装
--recompile 编译、打包并安装软件
(2)SRPM使用的路径与需要的软件
(3)SRPM的编译指令,用于制作自己的RPM软件包
rpmbuild -【ba/bb】 xxx.spec
-ba 生成RPM与SRPM档案
-bb 仅生成RPM档案

4、软件版本、适用平台以及编译次数
(1)如何通过RPM文件名得知软件版本及平台等信息?
例如:
rp-ppose-3.1-5.i386.rpm
rp-ppose 软件名称
3.1 软件版本信息
5 编译打包次数,重复编译的原因可能是因为一些bug等
.i386 操作系统平台
.rpm 扩展名
(2)操作系统平台
  • 32位系统:x86、i386、i586、i686
  • 64位系统:x86_64、x64

5、YUM
5.1、YUM概念
(1)当用RPM安装软件时,如果软件的依赖关系不满足,即软件的依赖包不存在,则不予安装。yum就是为了解决RPM软件包的依赖性问题
(2)一般的软件厂商为了节省用户的数据量,会将软件的内容分为一般使用与开发使用两大类。所以你常常会看到类似pam-x.x.rpm与pam-devel-x.x.rpm之类的文件名。
(3)yum机制:
之前说RPM会记录一个软件依赖关系的列表,YUM在安装软件的时候,先到这个列表去找,同时与系统内已安装的软件相比较,如果没有安装就连这些依赖的软件一起安装。通过这种机制就解决了软件依赖的关系。
(4)安装与升级
①安装
Centos先将编译打包后的软件放置到YUM服务器内,然后分析这些软件的依赖关系,再将软件的依赖关系记录列表。这些列表和软件所在的位置我们就称之为仓库(repository)。当客户端要安装软件时,就会去YUM的服务器下载。
②升级
当客户端有升级的需求时,YUM会向容器要求清单的更新,等到清单更新到本机的/var/cache/yum里面后,更新时就会用这个清单和本机的RPM数据库进行比较,这样就知道有什么软件要下载。接下来YUM就会到仓库中去下载,再通过RPM的机制开始安装软件

5.2、YUM Server
我们要使用yum功能时,必须先找到合适的yum server,实际上Centos在发行时已经制定好了很多供全世界使用的软件镜像仓库,理论上只要我们能连上网,就可以使用yum。

5.3、YUM查询
(1)yum 选项 参数
①选项:
-y 当yum等待用户输入时,这个选项自动提供yes的响应
--installroot=路径 改变软件的安装路径
②参数:
search 搜索软件名称或者描述的关键字
list 类似于rpm -qa
info 类似于rpm -qai
provides 类似rpm -qf
这些参数后面可以接一些字符串,或通配符

5.4、YUM安装
yum install 软件名

5.5、YUM升级
yum update 软件名

5.6、YUM卸载
yum remove 软件名

5.7、YUM配置文件
(1)yum镜像站的配置文件为:
/etc/yum.repos.d/容器名.repo
yum server可以使用多个容器,所以配置文件名不一样
(2)查询yum server所使用的容器
yum repolist all

5.8、YUM清除缓存
上面提到修改yum镜像的配置文件,但是如果存在一些旧数据,可能会更新不了。这时候我们清理下旧数据就可以更新了。
yum clean 【packages | headers | all】
packages 将已下载的软件删除
headers 将下载的软件文件头删除
all 将所有容器数据都删除

5.9、YUM的群组功能
yum 选项 参数
grouplist 列出所有已安装的套件组,例如Development Tools
groupinfo 后面接群组名,可查出该群组内的所有套件名
groupinstall 安装一整套组件
groupremove 移除一整套组件
0 0
原创粉丝点击