kamailio/openser/opensips 生成RPM包/RPM打包
2013-11-06 21:03
405 查看
使用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环境配置
安装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.[/code]
安装下载的RPM包rpm -ivh rpmforge-release-0.5.2-2.el5.rf.*.rpm
安装rpm-build,把命令复制来一起执行就行了。yum install rpm-build yum install redhat-rpm-config cd mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
二.进行kamailio打包cd kamailio源码目录 make FLAVOUR=kamailio tarkamailio.default里面的参数可以把共享内存和私有内存调大一些。
复制 Kamailio Spec Filescd mv 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 make yum install gcc yum install flex yum install bison yum install mysql-devel yum install openssl-devel yum install pcre-devel yum install postgresql-devel yum install unixODBC-devel yum install libxml2-devel yum install radiusclient-ng-devel yum install lm_sensors-devel yum install net-snmp-devel yum install curl-devel yum install expat-devel yum install libconfuse-devel yum install libpurple-devel yum install openldap-devel yum install mod_perl-devel yum install lua-devel yum install python-devel yum install yum install
现在生成RPM包cd ~/rpmbuild/SPECS rpmbuild -ba kamailio.spec.CenOS
等吧,这是一个比较费时的过程,当你看到以下信息就成功了。... Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/kamailio-3.1.2-buildroot Wrote: /home/cezar/rpmbuild/SRPMS/kamailio-3.1.2-0.src.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-mysql-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-postgres-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-unixodbc-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-utils-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-cpl-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-radius-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-snmpstats-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-presence-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-xmpp-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-tls-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-carrierroute-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-purple-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-ldap-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-perl-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-lua-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-python-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-geoip-3.1.2-0.i386.rpm Wrote: /home/cezar/rpmbuild/RPMS/i386/kamailio-debuginfo-3.1.2-0.i386.rpm Executing(%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包打包新增的库sovi 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-centos5xkamailio/opensips 技术交流QQ群:118791050
相关文章推荐
- TP-LINK大杀器:TPmini大眼睛全国首测 - TPmini大眼睛,TPmini,大眼睛,TPLINK - IT之家
- TPmini
- 第八课时:PowerDesigner15业务处理模型(Business Process Model,BPM)
- 关键路径法(CPM)
- 4.4 CMMI4级——几个直接与项目管理相关的PA(PP、PMC、IPM、RSKM、QPM、CAR)
- 开源缺陷管理系统PPM Bug v1.7 云版本发布
- Unable to execute dex: Multiple dex files define Lcom/baidu/mapapi/BMapManager
- PMI、国家外专局-项目管理高端论坛在深圳召开
- JBoss 系列四十四:jBPM5示例之 GateWay
- JBoss 系列四十三:jBPM5示例之 Error Event
- 波多尔地区pm10浓度的预测
- 4 Things I Wish I Would Have Known When I Started My Software Development Career
- 创建下拉菜单--PopupMenu
- Using TFS 2012 and SCRUM for Iteration Capacity Planning for Software Development
- pmap 调试命令学习
- APMServer配置多个站点
- PMBOK及PMP考试精要
- 卸载rpm包
- Cluster setup with Aggregates, VLAN's, and IPMP
- jbpm4.4重要API说明