一、自建YUM源
现在基本上已经不再编译源码安装应用了,管理起来实在太麻烦,还是用RPM来管理各软件包,RPM/YUM的可维护性与方便比起编译源码强太多了,把自己用到的一些RPM包整理起来,自建一个YUM源,使用起来还挺方便的。
创建YUN源需要使用createrepo工具,yum -y install createrepo
然后就可以开始自建源了:
1)规划/创建目录
#mkdir -p /data/yum/centos/5/{i386,x86_64,noarch}
2)生成repodata
#cd /data #createrepo -p -d -o yum/centos/5/i386 yum/centos/5/i386 #createrepo -p -d -o yum/centos/5/x86_64 yum/centos/5/x86_64 #createrepo -p -d -o yum/centos/5/noarch yum/centos/5/noarch
3)配置YUM源
在/etc/yum.repos.d/下新建一个文件,扩展名为.repo,如crsay.repo
[crsay] name=crsay baseurl=http://www.crsay.com/yum/centos/$releasever/$basearch/ enabled=1 gpgcheck=0 gpgkey= #以下可忽略 [crsay-noarch] name=crsay baseurl=http://www.crsay.com/yum/centos/5/noarch/ enabled=1 gpgcheck=0 gpgkey=
至此自建源的工作搞定。
二、制作RPM包
为了不至于因为编译错误导致系统出错,使用一个普通用户来编译RPM包,当然,事先要安装rpmbuild工具,yum -y install rpm-build
开始:
#useradd kuka #passwd kuka #su kuka #cd $ mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SRPMS,SPECS,tmp} $ mkdir ~/rpm/RPMS/{i386,i586,i686,noarch} $ vi ~/.rpmmacros %_topdir /home/kuka/rpm %_tmppath /home/kuka/rpm/tmp
编译RPM,关键在于spec文件编写,这里是一个最简单的例子,仅仅是拷贝一些脚本到/usr/sbin目录
kukashpack.spec %define name kukashpack %define version 1.0 %define release 1 Summary: kuka sh tool packages Name: %{name} Version: %{version} Release: %{release} License:share Group: Applications/User BuildArch: noarch BuildRoot: %{_builddir}/%{name}-root URL: http://www.crsay.com Distribution: whatever Vendor: kuka (cracada@gmail.com) Packager: cracada@gmail.com Provides: kuka %description This package contains Some sh tools, just build for me %prep exit 0 %build exit 0 %install exit 0 %files %defattr(0755,root,root) /usr/sbin /root %clean exit 0
保存文件,放入~/rpm/SPECS目录,然后
mkdir ~/rpm/BUILD/kukashpack-root mkdir ~/rpm/BUILD/kukashpack-root/usr/sbin mkdir ~/rpm/BUILD/kukashpack-root/root
把需要复制的文件放到上面新建的目录内,进入SPECS目录
$ rpm -bb kukashpack.spec
进入RPMS目录,验证RPM包
$ rpm -qpi kukashpack-1.0-1.noarch.rpm $ rpm -qpl kukashpack-1.0-1.noarch.rpm