制作RPM包createrepo

news2024/10/6 0:13:35

每次源码安装很费事,所以直接做一个RPM包

安装 rpm-build 软件包 

[root@proxy ~]# yum -y install rpm-build 

 生成 rpmbuild 目录结构

或许只有在家目录下生成一个不存在的目录才会生成 rpmbuild目录和子目录

若想在自己创建的目录下生成只有自己手动去创建,子目录

[root@proxy ~]# rpmbuild -ba xxx #会报错,没有文件或目录(目的是生成下面的
目录和子目录)
[root@proxy ~]# ls rpmbuild/

准备工作,将源码软件复制到 SOURCES 目录 

找到你的tar源码包,放到SOURCES下

[root@proxy ~]# cp lnmp_soft/nginx-1.16.1.tar.gz rpmbuild/SOURCES/
[root@proxy ~]# cd rpmbuild/SPECS/
Name:nginx
Version:1.16.1
Release: 1%{?dist}
Summary:Nginx is a web server
#Group:
License:GPL
URL:www.douniwan.com
Source0:nginx-1.16.1.tar.gz
#BuildRequires:
#Requires:
%description
this is a web server toooooooooooooooooooo
%post
useradd nginx
%prep
%setup -q
%build
./configure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/*
%changelog

对上文的解释 

[root@proxy SPECS]# vim nginx.spec #以spec结尾,编写配置文件
Name:nginx #源码包软件名称
Version:1.16.1 #源码包软件的版本号
Release: 1%{?dist} #制作的RPM包版本号
Summary:Nginx is a web server #RPM软件的概述
#Group: #nginx不属于其他组包
License:GPL #软件的协议,GPL是可以免费使用,免费修改软件
URL:www.douniwan.com #网址
Source0:nginx-1.16.1.tar.gz #源码包文件的全称
#BuildRequires: #不提示制作RPM时的依赖关系
#Requires: #安装RPM时的依赖关系
%description #软件的详细信息
this is a web server toooooooooooooooooooo
%post #安装后脚本,创建用户
useradd nginx
%prep
%setup -q #自动解压源码包,并cd进入目录
%build
./configure #配置
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/* #对哪些文件与目录打包
%changelog

 安装依赖软件包

yum -y install gcc pcre-devel openssl-devel

rpmbuild 创建 RPM 软件包 

[root@proxy SPECS]# rpmbuild -ba nginx.spec
[root@proxy SPECS]# cd /root/rpmbuild/RPMS/x86_64/

 测试安装 nginx

[root@proxy x86_64]# /usr/local/nginx/sbin/nginx -s stop
[root@proxy x86_64]# rm -rf /usr/local/nginx/
[root@proxy x86_64]# yum -y install nginx-1.16.1-1.el7.centos.x86_64.rpm
[root@web1 ~]# ls /usr/local/nginx/
[root@web1 ~]# yum info nginx #查看nginx的描述信息

 构建RPM包后可能出现的报错,编译过程中出现以下报错,按照提示说没有make命令 直接安装即可重新执行

 

都是干什么的

BUILD/ RPMS/ SOURCES/ SPECS/ SRPMS/

SPECS 目录用于存放 RPM 包的 spec 文件,编写一个 spec 文件来描述 RPM 包的详细信息和构建步骤

SOURCES 目录用于存放 RPM 包所需的源代码和补丁文件

createrepo

创建一个目录,把rpm包放在里面 运行createrepo(没有此命令安装一个) 目录 即可

里面就会有一个repodata的子目录,此时你就可以创建本地yum源了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于.NET实现的家电维修保养信息系统[含文档+PPT+源码等]精品

1 项目简介 Hi,各位同学好呀,这里是卡莫! 基于.NET实现的家电维修保养信息系统[含文档PPT源码等]精品 该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具: 开发软件:…

怎么查看特定的端口是否被屏蔽了

文章目录 怎么查看特定的端口是否被屏蔽了前言无法访问原因查看命令所用环境开启windows的telnet功能查看特定端口是否被墙WSL演示windows终端演示总结 怎么查看特定的端口是否被屏蔽了 前言 如果你不知道自己的服务器的某个端口是否被屏蔽了,通过阅读本文&#x…

如何利用EAP系统优化锂电生产线的自动化流程?

锂电行业是新兴的能源产业,其快速发展和规模化生产对设备自动化系统的需求也越来越高。在生产过程中,设备自动化系统EAP(Equipment Automation Program)可以实现对生产线上的所有机台进行实时管控,从而实现设备运行的自…

“AIGC早报”已内测2个月了,来看看她长什么样子

今天,是咱们社群“AI产品经理大本营”六周年活动的第二天,正式给大家介绍下,已内测2个月的重要会员权益——AIGC日报。 会分三个部分:效果口碑、我们如何做到的、今日的AIGC早报展示‍‍‍‍‍‍‍‍ ps,文末会发福利星…

将群晖NAS加入域控,来点企业级应用

1. 使用逻辑 将NAS加入域,所有套件和文件可通过域用户来访问。设置NAS中的文件夹权限时,NAS识别出域用户和域群组,并可设置二级文件夹的权限。域管理员会成为NAS的管理员。在域控管理台,可以看到NAS加入到了域控中,在…

dom操作

<script>var htmlEldocument.documentElementvar bodyEldocument.bodyvar headEldocument.headvar doctypedocument.doctypeconsole.log(htmlEl,bodyEl,headEl,doctype)</script> ul>li{$}*5 节点之间的关系(极少用) 空行注释没标签包括的文字也算是一个节点 子…

快速排序加量改进_CUTOFF+三点中值法+三路划分

目录 1引入情境2 形式化描述2-1递归结构2-2 一次划分2-3 C实现 3 在工程中的改进3-1 处理重复元素双向划分三路划分C 实现 3-2 最差情况的改进三点中值法随机选择pivot短序列切回插入排序 4 全部改进技术加持 1引入情境 从低到高排成一队&#xff0c;怎么办&#xff1f; 以大雄…

通过gulp+vite搭建vue3组件库

核心要点 通过 vite 搭建运行环境通过 gulp 执行编译流程通过 vite 编译组件代码编写 组件测试 组件打包 编译组件上传 npm 1、通过 vite 搭建运行环境 这里主要是创建一个可以运行的测试的组件的环境&#xff0c;全局安装vite脚手架&#xff0c;并初始化项目 npm create v…

简单两步创建nVisual建筑场景

nVisual是一款网络基础设施可视化管理软件&#xff0c;通过模型可规划即将建设的机房效果&#xff0c;或者将已有的机房场景复刻至系统中&#xff0c;便于运维管理者清晰的了解机房设备及线缆路由连接关系。 数据初始我们需要将数据中心场景复刻至系统中&#xff0c;建筑场景也…

meta标签复习总结

文章目录 前言一、用在哪里二、用途1.charset2.http-equiv3.name4.content5.keywords 前言 我们往往忽视&#xff0c;却又很重要的一个标签&#xff0c;meta&#xff0c;它在页面细节上面还提供了不小的作用。 一、用在哪里 先来看看它用法 <!DOCTYPE html> <html …

union和位域的混合使用

1、union&#xff08;共用体&#xff09; 1.1、概述 C 语言中&#xff0c;union是一种数据类型&#xff0c;对比于结构体&#xff0c;结构体中的每个成员都占用独立的内存空间&#xff0c;而联合中所有的成员都共享同一个内存空间。 也就是说&#xff0c;union中的不同成员要…

Android WebRTC+SRS/ZLM视频通话(5):Android使用WebRTC从SRS/ZLMediaKit拉流

Android WebRTCSRS/ZLM视频通话&#xff08;5&#xff09;&#xff1a;Android使用WebRTC从SRS/ZLMediaKit拉流 来自奔三人员的焦虑日志 接着上一章内容&#xff0c;继续来记录Android是如何使用WebRTC从SRS/ZLMediaKit拉流播放。WebRTC是一种实现实时音视频通信的技术&#xf…

三分钟教你如何定义自己的ChatGPT

三分钟教你如何定义自己的ChatGPT 成品预览材料准备MyChatGPT自定义AI 成品预览 材料准备 总共有两种方式&#xff1a; 一种是使用自己的OpenAI账号&#xff0c;这种方式是可控性比较强&#xff0c;同时也会有很多问题&#xff0c;比如你需要准备国外的手机号和Visa卡&#x…

目标检测论文总结

文章目录 1.目标检测论文123456789101112131415161718192021**22****25**2627 总结改进思路 1.目标检测论文 EI https://www.engineeringvillage.com/search/quick.url 其他 A YOLOv3-based Deep Learning Application Research for Condition Monitoring of Rail Thermite …

极客公园对话 Zilliz 星爵:大模型时代,需要新的「存储基建」

大模型在以「日更」进展的同时&#xff0c;不知不觉也带来一股焦虑情绪&#xff1a;估值 130 亿美元的 AI 写作工具 Grammarly 在 ChatGPT 发布后网站用户直线下降&#xff1b;AI 聊天机器人独角兽公司 Character.AI 的自建大模型在 ChatGPT 进步之下&#xff0c;被质疑能否形成…

外观、装饰、策略模式代码详解-软件设计(七十二)

真题详解&#xff08;索引长度计算&#xff09;-软件设计&#xff08;七十一)https://blog.csdn.net/ke1ying/article/details/130590260 外观模式 解析&#xff1a; public String getName()public void dispose(Patient patient)new ConcreteOatient(“name”)Facadenew Fa…

UPF问题解决

UPF配置文件内容解析 NWI Network Instance of the interface 结果调查&#xff0c;对upf网元配置文件进行了如下修改 将 - IF_2_NWIaccess.oai.org改为 - IF_2_NWIaccess3.oai.org 将 - IF_2_NWIaccess.oai.org改为 - IF_2_NWIaccess3.oai.org 然后两核心网接入了两个基站启…

Apache Doris 2.0 冷热分离快速体验

概述 对于任何一种数据库类软件来说&#xff0c;无论其基于传统数据库模型还是基于分布式结构&#xff0c;作为核心的永远是数据本身。而数据的生命周期&#xff0c;则体现在CRUD操作&#xff08;创建、查询、更新、删除&#xff09;上。任何一条数据从其生成的时刻开始&#…

程序设计语言与语言处理程序基础

目录 第七章、程序设计语言与语言处理程序基础1、编译与解释2、文法3、正规式 4、有限自动机5、表达式 6、传值与传址 7、多种程序语言特点 第七章、程序设计语言与语言处理程序基础 1、编译与解释 编译器是将整个高级语言程序一次性转化成目标机器的机器代码&#xff0c;编译…

Xcode安装ipa

iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store&#xff01;​ 下面进行步骤介绍&#xff01;​ 利用Appuploader这个软件&#xff0c;可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便&#xff0c;没有Mac也可以用Ap…