rpm包制作--mysql二进制安装
一、FPM介绍
由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包。
通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐。这就用到了FPM。
FPM功能简单说就是将一种类型的包转换成另一种类型。FPM是Ruby模块,其实打包时也是调用rpmbuild命令。
支持的源类型包:
l dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包
l rpm 对rpm进行转换
l gem 对rubygem包进行转换
l python 将python模块打包成相应的类型
支持的目标类型包:
l rpm 转换成rpm包
l deb 转换成deb包
l solaris 转换成solaris包
l puppet 转换成puppet模块
二、安装FPM
|
# yum -y install ruby rubygems ruby-devel |
1. 安装依赖包
|
1 |
# yum -y install ruby rubygems ruby-devel |
2. 添加仓库
|
1 |
# gem sources -a http://gems.ruby-china.org/ |
3. 移除原有的仓库
|
1 |
# gem sources --remove https://rubygems.org/ |
4. 查看仓库是不是只有自己添加的那个仓库地址
|
1 2 |
# gem sources -l https://gems.ruby-china.org |
5. 安装fpm
|
1 |
# gem install fpm |
6. 如何查看fpm帮助
|
1 |
# fpm --help |
常用参数:
-s 指定源类型
-t 指定目标类型
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径 change directory to here before searching for files
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
-p 输出的安装包的目录,不想放在当前目录下就需要指定
--post-install 软件包安装完成之后所要运行的脚本,同--after-install
--pre-install 软件包安装完成之前所要运行的脚本,同--before-install
--post-uninstall 软件包卸载之后所要运行的脚本,同--after-install
--pre-uninstall 软件包卸载之前所要运行的脚本,同--before-install
实验:

-C 指在哪个目录下搜索
后面的/usr/local/mysql /data 是我二进制安装完成后的basedir和datadir
打包完成后类似快照效果 里面的数据也一并打包

l mysql_pre_init.sh的内容如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash
user=mysql group=mysql
# create group if not exists. egrep "^$group" /etc/group >& /dev/null if [ $? -ne 0 ] then groupadd -r -g 300 $group fi
# create user if not exists. egrep "^$user" /etc/passwd >& /dev/null if [ $? -ne 0 ] then useradd -g $group -r -s /sbin/nologin -u 300 $user fi |
l mysql_post_init.sh的内容如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash
# cp my.cnf force. \cp /usr/local/mysql/my.cnf /etc/
# start/stop/restart script. \cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld
# MySQL Client PATH. \cp /usr/local/mysql/mysql.sh /etc/profile.d/
cd /usr/local/mysql chown -R root.mysql . chown -R mysql.mysql /data |

浙公网安备 33010602011771号