mysql定制rpm包_mariadb定制rpm包

该篇博客详细介绍了如何在CentOS 6.8环境下,通过FPM工具打包MariaDB 5.5.54为RPM软件包。首先,安装了必要的Ruby环境和FPM包,解决了Ruby版本不匹配的问题。然后,手动安装并配置了MariaDB,包括创建用户组、数据目录、修改配置文件等。最后,利用FPM参数创建了包含安装和卸载脚本的RPM包,并提供了打包过程的输出信息。
摘要由CSDN通过智能技术生成

# 系统平台: centos 6.8

# 软件版本: mariadb_5.5.54, ruby_1.9.3, fpm_1.4.0

# 需要使用的工具 shell, fpm

思路如下:

1、安装fpm包,

2、安装mariadb软件包,

3、添加安装,卸载脚本,配置启动脚本 环境变量等

1、安装fpm包、安装过程,以及一些错误的解决方案

1.1 需要先安装rubyyum -y install ruby rubygems ruby-devel rubygem-rspec-corerubygems rubygem-rake

# 查看源

[root@show ~]# gem source list

*** CURRENT SOURCES ***# 添加国内源

[root@show ~]# gem sources -ahttp://mirrors.aliyun.com/rubygems/

http://mirrors.aliyun.com/rubygems/added to sources

# 移除国外源

[root@show ~]# gem sources --removehttp://rubygems.org/

http://rubygems.org/removed from sources# 安装fpm时必定会报这个错

gem install fpm -v 1.4.0

ERROR: Error installing fpm:

jsonrequires Ruby version >= 1.9.

# 解决方案:

# 软件包需要都安装完成https://centos.pkgs.org/  我是从这里下载的大部分的包都有yum install gcc-c++ patch readlinereadline-devel zlib zlib-devel

yum install libyaml-devel libffi-developenssl-devel make

yum install bzip2 autoconf automake libtoolbison iconv-devel

# 下载软件包

curl -L get.rvm.io | bash -s stable

# 导入密钥对否则从github下载rvm的时候会报错

gpg2 --keyserver hkp://keys.gnupg.net--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

gpg: 钥匙环‘/root/.gnupg/secring.gpg’已建立

gpg: 下载密钥‘D39DC0E3’,从 hkp 服务器 keys.gnupg.net

gpg: /root/.gnupg/trustdb.gpg:建立了信任度数据库

gpg: 密钥 D39DC0E3:公钥“Michal Papis (RVM signing) ”已导入

gpg: 没有找到任何绝对信任的密钥

gpg: 合计被处理的数量:1

gpg:           已导入:1  (RSA: 1)

# 更新环境变量

source /etc/profile.d/rvm.sh

# 安装ruby

rvm install 1.9.3

# 附上详细解决思路: http://tecadmin.net/install-ruby-1-9-3-or-multiple-ruby-verson-on-centos-6-3-using-rvm/

# 将ruby 1.9.3设置成默认

rvm use 1.9.3 --default

Using /usr/local/rvm/gems/ruby-1.9.3-p551

# 然后再安装

gem install fpm -v 1.4.0

Fetching: json-2.1.0.gem (100%)

Building native extensions.  This could take a while...

Successfully installed json-2.1.0

Fetching: cabin-0.9.0.gem (100%)

Successfully installed cabin-0.9.0

Fetching: backports-3.8.0.gem (100%)

8 gems installed

2、安装mariadb软件包,

# 需要先手动安装一次mariadb# 添加用户组以及用户

groupadd -g 3010 mysql

useradd -g 3010 -u 3011 mysql

# 添加数据目录并给出属主属组

mkdir /data/mysql -pv

chown -R mysql.mysql /usr/local/mysql

chown -R mysql.mysql /data/mysql

# 删除默认的my.cnf文件,避免fpm打包时报错

rm -rf /etc/my.cnf

cat /usr/local/mysql/support-files/my.cnf# my.cnf 中添加如下四行

datadir = /data/mysql

basedir = /usr/local/mysql

innodb_file_per_table = 1

