目录
简略
前言
一、rpm和src.rpm文件类型区别及联系
二、rpm文件名称那么长,分别是什么意思?
三、如何本地编译并安装rpm包?
四、如何查看rpm包的源码包名称?
简略
xxxxxxxxx.rpm <==RPM 的格式,已经经过编译且包装完成的 rpm 档案;
xxxxx.src.rpm <==SRPM的格式,包含未编译的原始码资讯。
noarch的包说明,你可以在任何平台上安装这个软件包,就是说它并不依赖于哪个特定的linux发布版。
平台名称 适合平台说明
i386 几乎适用于所有的 x86 平台
i686 在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等级的 CPU 都属于这个 686 等级!
noarch 就是没有任何硬体等级上的限制。一般来说,这种类型的 RPM 档案,里面应该没有 binary file 存在。
下文转自:http://events.jianshu.io/p/00de73b138f6
前言
rpm的概念——Redhat Package Manager,翻译过来就是,红帽包管理器。
这里关键字有“红帽”、“包”和“管理器”。“红帽”是linux操作系统服务商,“包”是一指包含完整特定功能的代码集合,“管理器”是用于管理“包”的工具。
1.安装软件:执行rpm -ivh rpm包名
升级软件:执行rpm -Uvh rpm包名。
3.反安装:执行rpm -e rpm包名称。
4.查询软件包的详细信息:执行rpm -qpi rpm包名称
5查询文件属于哪个rpm包:执行rpm -qf rpm包名称
6检查软件包将写入系统的文件:执行rpm -qpl rpm软件包名称
一、rpm和src.rpm文件类型区别及联系
我们以git包为例。
git-2.9.5-3.fc25.src.rpm
这是包含git源码的rpm包,换句话说,就是还没有编译成二进制的原始代码。它只是以rpm包的方式存在。我们使用file命令来看一下这个包的类型。
[root@arm-team-0009 2]# file git-2.9.5-3.fc25.src.rpm
git-2.9.5-3.fc25.src.rpm: RPM v3.0 src
git-2.9.5-3.fc25.i686.rpm
这是已经经过编译、包装完成的 rpm 文件。就是可以直接安装到你的系统中运行的目标文件。我们使用file命令来看一下这个包的类型。
[root@arm-team-0009 2]# file git-2.9.5-3.fc25.i686.rpm
git-2.9.5-3.fc25.i686.rpm: RPM v3.0 bin i386/x86_64 git-2.9.5-3.fc25
说完区别,我们再来说说联系。
src.rpm包可以经过编译,生成rpm包。并且它们是一对一或者一对多的关系。换句话说,就是一个src.rpm包可以编译出一个rpm包,或者一个src.rpm包可以编译出多个rpm包。
比如git-2.9.5-3.fc25.src.rpm ,就编译出来下面6个包:
git-2.9.5-3.fc25.i686.rpm
git-core-2.9.5-3.fc25.i686.rpm
git-core-doc-2.9.5-3.fc25.i686.rpm
git-daemon-2.9.5-3.fc25.i686.rpm
git-debuginfo-2.9.5-3.fc25.i686.rpm
git-svn-2.9.5-3.fc25.i686.rpm
二、rpm文件名称那么长,分别是什么意思?
下面我们来拆解一个rpm包全名:
git-2.9.5-3.fc25.i686.rpm
git——名称
2.9.5——版本号
3——release号
i686——架构类型,常见的有aarch64,x86_64,noarch等
rpm——文件类型
三、如何本地编译并安装rpm包?
步骤一:安装源码包
rpm -ivh git-2.9.5-3.fc25.src.rpm
步骤二:编译
rpmbuild -ba /root/rpmbuild/SPECS/git.spec
步骤三:安装编译好的rpm包
rpm -ivh /root/rpmbuild/RPMS/i686/git-2.9.5-3.fc25.i686.rpm
注意:根据你环境的架构的不同,编译出来的二进制rpm包存在路径略有差异。比如上面的i686架构,如果是aarch64架构,那么编译好的包就在
/root/rpmbuild/RPMS/aarch64/git-2.9.5-3.fc25.aarch64.rpm
当然,一些跟架构无关的二进制包,都存在于/root/rpmbuild/RPMS/noarch/路径。
四、如何查看rpm包的源码包名称?
并不是所有的rpm包名称都和src.rpm名称对应,真实的情况是,rpm的名字是A,src.rpm包的名字可能是B。如果系统上已经安装了A rpm包,你想找到A的源码包,自行修改重新编译,该如何是好呢?
下面一条命令可以帮助你:
[root@arm-team-0009 2]# rpm -qip git-2.9.5-3.fc25.i686.rpm
Name : git
Version : 2.9.5
Release : 3.fc25
Architecture: i686
Install Date: (not installed)
Group : Development/Tools
Size : 2485070
License : GPLv2
Signature : (none)
Source RPM : git-2.9.5-3.fc25.src.rpm
Build Date : Thu 16 Nov 2017 03:55:56 PM CST
Build Host : buildvm-24.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : https://git-scm.com/
Summary : Fast Version Control System
Description :
Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.
The git rpm installs common set of tools which are usually using with
small amount of dependencies. To install all git packages, including