首页 > 其他分享 >Rpmbuild原码打包成rpm包

Rpmbuild原码打包成rpm包

时间:2023-01-04 15:00:25浏览次数:33  
标签:rpmbuild 目录 Rpmbuild 源码 nginx rpm spec 原码

RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。

linux软件包分为两大类:

(1)二进制类包,包括rpm安装包(一般分为i386和x86等几种)

(2)源码类包,源码包和开发包应该归位此类(.src.rpm)。

有时候为了方便源码包的安装,和我们自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,当有了源码包就可以直接编译得到二进制安装包和其他任意包。spec file是制作rpm包最核心的部分,rpm包的制作就是根据spec file来实现的。在制作自定义rpm包的时候最好不要使用管理员进行,因为管理员权限过大,如果一个命令写错了,结果可能是灾难性的,而制件一个rpm 包普通用户完全可以实现。

1、安装rpm-build软件包

RPM打包使用的是rpmbuild命令,这个命令来自rpm-build软件包,这个是必装的。

yum -y install  rpm-build

2、生成打包.spec文件(以nginx为例)

rpmbuild  -ba  nginx.spec

//制作rpm包,但是没有配置文件会报错,报错也需要敲,会产生所需的目录。

当执行rpmbuild命令失败之后,会在当前目录下生成一个rpmbuild目录,该目录中包含下面的6个目录
BUILD:源代码解压以后放的位置,只需提供BUILD目录,具体里面放什么,不用我们管,所以真正的制作车间是BUILD目录。
BUILDROOT:假根,使用install临时安装到这个目录,把这个目录当作根来用的,所以在这个目录下的目录文件,才是真正的目录文件。当打包完成后,在清理阶段,这个目录将被删除。
RPMS:制作完成后的rpm包存放目录,为特定平台指定子目录(i386,i686,ppc)。
SOURCES:收集的源文件,源材料,补丁文件等存放位置。
SPECS:存放spec文件,作为制作rpm包的领岗文件,文件以.spec结尾。
SRPMS:src格式的rpm包位置 ,既然是src格式的包,就没有平台的概念了。

3、将nginx源码文件拷贝到rpmbuild/SOURCES/中

cp  nginx-1.17.6.tar.gz  rpmbuild/SOURCES/ 

//拷贝源码包到rpmbuild的工作目录

4、安装编译nginx所需库

yum -y install  gcc  make  pcre-devel  openssl-devel

5、编写nginx.spec文件

vim  rpmbuild/SPECS/nginx.spec  //编写将nginx转换为rpm包的配置文件
Name:nginx     //软件名
Version:1.17.6    //版本
Release:1       //发布的rpm包的版本
Summary:test~    //简单描述
#Group:
License:GPL    //授权协议 ,GPL表示自由软件
URL:www.abc.com    //网址
Source0:nginx-1.17.6.tar.gz     //源码包 
#BuildRequires:   
#Requires:
%description    //详细描述
test~ test~ 
%post      //可以添加安装rpm包之后执行的命令,不是必须
useradd  nginx
%prep
%setup -q
%build
./configure  //配置,如果要添加选项或者模块可以继续写
make %{?_smp_mflags}     //编译
%install
make install DESTDIR=%{buildroot}    //安装
%files
%doc
/usr/local/nginx/*     //将改路径下文件打包成rpm
%changelog

6、生成rpm包 

rpmbuild  -ba  rpmbuild/SPECS/nginx.spec  //根据上述文件制作rpm包

7、查看结果

ls  rpmbuild/RPMS/x86_64/

标签:rpmbuild,目录,Rpmbuild,源码,nginx,rpm,spec,原码
From: https://www.cnblogs.com/eeexu123/p/17024835.html

相关文章

  • Centos7离线安装Mysql8(rpm安装)
    1.下载:        官网下载: MySQL::DownloadMySQLCommunityServer2.解压将下载好的tar文件放到centos中,目录文件夹名称自定义,解压后得到:[root@localhost......
  • 原码、反码、补码的需要与理解
    黑马笔记-原码、反码、补码的需要与理解原码十进制数字的二进制表现形式;第一位是正负,0为正,1为负;利用原码直接进行计算,正数计算无问题!而负数的计算利用原码计算会进行出错......
  • 原码, 反码, 补码 详解
    一.机器数和真值在学习原码,反码和补码之前,需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是......
  • rpmbuild使用
    1.安装rpmbuild命令用于创建软件的二进制包和源代码包。yuminstallrpmbuildrpmdevtools-y生成rpm工作目录:rpmdev-setuptree命令默认将在当前用户主目录下创建一个RPM构......
  • yum下载及获取下载的服务的rpm包
    [[email protected]]#yumupdatersyslog  获取[root@db2packages]#yumdownloader--resolvelibestrlibfastjson4rsyslog ......
  • 原码、反码、补码
    原码、反码、补码在线计算:​​http://www.atoolbox.net/Tool.php?Id=952​​1、计算机中都是用"补码"表示在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,......
  • Linux中rpm安装软件包
    1.RPM包命名规则:httpd-2.2.15-53.el6.centos.x86_64.rpm httpd软件包名 2.2.15软件版本 53软件发布次数 el6.centos适合的Linux平台 x86_64适合的硬......
  • python2项目打包rpm笔记
    python2项目打包成rpm包项目目录结构和说明#其中demo的是项目的根目录#pkg是代码逻辑目录#config是配置文件目录#main.py是项目的开始目录#Makefile是打包文件......
  • yum命令提示error: rpmdb: BDB0113 Thread/process,解决方法
    最近在做RHCE的题目,yum命令装vdo时,使用yuminstall命令的时候,提示error:rpmdb:BDB0113Thread/process,具体错误如下:[root@node2~]#yuminstallvdo-yerror:rpmdb......
  • 艾美捷RPMI-1640培养基L-谷氨酰胺化学性质说明
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......