加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

LINUX教学:MariaDB定制rpm包

发布时间:2020-12-13 17:45:05 所属栏目:Linux 来源:网络整理
导读:《LINUX教学:MariaDB定制rpm包》要点: 本文介绍了LINUX教学:MariaDB定制rpm包,希望对您有用。如果有疑问,可以联系我们。 # 体系平台: CentOS 6.8 # 软件版本: mariadb_5.5.54,ruby_1.9.3,fpm_1.4.0 # 必要使用的工具 shell,fpm 思路如下: ? ? 1、安装fpm

《LINUX教学:MariaDB定制rpm包》要点:
本文介绍了LINUX教学:MariaDB定制rpm包,希望对您有用。如果有疑问,可以联系我们。

# 体系平台: 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
yum -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) <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
# 添加用户组以及用户
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"}
?
# 打包完成之后的显示效果图

本文永远更新链接地址

学习更多LINUX教程,请查看站内专栏,如果有LINUX疑问,可以加QQ交流《LINUX教学:MariaDB定制rpm包》。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读