rpm环境安装dpkg包管理工具
索引:dpkg-scanpackages、dpkg、dpkg-query、dpkg-source、dpkg-scansource
在centos、redhat、麒麟服务器版本中想对deb包进行管理,那么就需要安装dpkg包管理工具
主要是解决一些内网环境的特定包的需求
本次采用是src.rpm包重新制作rpm包
使用 rpmbuild命令编译 SRPM 包经历了以下 3 个过程:
先把 SRPM 包解开,得到源码包;
对源码包进行编译,生成二进制文件;
把二进制文件重新打包生成 RPM 包。
本次实验环境是arm架构+kylin服务版本操作系统,环境如下:
本次制作rpm包过程中主要是使用yum-builddep、rpmbuild等工具,一般默认安装,未安装则需要提前下载
一、下载dpkg包
deb包dpkg管理工具主要是由dpkg和dpkg-perl两个包,因此此次只要重建这两个包
由于arm架构,因此需要下载noarch或者aarch64架构的src包
顺便给大家安利软件包下载平,上面包含了很多linux不同发行版本和不同架构的包,大家自行索取。
https://pkgs.org/
正式开始下载:
wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/SRPMS/Packages/d/dpkg-1.20.9-4.el8.src.rpm
二、安装dpkg包
## 1.安装解压src.rpm包
rpm -i dpkg-1.20.9-4.el8.src.rpm
安装完成会在/root/目录生成rpmbuild目录
rpmbuild目录主要有两个目录:
SOURCES#从 SRPM 包中解压出来的源码包(*.tar.gz)保存位置。SPECS#参数配置表,检查依赖包的时缺少的包可以通过里面修改。
进入SPECS内,有一个包名+spec文件
spec文件是配置规范文件,是RPM软件包编译过程的核心,它说明了软件包如何被配置、打那些补丁、安装哪些文件、安装到哪里、安装过程需要哪些系统级别活动。
## 2.检查包的依赖环境
cd ./rpmbuild/SPECSyum-builddep dpkg.spec
通过yum-builddep进行依赖检查,检查系统未满足的依赖性则需要进行安装,通过yum和rpm直接安装并直到满足所有的依赖关系。
从上图可知需要po4a软件版本未符合,则需要安装高版本的po4a,并且版本大于0.59,本次直接下载0.63版本
wget https://repo.almalinux.org/almalinux/8/PowerTools/aarch64/os/Packages/po4a-0.63-1.el8.noarch.rpmrpm -ivh po4a-0.63-1.el8.noarch.rpm --force --nodeps#由于还需要的其他版本,因此可以采用加"--force --nodeps"进行强制安装rpm -qa |grep po4a#查询是否安装成功
重新进行依赖性检查
yum-builddep dpkg.spec
可以看到本次系统自动进行依赖包检查和安装,则根据默认进行安装,本次安装了之前检查不符合的软件包
安装完成后,可以再次进行依赖性检查
## 3.重新打包成rpm包
rpmbuild -ba dpkg.spec
安装完成后查看重新编译好的rpm包
cd /root/rpmbuild/RPMS#本次src.rpm重新打包后生成了aarch64、noarch两个目录,根据不同的包则有不同。cd aarch64/ && ls -la##里面有4个aarch64架构的的包,而且包名也是根据系统进行重新命令
cd aarch64/ && ls -la##里面有2个noarch架构的包
**## 4.安装重新打包后的包
rpm -ivh **.rpm