引用
什么是 RPM 与 SRPM
RPM 全名是『 RedHat Package Manager 』简称则为 RPM 啦!顾名思义,当初这个套件管理的程序是由 Red Hat 这家公司发展出来的, 但其实在很多的其它套件也有相类似的套件管理程序。不过由于 RPM 使用上很方便,所以就成了目前最热门的套件管理程序啦!
那么什么是 RPM 呢?说的简单一点, RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的 Linux 主机的一套管理程序。他最大的特点就是将您要安装的套件先编译过( 如果需要的话 )并且打包好了,透过包装好的套件里头预设的数据库记录, 记录这个套件要安装的时候必须要的相依属性模块( 就是你的 Linux 主机需要先存在的几个必须的套件 ),当安装在你的 Linux 主机时, RPM 会先依照套件里头的纪录数据查询 Linux 主机的相依属性套件是否满足, 若满足则予以安装,若不满足则不予安装。那么安装的时候就将该套件的信息整个写入 RPM 的数据库中,以便未来的查询、验证与反安装!这样一来的优点是:
1. 由于已经编译完成并且打包完毕,所以安装上很方便( 不需要再重新编译 );
2. 由于套件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装;
但是这也造成很大的困扰,由于 RPM 程序是已经包装好的数据,也就是说, 里面的数据已经都『编译完成』了!所以, 安装的时候一定需要当初安装时的主机环境才能安装 ,也就是说,当初建立这个套件的安装环境必须也要在你的主机上面出现才行!例如 rp-pppoe 这个 ADSL 拨接套件,他必须要在 ppp 这个套件存在的环境下才能进行安装!如果你的主机并没有 ppp 这个套件,那么很抱歉,除非您先安装 ppp 否则 rp-pppoe 就是不让你安装的( 当然您可以强制安装,但是通常都会有点问题发生就是了! )。
所以,通常不同的 distribution 所释出的 RPM 档案,并不能用在其它的 distributions 里面,举例来说, Fedora 释出的 RPM 档案,通常无法直接在 Mandriva 上面进行安装的,更有甚者, 不同版本之间也无法互通,例如 Fedora Core 4 的 RPM 档案就无法直接套用在 FC3 上面!因此,这样可以发现他的缺点是:
1. 安装的环境必须与打包时的环境需求一致或相当;
2. 需要满足套件的相依属性需求;
3. 反安装时需要特别小心,最底层的套件不可先移除,否则可能造成整个系统的问题!
那怎么办?呵呵!还好,还有 SRPM 这个东西! SRPM 是什么呢?顾名思义,他是 Source RPM 的意思,也就是这个 RPM 档案里面含有原始码( Source Code )哩!特别注意的是,这个 SRPM 所提供的套件内容『并没有经过编译』, 他提供的是原始码喔!
通常 SRPM 的扩展名是以 ***.src.rpm 这种格式来命名的 。不过,既然 SRPM 提供的是原始码,那么为什么我们不使用 Tarball 直接来安装就好了?!这是因为 SRPM 虽然内容是原始码, 但是他仍然含有该套件所需要的相依性套件说明、以及所有 RPM 档案所提供的数据,同时,他与 RPM 不同的是,他也提供了参数设定档( 就是 configure 与 makefile 啦! )。所以,如果我们下载的是 SRPM ,那么要安装该套件时,RPM 套件管理员将会(1)先将该套件以 RPM 管理的方式编译,(2)然后将编译完成的 RPM 档案安装到 Linux 系统当中。与 RPM 档案相比, SRPM 多了一个重新编译的动作, 而且 SRPM 编译完成会产生 RPM 档案。
怪了,怎么 SRPM 这么麻烦吶!还要重新编译一次,那么我们直接使用 RPM 来安装不就好了!?通常一个套件在释出的时候,都会同时释出该套件的 RPM 与 SRPM 。我们现在知道 RPM 档案必须要在相同的 Linux 环境下才能够安装,而 SRPM 既然是原始码的格式,自然我们就可以透过修改 SRPM 内的参数设定档,然后重新编译产生能适合我们 Linux 环境的 RPM 档案,如此一来,不就可以将该套件安装到我们的系统当中,而不必与原作者打包的 Linux 环境相同了?这就是 SRPM 的用处了!
分享到:
相关推荐
CentOS 8发布后,在EPEL软件仓库还未跟进的情况下,CentOS访问NTFS文件系统解决方案变得复杂,此附件提供从fedora 31上取得的ntfs-3g的srpm包及其在CentOS下重编译后的结果。使用方法,解压后,使用rpm、yum或者dnf...
第20章 RPM与SRPM套件管理程序 第21章 系统服务守护程序 第22章 认识与分析登录文件 第23章 Linux备份策略 第24章 X Window简单设置 第25章 Linux硬件检测与维护 第26章 Linux核心...
标题 "SRPM" 提到的是Source RPM(源码 RPM)包,它在IT领域中是Linux发行版中用于分发和构建软件的重要形式。SRPMs包含软件的原始源代码,使得用户或系统管理员可以查看、修改源代码,并根据特定环境的需求编译成...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
rpminspect RPM构建偏差分析工具。 rpminspect查看RPM构建的输出(例如,Koji构建的输出),并检查构建工件的内容以报告: ... Koji构建(即,在所有指定体系结构上以“ rpmbuild -ba”运行的SRPM) 模
官方离线安装包,亲测可用
2. **mysql-community-client-5.7.34-1.el7.x86_64.rpm**:这个包提供了与MySQL服务器交互的命令行客户端工具,例如`mysql`, `mysqldump`, `mysqladmin`等,用户可以通过这些工具连接到MySQL服务器进行数据查询、...
离线安装包,亲测可用
离线安装包,亲测可用
离线安装包,亲测可用
SRPMS 是半成品车间,此目录下存放封装好的 srpm 文件,需要到目标系统上去生产然后安装的。 在使用 Gradle 制作 RPM 包时,需要使用 gradle-ospackage-plugin 插件,该插件提供了 rpm、deb 打包的功能。可以通过...
pyp2rpm 一种将PyPI包转换为RPM SPECFILE或生成SRPM的工具。 在大量开发中,请参阅TODO文件以获取计划功能的列表。 pyp2rpm当前随附Fedora和Mageia特定的模板。用法最简单的用例是运行: pyp2rpm package_name这将从...
Linux内核编译文档 根据提供的文件信息,本文档旨在...本文档提供了详细的Linux内核编译指南,包括rpmbuild工具的使用、SRPM和SPEC文件的应用、编译Linux内核、修改源代码和制作patch、应用编译好的RPM包等知识点。
离线安装包,亲测可用
官方离线安装包,亲测可用
官方离线安装包,亲测可用
在创建RPM包的过程中,会经历几个阶段:SRPM(Source RPM)阶段,这是包含了源代码和spec文件的包;然后通过rpmbuild的编译过程,生成对应的RPM包。生成的RPM包可以在各种支持RPM的Linux发行版上安装,系统会自动...
离线安装包,亲测可用
2. **创建RPM构建目录结构**:设置`~rpmbuild`目录结构,包括`SPECFILE`、`SRPM`、`BUILD`、`BUILDROOT`、`RPMS`和`SOURCES`等子目录。 3. **编写SPEC文件**:SPEC文件是描述如何构建RPM包的蓝图,包含版本信息、...
python-srpm-macros-3-32.el7.noarch.rpm python-setuptools-0.9.8-7.el7.noarch.rpm python-rpm-macros-3-32.el7.noarch.rpm libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm python-2.7.5-86.el7.x86_64.rpm ...