skip_name_resolve = 1

cp /usr/local/mysql/support-files/my.cnf /etc/

# 定义mysql的环境方便安装的直接能直接使用cat mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

cp /usr/local/mysql/support-files/mysql.sh/etc/profile.d/

source /etc/profile.d/mysql.sh

#这里需要注意将basedir 跟datadir文件修改成手动设置的目录cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

basedir= 目录

datadir=

# 配置开机启动chkconfig mysqld on

# 将目录修改一下 也可以直接链接过来]# mv mariadb-5.5.54-linux-x86_64 mysql

# 安装mariadb]# ./scripts/mysql_install_db --user=mysql--group=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/

3、fpm将mariadb打包成rpm包FPM常用参数:

-s:指定源类型

-t:指定目标类型,即想要制作为什么包

-n:指定包的名字

-v:指定包的版本号

-C:指定打包的相对路径

--no-rpm-sign 指定安装目录

假如-C / --no-rpm-sign /usr/local/zabbix 而打包机器的数据包路径是/usr/local/zabbix 那安装这个rpm包后,在本地的数据就是/usr/local/zabbix。

如果是-C /usr/local/zabbix --no-rpm-sign 那么必须吧数据包放到/usr/local/zabbix/usr/local/zabbix 下,否安装全部安装在/根目录下

-d:指定依赖于哪些包

-f:第二次包时目录下如果有同名安装包存在,则覆盖它

-p:输出的安装包的目录,不想放在当前目录下就需要指定

--post-install:软件包安装完成之后所要运行的脚本;同--offer-install

--pre-install:软件包安装完成之前所要运行的脚本;同--before-install

--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove

--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove

--description:软件包描述

详情:fpm -h

#首先需要二个脚本,一个用于安装,一个用于卸载软件包

#安装脚本 脚本目录 /usr/local/mysql/support-files/install#!/bin/bash

#

groupadd -g 3010 mysql

useradd -g 3010 -u 3011 mysql

mkdir /data/mysql -pv

chown -R mysql.mysql /usr/local/mysql

chown -R mysql.mysql /data/mysql

/bin/cp -i /usr/local/mysql/support-files/my.cnf /etc/

/bin/cp -i /usr/local/mysql/support-files/mysql.sh/etc/profile.d/

/bin/cp -i /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# iptables -I INPUT -p tcp --dport 3306 -m state --stateNEW,ESTABLISHED -j ACCEPT

# service iptables save

# service iptables restart

chkconfig mysqld on

#卸载脚本#!/bin/bash

#

userdel -r  mysql &>/dev/null

groupdel mysql &>/dev/null

service mysqld stop &>/dev/null

chkconfig mysqld off

pkill -9 mysqld

rm -rf /data/mysql

rm -rf /etc/my.cnf

rm -rf /etc/etc/profil.d/mysql.sh

rm -rf /etc/init.d/mysqld

rm -rf /usr/local/mysql文件格式为目录,名称mariadb,类型rpm包,版本5.5.54 需要的组件, 将打包的文件存放在哪,描述信息,--url也是 --post-install为安装脚本 --port-uninstall 为卸载脚本 --no-rpm-sign目录存放的地址 这里有两个一个基础文件,一个是数据文件目录

fpm -f -s dir -n mariadb -t rpm -v 5.5.54 -d'gcc,gcc-c++' -C / -p /tmp --description "mariadb_5.5.54_noacrh.rpm,xiongmake" --url "http://www.mariadb.org/" --license "BSD"-m "mariadb" --post-install/usr/local/mysql/support-files/install --post-uninstall /usr/local/mysql/support-files/uninstall --no-rpm-sign/usr/local/mysql /data/mysql# 输出成功的信息如下

no value for epoch is set, defaulting to nil {:level=>:warn}

no value for epoch is set, defaulting to nil{:level=>:warn}

Created package{:path=>"/tmp/mariadb-5.5.54-1.x86_64.rpm"}

# 打包完成之后的显示效果图

a5c2e75c293e675ee59a599d1ea832bf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值