《LINUX教學(xué):MariaDB定制rpm包》要點(diǎn):
本文介紹了LINUX教學(xué):MariaDB定制rpm包,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
# 體系平臺(tái): CentOS 6.8
# 軟件版本: mariadb_5.5.54, ruby_1.9.3, fpm_1.4.0
# 必要使用的工具 shell, fpm
思路如下:
? ? 1、安裝fpm包,
? ? 2、安裝mariadb軟件包,
? ? 3、添加安裝,卸載腳本,配置啟動(dòng)腳本 情況變量等
1、安裝fpm包、安裝過(guò)程,以及一些錯(cuò)誤的辦理方案
? 1.1 需要先安裝ruby
yum -y install ruby rubygems ruby-devel rubygem-rspec-corerubygems rubygem-rake
? # 查看源
? ?
[root@show ~]# gem source list
? *** CURRENT SOURCES ***
# 添加海內(nèi)源
[root@show ~]# gem sources -ahttp://mirrors.aliyun.com/rubygems/
? ? ? ? http://mirrors.aliyun.com/rubygems/added to sources
? ? ? ? ?
# 移除國(guó)外源
[root@show ~]# gem sources --removehttp://rubygems.org/
? ? http://rubygems.org/removed from sources
# 安裝fpm時(shí)一定會(huì)報(bào)這個(gè)錯(cuò)
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
?
# 導(dǎo)入密鑰對(duì)否則從github下載rvm的時(shí)候會(huì)報(bào)錯(cuò)
gpg2 --keyserver hkp://keys.gnupg.net--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
gpg: 鑰匙環(huán)‘/root/.gnupg/secring.gpg’已建立
gpg: 下載密鑰‘D39DC0E3’,從 hkp 服務(wù)器 keys.gnupg.net
gpg: /root/.gnupg/trustdb.gpg:建立了信任度數(shù)據(jù)庫(kù)
gpg: 密鑰 D39DC0E3:公鑰“Michal Papis (RVM signing) <mpapis@gmail.com>”已導(dǎo)入
gpg: 沒(méi)有找到任何絕對(duì)信任的密鑰
gpg: 合計(jì)被處理的數(shù)量:1
gpg:? ? ? ? ? 已導(dǎo)入:1? (RSA: 1)
?
# 更新環(huán)境變量
source /etc/profile.d/rvm.sh
?
# 安裝ruby
rvm install 1.9.3
?
# 附上詳細(xì)辦理思路: http://tecadmin.net/install-ruby-1-9-3-or-multiple-ruby-verson-on-centos-6-3-using-rvm/
?
# 將ruby 1.9.3設(shè)置成默認(rèn)
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軟件包,
# 必要先手動(dòng)安裝一次mariadb
# 添加用戶(hù)組以及用戶(hù)
groupadd -g 3010 mysql
useradd -g 3010 -u 3011 mysql
?
# 添加數(shù)據(jù)目錄并給出屬主屬組
mkdir /data/mysql -pv
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql
?
# 刪除默認(rèn)的my.cnf文件,避免fpm打包時(shí)報(bào)錯(cuò)
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的環(huán)境便利安裝的直接能直接使用
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文件修改成手動(dòng)設(shè)置的目錄
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
basedir= 目錄?
datadir=
# 設(shè)置裝備擺設(shè)開(kāi)機(jī)啟動(dòng)
chkconfig mysqld on
# 將目錄改動(dòng)一下 也可以直接鏈接過(guò)來(lái)
# 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常用參數(shù):
-s:指定源類(lèi)型
-t:指定目標(biāo)類(lèi)型,即想要制作為什么包
-n:指定包的名字
-v:指定包的版本號(hào)
-C:指定打包的相對(duì)路徑
--no-rpm-sign 指定安裝目錄
假如-C / --no-rpm-sign /usr/local/zabbix 而打包機(jī)器的數(shù)據(jù)包路徑是/usr/local/zabbix 那安裝這個(gè)rpm包后,在當(dāng)?shù)氐臄?shù)據(jù)就是/usr/local/zabbix.
如果是-C /usr/local/zabbix --no-rpm-sign 那么必須吧數(shù)據(jù)包放到/usr/local/zabbix/usr/local/zabbix 下,否安裝全部安裝在/根目錄下
-d:指定依賴(lài)于哪些包
-f:第二次包時(shí)目錄下如果有同名安裝包存在,則覆蓋它
-p:輸出的安裝包的目錄,不想放在當(dāng)前目錄下就需要指定
--post-install:軟件包安裝完成之后所要運(yùn)行的腳本;同--offer-install
--pre-install:軟件包安裝完成之前所要運(yùn)行的腳本;同--before-install
--post-uninstall:軟件包卸載完成之后所要運(yùn)行的腳本;同--offer-remove
--pre-uninstall:軟件包卸載完成之前所要運(yùn)行的腳本;同—before-remove
--description:軟件包描述
詳情:fpm -h
# 首先必要二個(gè)腳本,一個(gè)用于安裝,一個(gè)用于卸載軟件包
#? 安裝腳本 腳本目錄 /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
文件格式為目錄,名稱(chēng)mariadb,類(lèi)型rpm包,版本5.5.54 必要的組件, 將打包的文件存放在哪,描述信息,--url也是 --post-install為安裝腳本 --port-uninstall 為卸載腳本 --no-rpm-sign目錄存放的地址 這里有兩個(gè)一個(gè)基礎(chǔ)文件,一個(gè)是數(shù)據(jù)文件目錄?
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"}
?
# 打包完成之后的顯示效果圖
本文永遠(yuǎn)更新鏈接地址:
學(xué)習(xí)更多LINUX教程,請(qǐng)查看站內(nèi)專(zhuān)欄,如果有LINUX疑問(wèn),可以加QQ交流《LINUX教學(xué):MariaDB定制rpm包》。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/9015.html