之前一直使用系统自带的SAMBA,近期需要对SAMBA代码做一些修改,然后还是打算用RPM包的方式来安装部署。
这个流程本身不复杂,在这里记录下来,免得在另外写说明文档。
关键词:RHEL5.8, samba, rpm, rpmbuild
一、打包新的RPM
1.安装samba.3.0.33-3.37.e15.src.rpm
# rpm -ivh samba.3.0.33-3.37.e15.src.rpm
2.cd到RPMBUILD目录下
使用rpmbuild --showrc | grep _topdir来获得具体的RPMBUILD目录,如果没做过修改的话,RHEL上的默认目录应该是/usr/src/redhat)
3.RPMBUILD目录应该包含BUILD,RPMS,SOURCES,SPECS,SRPMS等目录。
进入SPECS目录,这时应该已经有了samba.spec文件
而SOURCES目录下,应该有了samba-3.0.33.tar.gz,一些patch文件和samba需要用到的配置文件
4.解压samba-3.0.33.tar.gz
tar xzvf samba-3.0.33.tar.gz
5.cd samba-3.0.33/source,进行需要的修改
6.重新打包源代码
tar czvf samba-3.0.33.tar.gz samba-3.0.33/
7.打rpm包
打包好像需要cups-devel这个工具,找到cups-devel-1.3.7-30.el5.x86_64.rpm安装一下就行。
# rpmbuild -bb samba.spec
这时应该进行打patch,make,build rpm等动作,完成后,RPMS目录下应该有已经打包好的RPM文件。
二、安装新的RPM
1.卸载系统已安装的rpm
# rpm -qa | grep samba
# rpm -qa | grep smb
# rpm -e libsmbclient --nodeps
# rpm -e samba-client
# rpm -e samba-common
2.安装新包
cd到之前的RPMBUILD/RPMS目录下,
# rpm -ivh libsmbclient-3.0.33-3.37.x86_64.rpm
# rpm -ivh samba-common-3.0.33-3.37.x86_64.rpm
# rpm -ivh samba-3.0.33-3.37.x86_64.rpm
完工
参考资料:
http://www.ibm.com/developerworks/cn/linux/l-rpm/
http://www.worldhello.net/2011/04/02/2405.html