码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何修改rpm包


    基本思路:

    rpm包没有修改工具,只能是把rpm包解压、修改(包括增删)其中的文件,然后重新制作rpm包。

    注:制作rpm包,需要原rpm包的spec文件。

    所需工具:

    rpmrebuild 

    它主要是用来提取原rpm包中的spec文件。

    rpmrebuild有如下两种安装方式(建议第1中):

     1)下载安装rpmrebuild rpm包

    下载地址:

    http://rpmfind.net/linux/rpm2html/search.php?query=rpmrebuild

    rpm -ivh rpmrebuild-2.11-3.el7.noarch.rpm  安装后,可直接使用 rpmrebuild 命令。

    2)下载解压tar包:

    下载地址:https://jaist.dl.sourceforge.net/project/rpmrebuild/rpmrebuild/2.15/rpmrebuild-2.15.tar.gz

    解压后,使用./rpmrebuild.sh 脚本,和 rpmrebuild命令一样。

    rpmbuild

    它主要是用来制作rpm包的。

    步骤:

    0)创建一个临时目录

    mkdir -p /root/test_rpm_dir

    cp mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm /root/test_rpm_dir

    cd  /root/test_rpm_dir

    1)解压原rpm包

    rpm2cpio mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm | cpio -div

    2)修改内容 

    按自己需求修改内容,或增删文件

    3)提取原rpm包spec文件 

    #注:下面命令中的 --spec-only=test.spec 中的test.spec是要保存spec的文件路径(即把提取的spec文件保存为当前路径下的test.spec)。

    有两种提取spec文件的方式:

    a)从指定的rpm包文件中提取 

    #注:-p, 即 --package 就是指使用rpm包文件,而不是系统中已安装的rpm。

    #注:-n, 即 --notest-install,不要执行一个测试性的安装(do not perform a test install)。

    #注:-s,即 --spec-only= ,指只提取创建spec文件(generate specfile only)。

    rpmrebuild  -p -n -s test.spec mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm 

    或

    rpmrebuild  --package --notest-install --spec-only=test.spec mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm 

    a)从系统中安装的rpm中提取 

    如果rpm包已经安装到系统中(且你已经从本地删除了该rpm包源文件),可以执行如下命令提取:

    rpmrebuild -s test.spec -n mlnx-ofa_kernel-5.6-OFED.5.6.2.0.9.1.rhel7u4.x86_64

    4)修改spec文件

    如果有增删的文件,则需要在spec文件中体现

    5)重新制作rpm

    使用rpmbuild  通过指定--buildroot  和 提取的spec 重新制作包。

    rpmbuild -ba  --buildroot /root/test_rpm_dir  test.spec

    注:如果是已经删除了rpm包文件,只能从系统中已安装的rpm路径下打包对应文件来制作新的rpm包,此时应去掉 --buildroot /root/test_rpm_dir

    参考:修改rpm中的文件重新打包 - 走看看

  • 相关阅读:
    【21t天算法挑战赛】排序算法——直接选择排序
    【NLP】大语言模型基础之GPT
    Leetcode T34: 在排序数组中查找元素的第一个和最后一个位置
    redis最佳实践
    计算机毕设(附源码)JAVA-SSM基于的校园失物招领平台
    新一批光学好书已上架
    Linux以系统服务的方式启动Kafka(其他服务同理)
    linux内建命令/内部命令之exec
    【每日一题Day320】LC2651计算列车到站时间 | 数学
    拼多多商品详情页API接口、拼多多商品销量API接口、拼多多商品列表API接口、拼多多APP详情API接口、拼多多详情API接口
  • 原文地址:https://blog.csdn.net/billbonaparte1/article/details/125998193
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号