rpm环境安装dpkg包管理工具

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/SPECS
yum-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.rpm
rpm -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
arch架构的包

## 5.安装重新打包后的包

rpm -ivh **.rpm
### 使用 `dpkg` 安装 RPM 包的解决方案 在 Linux 系统中,`dpkg` 是 Debian 及其衍生发行版(如 Ubuntu)中的软件包管理工具,而 RPM 则是 Red Hat 及其衍生发行版(如 CentOS 和 Fedora)使用的软件包格式。这两种格式并不兼容,因此无法直接使用 `dpkg` 来安装 RPM 包。然而,可以通过一些间接的方法实现跨格式安装。 #### 方法一:将 RPM 包转换为 DEB 包 可以使用工具 `alien` 将 RPM 包转换为 DEB 包,从而使其能够在基于 Debian 的系统上被 `dpkg` 正常识别和安装。 ##### 安装 `alien` 首先需要确保系统已安装 `alien` 工具: ```bash sudo apt-get update sudo apt-get install alien ``` ##### 转换过程 使用 `alien` 将 RPM 包转换为 DEB 包: ```bash alien -d your_package.rpm ``` 参数说明: - `-d`:生成适用于当前系统的 DEB 包。 - `your_package.rpm`:要转换的目标 RPM 包名称。 完成后会在当前目录生成对应的 `.deb` 文件[^1]。 ##### 安装转换后的 DEB 包 一旦成功生成 DEB 包,即可使用 `dpkg` 进行安装: ```bash sudo dpkg -i your_converted_package.deb ``` 如果遇到依赖项缺失的情况,可使用以下命令解决: ```bash sudo apt-get install -f ``` #### 方法二:手动解压 RPM 并部署到系统 当无法使用 `alien` 或其他工具时,可以选择手动解压 RPM 包并将内容复制到适当的位置。 ##### 解压 RPMRPM 包本质上是一种压缩存档文件,可通过以下步骤将其内容提取出来: ```bash rpm2cpio your_package.rpm | cpio -idmv ``` 这一步会将 RPM 包的内容释放到当前工作目录下的相应路径中[^4]。 ##### 手动部署 根据解压后的内容结构,将文件移动到目标系统上的正确位置。通常需要注意以下几个方面: - **可执行文件**:应放置于 `/usr/bin/`, `/usr/local/bin/` 等标准目录。 - **配置文件**:通常位于 `/etc/` 下面。 - **库文件**:需放入 `/lib/`, `/usr/lib/`, 或 `/usr/local/lib/` 中。 - **文档和其他资源**:按照惯例存储在 `/usr/share/doc/` 或类似的地方。 最后还需确认所有权限设置恰当,并确保服务能够正常启动运行。 --- ### 注意事项 无论是采用自动化的转换工具还是纯手工操作,在处理不同平台间的软件包移植过程中都需要格外留意潜在的风险因素,比如版本差异、依赖关系冲突以及架构适配性等问题。建议事先做好充分准备并进行全面测试后再应用于生产环境之中。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值