Linux 软件包工具rpmbuild

2024-04-18 09:44

本文主要是介绍Linux 软件包工具rpmbuild,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 下载工具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.

这篇关于Linux 软件包工具rpmbuild的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/914431

相关文章

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不