• 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
    
  • 相关阅读:
    Java基于SSM开发的企业员工管理系统源码
    华为数据中心VS技术理论讲解
    UE5 c++将自定义UserWdiget添加到对应菜单栏
    基于深度学习的边缘计算与云计算结合
    Chainlink Keepers 能够帮助 Web3 开发者更快开发的 7 个特性
    C# 中关于 T 泛型【C# 基础】
    天然气跟踪监管系统功能模块实现
    STM32 + RT-Thread + LVGL
    GCC 学习
    信息技术基础认知与实践-Python
  • 原文地址:https://www.cnblogs.com/manwander/p/16920493.html