Linux rpmbuild命令

一、简介

rpmbuild命令用于创建软件的二进制包和源代码包。

二、选项

参考:http://blog.sina.com.cn/s/blog_4ba5b45e0102e5r2.html     http://www.jinbuguo.com/redhat/rpmbuild.html

三、实例

1 准备打包环境

执行如下命令安装rpmbuild和rpmdevtools

#yum install rpmbuild
#yum install rpmdevtools 

执行如下命令来生成rpmbuild的工作目录

#rpmdev-setuptree

工作目录结构如下,

~/rpmbuild
~/rpmbuild/SOURCES              #放置打包资源,包括源码打包文件和补丁文件等
~/rpmbuild/SPECS                #放置SPEC文档
~/rpmbuild/BUILD                #打包过程中的工作目录
~/rpmbuild/RPMS                 #存放生成的二进制包
~/rpmbuild/RPMS/i386            #存放生成的i386结构包
~/rpmbuild/SRPMS                #存放生成的源码包
提示:rpmdev-setuptree命令默认将再当前用户主目录下创建一个RPM构建根目录结构,如果需要改变次默认位置,可以修改配置文件:~/.rpmmacros中变量_topdir对应的值即可。

2、载源码包到SOURCES目录,不需要解压

cd SOURCES/
wget http://nginx.org/download/nginx-1.2.1.tar.gz

3、撰写Spec文件

SPEC撰写是打包RPM的核心,也算是最难的一步,好在我们可以从参照一个简单的模板文件开始,在可以实现基本功能的基础上再一步一步的扩充文档内容,直至完全达到要求。下面是一个简单的SPEC文档,其中包括了一些说明信息(注:#后面的内容为说明信息),该SPEC文档是对一个测试的软件项目hellorpm写的,hellorpm软件包编译后仅有一个执行文件、一个手册文件和一个项目说文件。

nginx.spec文档的内容如下:

#
# Example spec file for nginx
#
#软件包简要介绍
Summary: high performance web server

#软件包的名字
Name: nginx

#软件包的主版本号
Version: 1.2.1

#软件包的次版本号
Release: 1.el5.ngx

#授权协议
License: 2-clause BSD-like license

#软件分类
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.2.1.tar.gz
URL: http://nginx.org/
Distribution: Linux
Packager: zhumaohai <[email protected]>

#软件包的内容介绍
%description
nginx [engine x] is a HTTP and reverse proxy server, as well as
a mail proxy server

#表示预操作字段,后面的命令将在源码代码BUILD前执行
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.2.1
zcat $RPM_SOURCE_DIR/nginx-1.2.1.tar.gz | tar -xvf -

#BUILD字段,将通过直接调用源码目录中自动构建工具完成源码编译操作
%build
cd nginx-1.2.1

#调用源码目录中的configure命令
./configure --prefix=/usr/local/nginx

#在源码目录中执行自动构建命令make
make

#安装字段
%install
cd nginx-1.2.1

#调用源码中安装执行脚本
make install
%preun
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi

#文件说明字段,声明多余或者缺少都将可能出错
%files
#声明/usr/local/nginx将出现在软件包中
/usr/local/nginx

4、构建RPM包

开始构建操作,首先进入到当前用户的rpmbuild根目录

#cd ~/rpmbuild/
#rpmbuild -ba SPECS/nginx.spec

提示:-ba表示build all,即生成包括二进制包和源代码包的所有RPM包,如果正常的话,rpmbuild将正常退出,同时在RPMS目录和SRPMS目录中将生成对应的RPM包。

参考:http://blog.sina.com.cn/s/blog_5d867af101019b7i.html     http://hlee.iteye.com/blog/343499
     https://www.centos.bz/2012/06/make-rpm-package-methods/
时间: 2024-10-17 17:43:41

Linux rpmbuild命令的相关文章

Linux -- Ubuntu 命令

一.文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~:进入上一级目录:cd -) 5.查看自己所在目录:pwd 6.查看当前目录大小:du 7.显示目录文件列表:ls -l (-a:增加显示隐含目录) 其中:蓝:目录:绿:可执行文件:红:压缩文件:浅蓝:链接文件:灰:其他文件:红底白字:错误的链接文件 8.浏览文件:more 文件名.txt:less 文

Linux常用命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验

linux常用命令-2

晚上翻翻很久之前从网上down的各种资料,有些有用.下面是不知从哪弄来的txt文档,看看觉得挺好,下面的是原文. Linux 常用命令使用方法大搜刮管理提醒: 本帖被 haowubai 执行置顶操作(2009-02-06) Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前shell,输入:exit 2.useradd netse

三十、Linux常用命令(二)

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验

类型:linux;问题:linux命令;结果:Linux常用命令大全

Linux常用命令大全 QQ空间新浪微博腾讯微博人人网豆瓣网百度空间百度搜藏开心网复制更多1997 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 系统信息 arch 显示机器的处理器架构(1) unam

Linux常用命令(echo、date、ls、cd、history、cat)

一.linux常用命令有很多今天我们来总结一下常用的入门命令: 1.linux下关机命令:poweroff.init 0.halt.shutdown -h now 2.linux下重启命令:reboot.init 6.shutdown -r now 3.shutdown命令: 格式:shutdown  options TIME 其中options有以下几个: -r:执行重启 -c:取消shutdown命令 -h:执行关机 其中TIME有以下几个: now:表示现在 +m:相对时间表示法,从命令提

Linux常用命令学习

补充: 管道符号:   | 含义: 命令1 的正确输出作为命令2的输出对象. 格式: 命令1   |  命令2 举例: ls -ctrl |  more 常用命令: netstat   -an    |  grep    ESTABLISHED         查看正在连接的端口 netstat   -an    |   grep   LISTEN find   .    -name   test.txt    |     cat    -n          在当前目录下找到文件名为test.

linux 解压缩命令

linux zip命令 zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:不提示的情况下覆盖文件:-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下: 3.其他zip -d myfile.zip smart.txt删除压缩文件中

linux常用命令详解

linux常用命令 cut命令 例如:cut -d\| -f1,4 xx.txt -d 表示字段分隔符 -f 表示要显示的字段域,如果域之间,(逗号)隔开表示显示对应的单个域,如果用-隔开表示显示连续的域 sort命令 例如:sort -t\| -k2 xx.txt -n 按数值排序 -r 降序 -t 字段分隔符 -k 以哪个字段为关键字进行排序 -u 去重 -f 排序时不区分大小写 uniq命令 注意:使用uniq命令时,一定要先进行排序 -c 显示文件中行重复的次数 -d 只显示重复的行 -