制作haproxy rpm包

今天改了一下haproxy网页上的logo,将Haproxy改成了cs2c load balance。控制网页显示的文件在include/common/version.h中。

模仿网上下载的rpm包,自己写了一个spec文件:

Summary: haproxy load balance
Name: haproxy
Version:
1.4.9
Release:
1
License: GPL
Group: linuxing
Source: haproxy
-1.4.9.tar.gz
Url: http:
//www.cs2c.com.cn
Packager: lm

%description
This package
is about haproxy load balance made by lm

%prep
%setup -c
%install
cp
-r haproxy-1.4.9/etc/haproxy/ /etc/
cp
-r haproxy-1.4.9/etc/logrotate.d/haproxy /etc/logrotate.d/
cp
-r haproxy-1.4.9/etc/rc.d/init.d/haproxy /etc/init.d/
chkconfig
--add haproxy
chmod
755 /etc/init.d/haproxy
cp
-r haproxy-1.4.9/usr/sbin/haproxy /usr/sbin/
cp
-r haproxy-1.4.9/usr/share/doc/haproxy-1.3.25 /usr/share/doc/
cp
-r haproxy-1.4.9/usr/share/haproxy /usr/share/
cp
-r haproxy-1.4.9/usr/share/man/man1/haproxy.1.gz /usr/share/man/man1/
cp
-r haproxy-1.4.9/var/lib/haproxy /var/lib/

%files
%defattr(-,root,root)
/usr/sbin/haproxy
/etc/haproxy/haproxy.cfg
/etc/logrotate.d/haproxy
/etc/init.d/haproxy
/usr/share/doc/haproxy-1.3.25
/usr/share/haproxy
/usr/share/man/man1/haproxy.1.gz
/var/lib/haproxy

其中主要是替换了/usr/sbin/目录下的haproxy二进制文件,利用源码编译后生成的新文件进行替换。

耗费时间的是%file参数,一开始自己建立了一个haproxy-1.4.9目录,代码都在这里。运行rpmbuild -bb haproxy.spec后可以成功生成rpm包,但安装后没有任何显示,也就是说安装与目录前后不一致。试了很多此,最后终于明白,%file中要写明安装后的文件目录。网上有很多文章介绍rpm打包,可以参考如下网址:

www.ibm.com/developerworks/cn/linux/l-rpm/

%file指的是已经安装后的文件目录。

另一个参考:

http://huanyue.javaeye.com/blog/721001

原文地址:https://www.cnblogs.com/chinacloud/p/1899163.html