mariadb定制rpm包

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介:

# 系统平台: 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 需要先安装ruby

1
2
3
4
5
yum -y  install  ruby rubygems ruby-devel rubygem-rspec-corerubygems rubygem-rake
    # 查看源
    
[root@show ~] # gem source list
    *** CURRENT SOURCES ***
1
2
3
4
5
6
7
# 添加国内源
[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
1
2
3
4
# 安装fpm时必定会报这个错
gem  install  fpm - v  1.4.0
ERROR: Error installing fpm:
        jsonrequires Ruby version >= 1.9.

# 解决方案:

# 软件包需要都安装完成https://centos.pkgs.org/  我是从这里下载的大部分的包都有

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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) <mpapis@gmail.com>”已导入
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

1
2
3
4
5
6
7
8
9
10
11
# 添加用户组以及用户
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 

1
2
3
4
5
6
7
# 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的环境方便安装的直接能直接使用

1
2
3
4
5
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文件修改成手动设置的目录

1
2
3
cp  /usr/local/mysql/support-files/mysql .server  /etc/init .d /mysqld
basedir= 目录 
datadir=

# 配置开机启动

1
chkconfig mysqld on

 

# 将目录修改一下 也可以直接链接过来

1
] # mv mariadb-5.5.54-linux-x86_64 mysql

 

# 安装mariadb

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


3、fpm将mariadb打包成rpm包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/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


卸载脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/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
1
2
3
文件格式为目录,名称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
1
2
3
4
5
6
# 输出成功的信息如下
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" }
 
# 打包完成之后的显示效果图

wKioL1mb4a7QFksnAABfAif2vzo599.png



     本文转自812374156 51CTO博客,原文链接:http://blog.51cto.com/xiong51/1958361,如需转载请自行联系原作者




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 Linux 数据库
|
2月前
|
存储 关系型数据库 MySQL
源码包安装mariadb
**MariaDB**是MySQL的一个开源分支,由社区维护,提供高性能、安全且与MySQL高度兼容的数据库解决方案。它使用XtraDB和Maria存储引擎替代InnoDB和MyISAM。特点是开源、高性能、兼容性和安全性,广泛应用于各种场景和操作系统。在Redhat 9.2上安装MariaDB 10.6.17,首先配置yum源,检查现有MySQL/MariaDB,安装依赖包,下载源码,解压并配置编译环境,使用cmake和make编译安装,初始化数据库,创建用户,设置密码,添加启动脚本至开机自启,并执行安全初始化设置。
76 0
|
7月前
|
SQL 关系型数据库 MySQL
centos编译安装mariadb
一般我不太愿意用mysql,那个玩意,有的时候不太友好。 我还是比较喜欢mariadb。
177 0
|
机器学习/深度学习 Oracle 安全
MariaDB Centos7 下安装MariaDB
MariaDB Centos7 下安装MariaDB
366 0
|
关系型数据库 MySQL 测试技术
|
关系型数据库 数据库 数据安全/隐私保护
|
MySQL 关系型数据库 数据安全/隐私保护
|
关系型数据库 MySQL 数据库
|
Ubuntu 关系型数据库 MySQL
|
关系型数据库 MySQL