一、自建YUM源
现在基本上已经不再编译源码安装应用了,管理起来实在太麻烦,还是用RPM来管理各软件包,RPM/YUM的可维护性与方便比起编译源码强太多了,把自己用到的一些RPM包整理起来,自建一个YUM源,使用起来还挺方便的。
创建YUN源需要使用createrepo工具,yum -y install createrepo
然后就可以开始自建源了:
1)规划/创建目录
1 |
#mkdir -p /data/yum/centos/5/{i386,x86_64,noarch} |
2)生成repodata
1 2 3 4 |
#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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[crsay] name=crsay baseurl=http:///yum/centos/$releasever/$basearch/ enabled=1 gpgcheck=0 gpgkey= #以下可忽略 [crsay-noarch] name=crsay baseurl=http:///yum/centos/5/noarch/ enabled=1 gpgcheck=0 gpgkey= |
至此自建源的工作搞定。
二、制作RPM包
为了不至于因为编译错误导致系统出错,使用一个普通用户来编译RPM包,当然,事先要安装rpmbuild工具,yum -y install rpm-build
开始:
1 2 3 4 5 6 7 8 9 10 |
#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目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
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:// 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目录,然后
1 2 3 |
mkdir ~/rpm/BUILD/kukashpack-root mkdir ~/rpm/BUILD/kukashpack-root/usr/sbin mkdir ~/rpm/BUILD/kukashpack-root/root |
把需要复制的文件放到上面新建的目录内,进入SPECS目录
1 |
$ rpm -bb kukashpack.spec |
进入RPMS目录,验证RPM包
1 2 |
$ rpm -qpi kukashpack-1.0-1.noarch.rpm $ rpm -qpl kukashpack-1.0-1.noarch.rpm |