实验环境:cnetos6.3-32 字符界面
1.下载cmatrix.tar.gz(包含有cmatrix.spec文件)
2.检测编译环境:
[root@fuxiangyu ~]# rpm -qa|grep gcc*
libgcc-4.4.6-4.el6.i686
gcc-objc-4.4.6-4.el6.i686
[root@fuxiangyu ~]# rpm -qa rpm-build
rpm-build-4.8.0-27.el6.i686
3法1:将tar.gz制作成rpm包:自己解压制作rpm包
(1)生成rpmbuild文件
[root@fuxiangyu ~]# rpmbuild cmatrix-1.2a.tar.gz
error: File /root/cmatrix-1.2a.tar.gz does not appear to be a specfic
[root@fuxiangyu ~]# 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
[root@fuxiangyu ~]# tar xf cmatrix-1.2a.tar.gz
[root@fuxiangyu ~]# 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
[root@fuxiangyu ~]#cp cmatrix-1.2a.tar.gz rpmbuild/SOURCES
[root@fuxiangyu ~]# cp cmatrix-1.2a/cmatrix.spec rpmbuild/SPECS
(3) 生成rpm包
[root@fuxiangyu SPECS]# rpmbuild -ba cmatrix.spec
error: line 10: Unknown tag: Copyright: GPL
[root@fuxiangyu SPECS]# vim cmatrix.spec //将文件中的Copyright改为License
[root@fuxiangyu SPECS]# 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
[root@fuxiangyu SPECS]# vim cmatrix.spec //将文件中的mkfontdir这一行用#注释掉
[root@fuxiangyu SPECS]# rpmbuild -ba cmatrix.spec
(此时需要安装文件中requires要求的ncurses相关包,建议使用网络yum源安装,否则会缺包)
。。。。
+ cd /root/rpmbuild/BUILD
+ cd cmatrix-1.2a
+ rm -rf /root/rpmbuild/BUILDROOT/cmatrix-1.2a-1.i386
+ exit 0
3法2:将tar.gz制作成rpm包:智能解压制作rpm包(常用)
[root@fuxiangyu ~]# vim cmatrix-1.2a.tar.gz
(修改里面的cmatrix-1.2a/cmatrix.spec文件,将Copyright改为License,将mkfontdir用#注释掉)
[root@fuxiangyu ~]# rpmbuild -ta cmatrix-1.2a.tar.gz
。。。。。
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd cmatrix-1.2a
+ rm -rf /root/rpmbuild/BUILDROOT/cmatrix-1.2a-1.i386
+ exit 0
[root@fuxiangyu ~]# cd rpmbuild/
[root@fuxiangyu rpmbuild]# tree
.
|-- 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
4.1直接用rpm安装制作好的rpm包:
[root@fuxiangyu rpmbuild]# cd RPMS/i686
[root@fuxiangyu i686]# ls
cmatrix-1.2a-1.i686.rpm
[root@fuxiangyu i686]# rpm -ivh cmatrix-1.2a-1.i686.rpm
(此时如果报错,一般是没有安装字符显示相关包)
[root@liuli cmatrix-1.2a]#yum intall *x11* *X11* *gtk*
4.2将制作好的rpm包放入yum源用yum安装:
[root@fuxiangyu Packages]# cd /root/rpmbuild/RPMS/i686/
[root@fuxiangyu i686]# cp cmatrix-1.2a-1.i686.rpm /yum/Packages/
[root@fuxiangyu i686]# yum install cmatrix
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
此时会报错,没有找到对应的rpm包(依赖关系),需更新一下reposory
[root@fuxiangyu i686]# createrepo --update /yum/
[root@fuxiangyu i686]# yum install 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源码包制作rpm包,布布扣,bubuko.com
原文:http://8686083.blog.51cto.com/8676083/1394791