RPM包制作

http://ftp.rpm.org/max-rpm/index.html
1. 安装软件
yum install rpm-build rpmdevtools -y
  • 修改配置
~/.rpmmacros
//注释掉 __arch_install_post // 可以不注释
2. 创建打包目录
  • 创建打包目录
在任意一个目录下,执行
mkdir BUILD  RPMS  SOURCES  SPECS  SRPMS 
3. 准备 SOURCES 目录
  • 拷贝源码到 SOURCES 目录
将 pcre-8.43.tar.gz 放置到 SOURCES
4. 准备 SPECS 目录
  • 在 rpmbuild/SPECS 中创建 pcre.spec,并修改
rpmdev-newspec pcre // 会生成 pcre.spec
vim pcre.spec // 打开并修改
  • pcre.spec
Name:           pcre
Version:        8.4.3
Release:        1%{?dist}
Summary:        regular base on lua 

License:        GPL
URL:            http://www.pcre.org/
Source0:        pcre-8.43.tar.gz

BuildRequires:  gcc
Requires:       ls

%description
regular base on lua 2

%prep
#%setup -q
rm -rf $RPM_BUILD_DIR/pcre-8.43
zcat $RPM_SOURCE_DIR/pcre-8.43.tar.gz | tar xvf -


%build
cd $RPM_BUILD_DIR/pcre-8.43
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
cd $RPM_BUILD_DIR/pcre-8.43
%make_install

%files
%doc

%changelog

4. 打包
  • 生成 二进制包(.rpm)及源码包 (.src.rpm)
在 rpmbuild 目录下
rpmbuild --define "_topdir $(pwd)" -ba  SPECS/pcre.spec

综述:

最麻烦的有几件事情
1. .spec 文件的编写
2. 源码配置编译问题的解决.

其他


demo nginx
- SOURCES
cd SOURCES/
wget http://nginx.org/download/nginx-1.2.1.tar.gz
  • SPECS/nginx-1.2.1.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: Kevinli

 
#软件包的内容介绍
%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 --without-http_rewrite_module --without-http_gzip_module

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

#安装字段
%install

cd nginx-1.2.1

#调用源码中安装执行脚本  
make install DESTDIR=%{buildroot}

%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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值