第一步:下载cmatrix.tar.gz(包含有已写好的cmatrix.spec文件)
第二步:检测编译环境:
# yum isntall gcc gcc-c++ make rpm-bulid
# rpm -qa|grep gcc* //检测C编译软件包是否安装
libgcc-4.4.6-4.el6.i68gcc-objc-4.4.6-4.el6.i686
# rpm -qa rpm-build //检测rpmbuild命令包是否安装
rpm-build-4.8.0-27.el6.i686
第三步:根据spes文件生成rpm包
法1:将tar.gz制作成rpm包:自己解压制作rpm包
(1)生成rpmbuild文件
# rpmbuild cmatrix-1.2a.tar.gz //生成rpmbuild相关文件,此时报错并没有影响
error: File /root/cmatrix-1.2a.tar.gz does not appear to be a specfic
# tree //查看生成的文件及相互位置关系
.
|-- anaconda-ks.cfg
|-- cmatrix-1.2a.tar.gz
|-- install.log
|-- install.log.syslog
`-- rpmbuild
|-- BUILD
|-- BUILDROOT
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
(2)将tar 包解压,拷贝源码*.tar.gz到SOUCES和*.spec文件到SPECS
# tar xf cmatrix-1.2a.tar.gz //将源码包解压
# tree cmatrix-1.2a //查看解压后文件内容
cmatrix-1.2a
|-- AUTHORS
|-- COPYING
|-- ChangeLog
|-- INSTALL
|-- Makefile.am
|-- Makefile.in
|-- NEWS
|-- README
|-- TODO
|-- acconfig.h
|-- aclocal.m4
|-- cmatrix.1
|-- cmatrix.c
|-- cmatrix.spec
|-- cmatrix.spec.in
|-- config.guess
|-- config.h.in
|-- config.sub
|-- configure
|-- configure.in
|-- install-sh
|-- matrix.fnt
|-- matrix.psf.gz
|-- missing
|-- mkinstalldirs
|-- mtx.pcf
`-- stamp-h.in
# cp cmatrix-1.2a.tar.gz rpmbuild/SOURCES //将源码包拷贝到rpmbuild/SOURCES目录
# cp cmatrix-1.2a/cmatrix.spec rpmbuild/SPECS //将spes文件拷贝到rpmbuild/SPECS目录
(3) 生成rpm包
# cd cmatrix-1.2/SPECS
# rpmbuild -ba cmatrix.spec //根据spes文件生成相应的rpm包(spes文件也可以是自己编辑的)
error: line 10: Unknown tag: Copyright: GPL //spes文件中Copyright:GPL这一行不能编译
# vim cmatrix.spec //将spes文件中的Copyright改为License# rpmbuild -ba cmatrix.spec
checking for consolechars... no
checking for setfont... /bin/setfont
checking for /usr/lib/kbd/consolefonts... yes
checking for /usr/share/consolefonts... no
checking for mkfontdir... /usr/bin/mkfontdir
checking for /usr/lib/X11/fonts/misc... no
。。。。。
RPM build errors:
Installed (but unpackaged) file(s) found:
/usr/X11R6/lib/X11/fonts/misc/fonts.dir //根据spes文件检测不到目录font.dir
# vim cmatrix.spec //将spes文件中的mkfontdir这一行用#注释掉,不进行font.dir目录的检测# rpmbuild -ba cmatrix.spec
(此时需要安装文件中requires要求的ncurses相关包,建议使用网络yum源安装,本地yum源ncurses相关包要有好几个,可能本地没有)
。。。。
+ cd /root/rpmbuild/BUILD
+ cd cmatrix-1.2a
+ rm -rf /root/rpmbuild/BUILDROOT/cmatrix-1.2a-1.i386
+ exit 0 //rpm包生成成功
法2:将tar.gz制作成rpm包:智能解压制作rpm包(常用)
# vim cmatrix-1.2a.tar.gz
(修改里面cmatrix.spec文件,将spes文件中Copyright改为License,将mkfontdir用#注释掉)
# rpmbuild -ta cmatrix-1.2a.tar.gz //直接根据未解压的tar包生成rpm包
。。。。。
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd cmatrix-1.2a
+ rm -rf /root/rpmbuild/BUILDROOT/cmatrix-1.2a-1.i386
+ exit 0 //成功生成rpm包
# cd rpmbuild/
# tree //查看生成的rpm包所在目录
.
|-- BUILD
| `-- cmatrix-1.2a
| |-- AUTHORS
| |-- COPYING
| |-- ChangeLog
| |-- INSTALL
| |-- Makefile
| |-- Makefile.am
| |-- Makefile.in
| |-- NEWS
| |-- README
| |-- TODO
| |-- acconfig.h
| |-- aclocal.m4
| |-- cmatrix
| |-- cmatrix.1
| |-- cmatrix.c
| |-- cmatrix.o
| |-- cmatrix.spec
| |-- cmatrix.spec.in
| |-- config.cache
| |-- config.guess
| |-- config.h
| |-- config.h.in
| |-- config.log
| |-- config.status
| |-- config.sub
| |-- configure
| |-- configure.in
| |-- install-sh
| |-- matrix.fnt
| |-- matrix.psf.gz
| |-- missing
| |-- mkinstalldirs
| |-- mtx.pcf
| |-- stamp-h
| `-- stamp-h.in
|-- BUILDROOT
|-- RPMS
| `-- i686
| `-- cmatrix-1.2a-1.i686.rpm|-- SOURCES
|-- SPECS
`-- SRPMS
`-- cmatrix-1.2a-1.src.rpm
第四步:用做好的cmatrix.rpm安装cmatrix
方法一:直接用rpm安装制作好的rpm包:
# cd RPMS/i686
# ls
cmatrix-1.2a-1.i686.rpm
# rpm -ivh cmatrix-1.2a-1.i686.rpm //rpm安装cmatrix
(此时如果报错,一般是没有安装字符显示相关包)
#yum intall *x11* *X11* *gtk*
方法二:将制作好的rpm包放入yum源用yum安装:
# cd /root/rpmbuild/RPMS/i686/
# cp cmatrix-1.2a-1.i686.rpm /yum/Packages/ //将rpm包放入yum源 # createrepo --update /yum/ //更新yum源的依赖关系文件
# yum install cmatrix //yum安装cmatrix
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
。。。。
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : cmatrix-1.2a-1.i686 1/1
Verifying : cmatrix-1.2a-1.i686 1/1
Removed:
cmatrix.i686 0:1.2a-1
Complete!
安装完成后直接敲cmatrix命令就会看到看到神奇的文字雨了!还在等什么!!!