试制做一个小的RPM包,环境是CentOS5做一下小记录,有待后面研究。
原创http://blog.ganxing88.cn
一、相关目录
/usr/src/redhat/SOURCES       存放源码压缩包和补丁文件,可用RPM_SOURCE_DIR引用
/usr/src/redhat/BUILD            存放源码,可用RPM_DUILD_DIR引用
/usr/src/redhat/SPEC             存放spec文件
/usr/src/redhat/RPMS/i386      最终RPM包
二、费话不多说,写一个小例子
1、制作成RPM包,着先要有tar包,再着手写一spec文件。因为对有些tar包写spec文件,有点难度。所以自己可以先写个c文件或shell脚本,进行测试,由简到难。
     本例写一个查当前时间,负载的小脚本,其实就是一个uptime命令
  1. [root@CentOS ~]# cd /usr/src/redhat/SOURCES/
  2. [root@CentOS SOURCES]# vi showup.sh
  3. [root@CentOS SOURCES]# cat showhost.sh
  4. #!/bin/bash
  5. PORT=`/usr/bin/uptime`
  6. /bin/echo $PORT
  7. [root@CentOS SOURCES]# vi showup.sh
  8. [root@CentOS SOURCES]# chmod 755 showup.sh
  9. [root@CentOS SOURCES]# tar zcvf showup.tar.gz showup.sh
  10. showup.sh
复制代码
[separator]
2、通过上面一步tar文件已经完成,下面来写spec文件
  1. [root@CentOS SOURCES]# cd /usr/src/redhat/SPECS/
  2. [root@CentOS SPECS]# vi showup.spec
  3. [root@CentOS SPECS]# cat showup.spec
  4. Summary: This is a demo RPM Package.
  5. Name: showup
  6. Version: 1.0
  7. Release: 1
  8. License: GPL
  9. Group: My Home
  10. Source: showup.tar.gz
  11. Url: http://www.ganxing88.cn
  12. Packager: test
  13.  
  14. %description
  15. This package is just a demo RPM/
  16.  
  17. %prep
  18. %setup -c
  19. %install
  20. install -m 755 showup.sh /usr/local/bin/showup.sh
  21.  
  22. %files
  23. /usr/local/bin/showup.sh
复制代码
3、开始编译并打包成RPM包
  1. [root@CentOS SPECS]# rpmbuild -ba showup.spec
  2. Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.12157
  3. + umask 022
  4. + cd /usr/src/redhat/BUILD
  5. + LANG=C
  6. + export LANG
  7. + unset DISPLAY
  8. + cd /usr/src/redhat/BUILD
  9. + rm -rf showup-1.0
  10. + /bin/mkdir -p showup-1.0
  11. (略)……
  12. Requires: /bin/bash
  13. Checking for unpackaged file(s): /usr/lib/rpm/check-files %{buildroot}
  14. Wrote: /usr/src/redhat/SRPMS/showup-1.0-1.src.rpm
  15. Wrote: /usr/src/redhat/RPMS/i386/showup-1.0-1.i386.rpm
复制代码
由输出信息可以看到编译好的RPM包所在的位置
4、安装测试
  1. [root@CentOS SPECS]# rpm -ivh ../RPMS/i386/showup-1.0-1.i386.rpm
  2. Preparing...                ########################################### [100%]
  3.    1:showup                 ########################################### [100%]
复制代码
检查是否安装成功
  1. [root@CentOS SPECS]# rpm -qa | grep showup
  2. showup-1.0-1
  3.  
  4. [root@CentOS SPECS]# /usr/local/bin/showup.sh
  5. 00:17:26 up 9 days, 10:57, 1 user, load average: 0.03, 0.05, 0.07
复制代码
下面再做个卸载测试
  1. [root@CentOS SPECS]# rpm -e showup
  2. [root@CentOS SPECS]# rpm -qa | grep showup
  3. [root@CentOS SPECS]# /usr/local/bin/showup.sh
  4. -bash: /usr/local/bin/showup.sh: No such file or directory
复制代码
看来已经卸载成功