Linux 软件包工具rpmbuild

ops/2024/9/25 17:16:05/

 下载工具rpm-build

yum search rpm-build
yum install rpm-build.x86_64

制作属于自己的RPM

1.准备打包目录

ls rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

2.放入软件包

 cp /root/nginx-1.18.0.tar.gz rpmbuild/SOURCES/

3.编辑spec文件

 vim rpmbuild/SPECS/nginx.spec
文件内容如下
Name: nginx # 软件包名
Version: 1.18.0 # 版本
Release: 1%{?dist} # 发行次数 需要手动修改
Summary: A light-weight WEB server
License: GPL # 开源协议
URL: https://nginx.org/en/ # 项目官网
Source0: nginx-1.18.0.tar.gz # 源码包 从soureces 目录下面找
BuildRequires: gcc gcc-c++ make # 编译环境
Requires: zlib zlib-devel openssl-devel openssl pcre pcre-devel # 软件包依赖关系%description # 描述信息
Engine x is a light web server and a useful reverse proxy server.%prep # 安装rpm包前的准备脚本%setup -q # 解压源码包%build # 开始编译
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx # 配置编译参数
make %{?_smp_mflags} # 编译%install # 安装
make install DESTDIR=%{buildroot}%files # 指定文件释放路径
/usr/local/nginx/*%post  #安装
useradd -M -s /sbin/nologin nginx
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx%postun  #卸载
if [ $1 -eq 0 ]; then/usr/sbin/userdel nginx
fi%changelog

4.检查

 tree rpmbuild/
rpmbuild/
├── BUILD // 源码包编译的工作现场
├── BUILDROOT // 另一个源码包编译的工作现场
├── RPMS // 保存打包完成的rpm包
├── SOURCES // 源码包
│ └── nginx-1.18.0.tar.gz
├── SPECS // 制作RPM包要使用的配置文件
│ └── nginx.spec
└── SRPMS // 包含源码未编译的RPM包

5.制作软件包

rpmbuild -ba rpmbuild/SPECS/nginx.spec

6.复制出来并检查

cp rpmbuild/RPMS/x86_64/nginx-1.18.0-1.el8.x86_64.rpm .
>rpm -qpi nginx-1.18.0-1.el8.x86_64.rpm
Name : nginx
Version : 1.18.0
Release : 1.el8
Architecture: x86_64
Install Date: (not installed)
Group : Unspecified
Size : 773910
License : GPL
Signature : (none)
Source RPM : nginx-1.18.0-1.el8.src.rpm
Build Date : Wed 17 Apr 2024 02:03:02 AM PDT
Build Host : bogon
Relocations : (not relocatable)
URL : https://nginx.org/en/
Summary : A light-weight WEB server
Description :
Engine x is a light web server and a useful reverse proxy server.


http://www.ppmy.cn/ops/15477.html

相关文章

Pandas 2.2 中文官方教程和指南(二十二)

原文:pandas.pydata.org/docs/ 时间增量 原文:pandas.pydata.org/docs/user_guide/timedeltas.html 时间增量是时间之间的差异,以不同的单位表示,例如天、小时、分钟、秒。它们可以是正数也可以是负数。 Timedelta是datetime.tim…

数组模拟几种基本的数据结构

文章目录 数组模拟单链表数组模拟双链表数组实现栈数组模拟队列总结 数组模拟单链表 首先类比结构体存储单链表,我们需要一个存放下一个节点下标的数组,还需要一个存储当前节点的值的数组,其次就是一个int类型的索引,这个索引指向…

【C++风云录】从点云处理到运动规划:揭秘工业自动化与机器视觉领域的创新技术库和框架

工业自动化与机器视觉:现代制造业的必备技术 前言 工业自动化与机器视觉是现代制造业中的重要领域,它们可以提高生产效率、提升产品质量和降低生产成本。在工业自动化中,通过应用各种自动化技术和设备,可以实现生产线的自动化控…

carrier开利触摸屏ICVC控制面板维修CEPL130445

开利离心机19XR空调ICVC显示面板维修CEPL130445-03-R/04-R/02-R 人机界面触摸维修故障有:花屏、白屏、按触摸屏无反应或反应慢(触摸不好)、内容错乱、无背光、背光暗、有背光无字符、不能通信、按键无反应等(可更换液晶屏)黑屏、对触摸屏触摸…

文旅IP孵化打造抖音宣传推广运营策划方案

【干货资料持续更新,以防走丢】 文旅IP孵化打造抖音宣传推广运营策划方案 部分资料预览 资料部分是网络整理,仅供学习参考。 PPT可编辑(完整资料包含以下内容) 目录 文旅IP抖音运营方案 1. 项目背景与目标 - 背景&#xff1a…

Socket编程实验

文章目录 服务端:客户端:使用说明:封装后服务端:封装后客户端 听学弟学妹们反馈,好像老师发的socket编程实验指导里的代码跑不起来。 今天花了一大把时间写了下socket编程代码 现在附上能跑的c代码: 最重要…

应用层协议 -- HTTPS 协议

目录 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 2、理解“加密” 二、对称加密 1、理解对称加密 2、对称加密存在的问题 三、非对称加密 1、理解非对称加密 2、中间人攻击 3、CA 证书和数字签名 四、总结 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 HTTPS 也是…

图像修复技术在AI去衣中的深度应用与探索

随着人工智能技术的飞速发展,图像修复技术在AI去衣领域的应用日益广泛。本文旨在深入探讨图像修复技术在AI去衣中的核心作用,并介绍一些专业的技术名词及其深刻解释。 一、引言 图像修复技术作为计算机视觉领域的重要分支,旨在通过算法对图…