RPM打包

本文详细介绍了RPM打包的全过程,包括rpmbuild的使用、宏定义、构建目录、Spec文件的准备、编译安装测试、rpmlint工具的检查,以及patch生成方法和Python项目的打包注意事项。通过实例讲解,帮助读者掌握RPM软件包的制作技巧。
摘要由CSDN通过智能技术生成

rpmbuild

安装rpmdevtools 的同时一同安装上rpmlint(检查包的质量)
yum install rpmdevtools rpmlint

rpmbuild --showrc:显示rpm所有的宏

rpmbuild
-ba 既生成src.rpm又生成二进制rpm
-bs 只生成src的rpm
-bb 只生二进制的rpm
-bp 执行到pre
-bc 执行到 build段
-bi 执行install段
-bl 检测有文件没包含

macros都在这里:/usr/lib/rpm/macros or /usr/share/doc/rpm-[version]/macros
使用的时候:%{}

内置的macro
%{_libdir} /usr/lib
%{_bindir} /usr/bin/
%{_tmppath} /var/tmp
%_usr /usr

查看macro最简单的方法:rpm –eval [macro]

构建过程

1、默认工作路径

rpm从4.5.x版本开始,将rpmbuid的默认工作路径移动到用户家目录下的rpmbuild目录里,即$HOME/rpmbuild,并且推荐用户在制作rpm软件包时尽量不要以root身份进行操作。
关于rpmbuild默认工作路径的确定,通常由在/usr/lib/rpm/macros这个文件里的一个叫做%_topdir的宏变量来定义。
如果用户想更改这个目录名,可以在~/.rpmmacros的隐藏文件,然后在里面重新定义%_topdir,指向一个新的目录名:
%_topdir $HOME/rpmbuild

2、准备

1、准备构建目录(rpm build tree)
$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
官方网站提示:执行rpmdev-setuptree会在当前用户家目录下的rpmbuild目录(如果该目录不存在也会被自动创建)里自动建立上述目录。

目录名 宏别名 说明
BUILD %_builddir 编译rpm包的临时目录
BUILDROOT %_buildrootdir 编译后生成的软件临时安装目录。最新官网上已经不创建这个目录了!
RPMS %_rpmdir 最终生成的可安装rpm包的所在目录
SOURCES %_sourcedir 所有源代码和补丁文件的存放目录
SPECS %_specdir 存放SPEC文件的目录(重要)
SRPMS %_srcrpmdir 最终的rpm源码格式存放路径(暂时忽略掉,别挂在心上)

2、将所有用于生成rpm包的源代码、shell脚本、配置文件都拷贝到SOURCES目录里,注意通常情况下源码的压缩格式都为*.tar.gz格式
cp main-0.1.tar.gz ~/rpmbuild/SOURCES

3、准备Spec文件

%define nginx_user nginx       #这是我们自定义了一个宏,名字为nginx_user值为nginx,%{nginx_user}引用
    
Name:           main
Version:        0.1
Release:        1%{?dist}        #?表示后面的dist有值就启用,没有值就舍弃
                                 #dist根据系统版本来定义,redhat5是el5,redhat6是el6,Fedora 9就是 .fc9
Summary:        Calculate sin and cos value  #一行写完,不要太长;不要在末尾加句点!!RPM 不喜欢最后有个句点
Group:          System Environment/Daemons   #通过cat  /usr/share/doc/rpm-4.8.0/GROUPS这条命令查看系统上支持的组
License:        GPL
URL:            http://linux.vbird.org
Source0:        main-0.1.tar.gz
Source0:        %{name}-%{version}.tar.gz 
Source1:        index.html 
Source2:        init.nginx 
Source3:        fastcgi_params 
Source4:        nginx.conf 
#patch0:      
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值