以前打个rpm包尼玛太多的不容易,写SPEC文件写半天,还各种出错,今天同事给介绍了FPM可以打rpm包,并且可以把一个目录打成rpm包,很激动,尝试了一把:

一、FPM安装:

# FPM是Ruby模块
yum -y install ruby rubygems ruby-devel
# 添加淘宝的Ruby仓库
gem sources -a http://ruby.taobao.org/
# 移除原生的Ruby仓库
gem sources --remove http://rubygems.org/
# 安装fpm
gem install fpm

二、把我已经编译好的mysql目录打成rpm包:

1、先说明一下,FPM打包路径是相对路径,这个我捣鼓半天才弄明白,比如,我打包这台机器编译好的mysql目录是在/usr/local/mysql下,如果你想让打出来的rpm包在其他机器上安装路径是/usr/local/mysql,那么你就:

fpm -f -s dir  -t rpm --epoch 5 --iteration 1.el6 -v 5.5.16 -n mysql_navy -C / -p /root --verbose --category 'Development/Languages'   --description 'navy mysql' --url 'kingsoft.com' --license 'BSD' -m 'navy' usr/local/mysql/

2、查看包信息:

[root@kingsoft-navy ~]# rpm -qpi mysql_navy-5.5.16-1.el6.x86_64.rpm
Name        : mysql_navy                   Relocations: /
Version     : 5.5.16                            Vendor: root@kingsoft-navy
Release     : 1.el6                         Build Date: 2013年07月11日 星期四 08时36分01秒
Install Date: (not installed)               Build Host: kingsoft-navy
Group       : Development/Languages         Source RPM: mysql_navy-5.5.16-1.el6.src.rpm
Size        : 555461869                        License: BSD
Signature   : (none)
Packager    : navy
URL         : kingsoft.com
Summary     : mysql
Description :
navy mysql

3、在其他机器安装:

[root@kingsoft-navy ~]# rpm -ivh mysql_navy-5.5.16-1.el6.x86_64.rpm
Preparing...                ########################################### [100%]
1:mysql_navy             ########################################### [100%

6、查看安装的路径:

[root@kingsoft-navy ~]# rpm -ql mysql_navy | more
/usr/local/mysql/COPYING
/usr/local/mysql/INSTALL-BINARY
/usr/local/mysql/README
/usr/local/mysql/bin/innochecksum
/usr/local/mysql/bin/msql2mysql
/usr/local/mysql/bin/my_print_defaults
/usr/local/mysql/bin/myisam_ftdump
/usr/local/mysql/bin/myisamchk
/usr/local/mysql/bin/myisamlog
/usr/local/mysql/bin/myisampack
/usr/local/mysql/bin/mysql
/usr/local/mysql/bin/mysql_client_test
/usr/local/mysql/bin/mysql_config
/usr/local/mysql/bin/mysql_convert_table_format
/usr/local/mysql/bin/mysql_find_rows
/usr/local/mysql/bin/mysql_fix_extensions
/usr/local/mysql/bin/mysql_secure_installation
/usr/local/mysql/bin/mysql_setpermission
/usr/local/mysql/bin/mysql_tzinfo_to_sql
/usr/local/mysql/bin/mysql_upgrade
/usr/local/mysql/bin/mysql_waitpid
/usr/local/mysql/bin/mysql_zap
/usr/local/mysql/bin/mysqlaccess
/usr/local/mysql/bin/mysqlaccess.conf

OK,先到这来,以后在写如何如何把一个源码包打成rpm包。