[sysadm@bogon init.d]$ rpm -qf /etc/init.d/network
initscripts-9.49.37-1.ns7.se.2.x86_64
[sysadm@bogon init.d]$
[sysadm@bogon init.d]$ rpm -q initscripts --changelog | head -n 10
* 五 12月 29 2017 Huachao Zou <huachao.zou@cs2c.com.cn> - 9.49.37-1.ns7.se.2
- add add-LANG-for-env.patch* 一 9月 12 2016 Lukáš Nykrýn <lnykryn@redhat.com> - 9.49.37-1
- rhel-import-state: fix broken order of parameters* 五 9月 09 2016 Lukáš Nykrýn <lnykryn@redhat.com> - 9.49.36-1
- import-state: copy just some attributes* 二 8月 02 2016 Lukáš Nykrýn <lnykryn@redhat.com> - 9.49.35-1
[sysadm@bogon init.d]$

1.执行

rpm -ivh 源码包

RMP 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。

RPM是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。

1.安装软件:执行rpm -ivh rpm包名,如:
#rpm -ivh apache-1.3.6.i386.rpm
2.升级软件:执行rpm -Uvh rpm包名。
3.反安装:执行rpm -e rpm包名。
4.查询软件包的详细信息:执行rpm -qpi rpm包名
5.查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名
6.查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名
7.查看某个包是否被安装 rpm -qa | grep XXXX(moudle name)


安装rpmbuild环境 具体链接

2.获取源码

rpmbuild -ba SPECS/xxx.spec

已isic为例:
执行完成后获取到源码。源码在rpmbuild/BUILD/isic-2.0/src
修改源码前将isic-2.0源码备份一份isic-2.0bck。

3.修改完源码后,根据包说明,在源码目录进行make,然后打patch


make

diff -urNap 旧文件 新文件 > *.patch

diff -urNap isic-2.0bck/src/isic_admin.c isic-2.0/src/isic_admin.c > isic-2.0-modify_isic_admin_for_secadm.patch

将打完的patch文件,放到SOURCES文件夹。

4.修改isic的SPEC文件


修改如下:

修改对应的23-29

https://blog.csdn.net/u012373815/article/details/73257754vi  xxx.spec Name:           hellorpm           #名字为源码tar.gz 包的名字
Version:        1.0.0             #版本号,一定要与tar.gz包的一致哦
Release:        1%{?dist}         #释出号,也就是第几次制作rpm
Summary:       helloword   #软件包简介,最好不要超过50字符 License:        GPL                   #许可,GPL还是BSD等
URL:            #可以写一个网址
Packager:       abel
Source0:        %{name}-%{version}.tar.gz
#定义用到的source,也就是你的源码BuildRoot:      %_topdir/BUILDROOT
#这个是软件make install 的测试安装目录.BuildRequires:  gcc,make                           #制作过程中用到的软件包
Requires:       python-apscheduler >= 2.1.2-1.el7,python-daemon >= 1.6-1.el7  #软件运行依赖的软件包,也可以指定最低版本如 bash >= 1.1.1
%description                #描述,随便写
%prep                          #打包开始
%setup -q                      #这个作用静默模式解压并cd                               %build              #编译制作阶段,主要目的就是编译,如果不用编译就为空
./configure \                                     %{?_smp_mflags}          #make后面的意思是:如果就多处理器的话make时并行编译 %install                        #安装阶段
rm -rf %{buildroot}             #先删除原来的安装的,如果你不是第一次安装的话 cp -rp %_topdir/BUILD/%{name}-%{version}/*  $RPM_BUILD_ROOT
#将需要需要打包的文件从BUILD 文件夹中拷贝到BUILDROOT文件夹下。#下面的几步pre、post、preun、postun 没必要可以不写
%pre        #rpm安装前制行的脚本 %post       #安装后执行的脚本 %preun      #卸载前执行的脚本 %postun     #卸载后执行的脚本 %clean #清理段,删除buildroot
rm -rf %{buildroot} %files  #rpm要包含的文件
%defattr (-,root,root,-)   #设定默认权限,如果下面没有指定权限,则继承默认
/etc/hello/word/helloword.c           #将你需要打包的文件或目录写下来###  7.chagelog section  改变日志段
%changelog 

5.执行

rpmbuild -ba SPECS/xxx.spec

