kamailio/openser/opensips 生成RPM包/RPM打包

来源:互联网 发布:java并发编程实践源码 编辑:程序博客网 时间:2024/06/07 01:07

使用RPM包进行安装部署可以节省许多时间,一些环境的配置都可以使用脚本完成,这样部署一台proxy服务器两步走,脚本配环境,RPM装程序。先说说标准流程,然后再说下如何加入自己开发的模块。

一.RPM环境配置
安装rpmforge,根据系统架构选择32位版还是64位版。
  • i386 - http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
  • x86_64 - http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

安装DAG's GPG key

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt.

安装下载的RPM包

rpm -ivh rpmforge-release-0.5.2-2.el5.rf.*.rpm

安装rpm-build,把命令复制来一起执行就行了。

yum install rpm-buildyum install redhat-rpm-configcdmkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

二.进行kamailio打包

cd kamailio源码目录make FLAVOUR=kamailio tar

复制 Kamailio Spec Files

kamailio.default里面的参数可以把共享内存和私有内存调大一些。

cdmv kamailio-3.1/kamailio/kamailio-3.1.2_src.tar.gz rpmbuild/SOURCES/cp kamailio-3.1/kamailio/pkg/kamailio/rpm/kamailio.init rpmbuild/SOURCES/cp kamailio-3.1/kamailio/pkg/kamailio/rpm/kamailio.default rpmbuild/SOURCES/cp kamailio-3.1/kamailio/pkg/kamailio/rpm/kamailio.spec.CentOS rpmbuild/SPECS/

安装kamailio依赖

yum install makeyum install gccyum install flexyum install bisonyum install mysql-develyum install openssl-develyum install pcre-develyum install postgresql-develyum install unixODBC-develyum install libxml2-develyum install radiusclient-ng-develyum install lm_sensors-develyum install net-snmp-develyum install curl-develyum install expat-develyum install libconfuse-develyum install libpurple-develyum install openldap-develyum install mod_perl-develyum install lua-develyum install python-develyum install yum install

现在生成RPM包

cd ~/rpmbuild/SPECSrpmbuild -ba kamailio.spec.CenOS

等吧,这是一个比较费时的过程,当你看到以下信息就成功了。

...Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/kamailio-3.1.2-buildrootWrote: /home/cezar/rpmbuild/SRPMS/kamailio-3.1.2-0.src.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-mysql-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-postgres-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-unixodbc-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-utils-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-cpl-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-radius-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-snmpstats-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-presence-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-xmpp-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-tls-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-carrierroute-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-purple-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-ldap-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-perl-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-lua-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-python-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-geoip-3.1.2-0.i386.rpmWrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-debuginfo-3.1.2-0.i386.rpmExecuting(%clean): /bin/sh -e /var/tmp/rpm-tmp.19156+ umask 022+ cd /home/cezar/rpmbuild/BUILD+ cd kamailio-3.1.2+ rm -rf /var/tmp/kamailio-3.1.2-buildroot+ exit 0
三.添加自己开发的模块
这个主要是修改spec文件,比如我完成一个叫test的模块开发,而这个test的模块依赖了其他第三方库,比如protobuf。
1.先要让rpm会编译这个库
vi kamailio.spec.CenOS在文件中找 make FLAVOUR=kamailio cfg 这一行,然后在此行最后加上include_modules="test"make FLAVOUR=kamailio cfg prefix=/usr cfg_prefix=$RPM_BUILD_ROOT basedir=$RPM_BUILD_ROOT cfg_target=/%{_sysconfdir}/kamailio/ modules_dirs="modules modules_k" include_modules="db_mysql test"
2.让rpm包打包新增的库so
vi kamailio.spec.CenOS找到这一段:%dir %{_libdir}/kamailio  从此开始下面都是库文件,在最后面加入以下行:/usr/lib64/kamailio/test.so
3.解决依赖问题,一个简单+暴力的方法就是直接把这种依赖去掉。安装的时候就不会提示依赖问题,但是还得提前把依赖的那些库装好了程序才能运行。
vi kamailio.spec.CenOS找到Conflicts开头的行,然后新增一行加入以下内容AutoReq: no
参考文档:
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
http://kb.asipto.com/kamailio:install:3.1.x-rpms-centos5x

kamailio/opensips 技术交流QQ群:118791050

原创粉丝点击