[筆記]使用fpm建立mysql的rpm包

G8bao7發表於2015-06-04
### 安裝依賴
yum -y install gcc openssl


yum -y install ruby-devel ruby rubygems

### 修改rubygems的源
# 由於國內網路原因,導致 rubygems.org 存放在 Amazon S3 上面的資原始檔間歇性連線失敗。
# 所以需要改成taobao提供的源。這是一個完整 rubygems.org 映象,可以用此代替官方版本,同步頻率目前為15分鐘一次。

gem sources -a
# 確保只有 ruby.taobao.org
gem sources -l

### 安裝fpm
gem install fpm

### 使用
fpm -s -t [options] [path]
source type:dir,rpm,gem,python
target type:rpm,deb,solaris,puppet
path   與[option]prefix組成最終的安裝路徑
常用的options:
-a 系統架構名稱,如果是noarch則為'-a all' 或者 '-a native'
-f 強制覆蓋。若輸出檔案存在
-n 生成的package名字
-p 生成的package檔案輸出位置
-C fpm去哪個目錄搜尋檔案
-v 生成的package版本
-d 生成的package依賴於什麼軟體,通常為-d 'name' 或這 -d 'name > version'
-m 所有者
--prefix rpm安裝時的輸出路徑.完整的路徑為prefix/path,可以與-C不同目錄
--description 軟體包描述
--category  所屬使用者.使用者組/使用者
--before-install 安裝前執行的指令碼
--after-install 安裝後執行的指令碼
--before-remove 解除安裝前執行的指令碼
--after-remove  解除安裝後執行的指令碼
--conflicts 與其他什麼軟體衝突


### 例項,生成mysql的rpm包,安裝在/usr/local/mysql
第一步: 編譯mysql(cmake 相關引數 ; make; make install)

第二步: 製作rpm包
# 方式一:不輸入 path
fpm -f -s dir -t rpm -a all -n mysqld -v 5.5.28 --description "mysql 5528" --category 'mysql/mysql'  -m 'dba' -C /usr/local/mysql --prefix=/usr/local/mysql  --before-install ./beIns.sh --after-install ./afIns.sh -p mysqld5528.rpm 

# 方式二:輸入 path
fpm -f -s dir -t rpm -a all -n mysqld -v 5.5.28 --description "mysql 5528" --category 'mysql/mysql'  -m 'dba' -C / --before-install ./beIns.sh --after-install ./afIns.sh -p mysqld5528.rpm usr/local/mysql


未解決問題:
如何解決yum無法解決的相關依賴(只能手動處理)


參考

http://blog.sina.com.cn/s/blog_704836f40101fscj.html



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-1685205/,如需轉載,請註明出處,否則將追究法律責任。

相關文章