关于rpm包的知识请自行网络查阅相关资料,以下是我的spec脚本,里面在prep阶段从源码直接进行软链接,build阶段不进行任何操作,这样做的好处是不用再进行编译之前已经编译过的代码,然后在install阶段直接安装到虚拟根目录下,以及配置文件的更新
Name: asterisk
Version: 13.3.2Release: 1%{?dist}
Summary: Design by liweiqin
Group: Applications/Internet
License: GPL
URL: www.weiju.com
Source0: asterisk-13.3.2.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%description
%prep
ln -s /src/asterisk/asterisk-13.3.2 $RPM_BUILD_DIR/asterisk-13.3.2
%build
%install
rm -rf %{buildroot}
cd $RPM_BUILD_DIR/asterisk-13.3.2
make install DESTDIR=%{buildroot}
make samples DESTDIR=%{buildroot}
install -D -p -m 0777 contrib/init.d/rc.redhat.asterisk %{buildroot}%{_initrddir}/asterisk
rm -rf %{buildroot}/etc/asterisk
rm -rf %{buildroot}/var/lib/asterisk
mkdir %{buildroot}/etc/asterisk
mkdir %{buildroot}/var/lib/asterisk
cp -rf $RPM_BUILD_DIR/asterisk-13.3.2/etc/* %{buildroot}/etc/asterisk
cp -rf $RPM_BUILD_DIR/asterisk-13.3.2/lib/* %{buildroot}/var/lib/asterisk
%files
%defattr(-,root,root,-)
/etc/
/var/
/usr/
%clean
后面自己编写了个pack_from_ln.sh,内容如下
rpmbuild -bb /root/rpmbuild/SPECS/asterisk_from_ln.spec
以后要进行rpm的包只要运行pack_from_ln.sh即可