https://ipcmen.com/rpmbuild


rpm包位置:

二进制包位置:

可以用sz命令,下载到windows

rz从Windows上传到linux

1.如何编译RPM包,2.rpm查看某个文件属于那个包3.查看changelog相关推荐

  1. maven 打包指定依赖包_Maven打包成Jar文件时依赖包的问题

    我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...

  2. linux 查看gz文件,【shell 脚本】查看*.gz 文件的内容

    #!/bin/bash # zmore #使用'more'来查看gzip文件 NOARGS=65 NOTFOUND=66 NOTGZIP=67 if [ $# -eq 0 ] # 与if [ -z & ...

  3. Idea Git查看某个文件操作的历史记录 Git查看选中代码的操作历史记录

    一 Git查看某个文件操作的历史记录 操作过程 选中文件---->鼠标右键------>Git------->Show History 二 Git查看选中代码的操作历史记录 操作过程 ...

  4. iOS 查看.a文件的方法,可以查看有无热更新代码,防止上线被拒绝

    查看.a文件 看有没有 dlopen(), dlsym(),performSelector,respondToSelector,命令行:nm -u xxx.a >> xxx.txt ,生成 ...

  5. 手机查看pcap文件_java抓包后对pcap文件解析示例

    这是自己写的简单的解析pcap文件,方便读取pcap文件,大家参考使用吧 InputStream is = DataParser.class.getClassLoader().getResourceA ...

  6. 如何linux查看硬盘文件,如何使用linux 指令查看硬盘

    df命令用于查看挂载点信息与磁盘使用量,格式为:"df [选项] [文件]". 查看挂载信息与硬盘使用量:"df -h" 参数 作用 -a 显示出所有的文件系统 ...

  7. java 获取apk的包名_java从apk文件里获取包名、版本号

    测试代码: package org.apkinfo.test; import java.io.IOException; import java.util.ArrayList; import org.a ...

  8. go 查看全局安装了哪些包_GO 文档笔记

    前言 最开始写 GO 的时候, 发现方法的注释并不支持@param, @return等参数, 搞得我都不知道该如何给自己的方法写文档说明了. 而且网上搜了搜也没有搜到教程, 甚是郁闷. 今天找到了GO ...

  9. python创建字典和包的区别_python之路—模块和包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

最新文章

  1. 阿布扎比成立全球首所培养研究生的人工智能大学
  2. idea与mysql连接时,遇见的小问题
  3. BZOJ 3224: Tyvj 1728 普通平衡树 treap
  4. libSVM在matlab下的使用安装
  5. WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形
  6. 【点云分割】区域生长(用鼠标选中一个点长出一个)
  7. java 多项式拟合最多的项数_python实现2019nCoV确诊数据拟合与预测
  8. 金蝶ERP实现产品入库冲减生产现场虚仓毛坯数
  9. 编码神器 Sublime Text 包管理工具及扩展大全
  10. paip.VOB DVD视频的无损分割与截取
  11. 大数据技术原理与应用(第八章HBase测试)
  12. 区块链入门系列之P2P
  13. 视频流调试过程(海康威视+Kurento)
  14. MySQL 官网下载地址
  15. lightoj1219Mafia
  16. 运动控制卡的函数库与Linux,运动控制卡应用开发教程之使用Qt
  17. Excel文件转成MD格式
  18. 查看笔记本SN序列号
  19. 张驰咨询:六西格玛如何帮助公司减少客户投诉
  20. 计算机制图训练实训报告答案,制图实训报告范文

热门文章

  1. 新手小白如何选择入门吉他?注意这几点告别选择困难,附上初学者高性价比吉他品牌推荐!
  2. 基因测序需要什么计算机水平,堪称“超极生命计算机”的华大基因测序仪 T7 到底有多厉害?...
  3. 他山之石——运维平台哪家强?
  4. Spark内核之内存管理
  5. 液压泵优化设计matlab,基于Matlab的外啮合齿轮泵多目标优化设计的研究
  6. 大牛database
  7. 全国各省及城市的市场主体、企业数量排名,粤苏鲁浙分列前四
  8. 2022-02-25 U3D全栈班 010-预制件
  9. 【解题控】两个练习让你掌握“平行四边形”
  10. 看懂马达内绕和外绕区别,才能了解全自动无刷电机绕线机