1.如何编译RPM包,2.rpm查看某个文件属于那个包3.查看changelog
[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相关推荐
- maven 打包指定依赖包_Maven打包成Jar文件时依赖包的问题
我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...
- linux 查看gz文件,【shell 脚本】查看*.gz 文件的内容
#!/bin/bash # zmore #使用'more'来查看gzip文件 NOARGS=65 NOTFOUND=66 NOTGZIP=67 if [ $# -eq 0 ] # 与if [ -z & ...
- Idea Git查看某个文件操作的历史记录 Git查看选中代码的操作历史记录
一 Git查看某个文件操作的历史记录 操作过程 选中文件---->鼠标右键------>Git------->Show History 二 Git查看选中代码的操作历史记录 操作过程 ...
- iOS 查看.a文件的方法,可以查看有无热更新代码,防止上线被拒绝
查看.a文件 看有没有 dlopen(), dlsym(),performSelector,respondToSelector,命令行:nm -u xxx.a >> xxx.txt ,生成 ...
- 手机查看pcap文件_java抓包后对pcap文件解析示例
这是自己写的简单的解析pcap文件,方便读取pcap文件,大家参考使用吧 InputStream is = DataParser.class.getClassLoader().getResourceA ...
- 如何linux查看硬盘文件,如何使用linux 指令查看硬盘
df命令用于查看挂载点信息与磁盘使用量,格式为:"df [选项] [文件]". 查看挂载信息与硬盘使用量:"df -h" 参数 作用 -a 显示出所有的文件系统 ...
- java 获取apk的包名_java从apk文件里获取包名、版本号
测试代码: package org.apkinfo.test; import java.io.IOException; import java.util.ArrayList; import org.a ...
- go 查看全局安装了哪些包_GO 文档笔记
前言 最开始写 GO 的时候, 发现方法的注释并不支持@param, @return等参数, 搞得我都不知道该如何给自己的方法写文档说明了. 而且网上搜了搜也没有搜到教程, 甚是郁闷. 今天找到了GO ...
- python创建字典和包的区别_python之路—模块和包
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...
最新文章
- 阿布扎比成立全球首所培养研究生的人工智能大学
- idea与mysql连接时,遇见的小问题
- BZOJ 3224: Tyvj 1728 普通平衡树 treap
- libSVM在matlab下的使用安装
- WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形
- 【点云分割】区域生长(用鼠标选中一个点长出一个)
- java 多项式拟合最多的项数_python实现2019nCoV确诊数据拟合与预测
- 金蝶ERP实现产品入库冲减生产现场虚仓毛坯数
- 编码神器 Sublime Text 包管理工具及扩展大全
- paip.VOB DVD视频的无损分割与截取
- 大数据技术原理与应用(第八章HBase测试)
- 区块链入门系列之P2P
- 视频流调试过程(海康威视+Kurento)
- MySQL 官网下载地址
- lightoj1219Mafia
- 运动控制卡的函数库与Linux,运动控制卡应用开发教程之使用Qt
- Excel文件转成MD格式
- 查看笔记本SN序列号
- 张驰咨询:六西格玛如何帮助公司减少客户投诉
- 计算机制图训练实训报告答案,制图实训报告范文
热门文章
- 新手小白如何选择入门吉他?注意这几点告别选择困难,附上初学者高性价比吉他品牌推荐!
- 基因测序需要什么计算机水平,堪称“超极生命计算机”的华大基因测序仪 T7 到底有多厉害?...
- 他山之石——运维平台哪家强?
- Spark内核之内存管理
- 液压泵优化设计matlab,基于Matlab的外啮合齿轮泵多目标优化设计的研究
- 大牛database
- 全国各省及城市的市场主体、企业数量排名,粤苏鲁浙分列前四
- 2022-02-25 U3D全栈班 010-预制件
- 【解题控】两个练习让你掌握“平行四边形”
- 看懂马达内绕和外绕区别,才能了解全自动无刷电机绕线机