linux下打包rpm,linux系统之rpm打包

该博客介绍了如何在旧版CentOS 5.9系统中手动编译安装Ruby、RubyGems和FPM,并使用FPM创建RPM软件包。首先,通过yum安装必要的依赖,然后从源代码编译Ruby和RubyGems。接着,下载并安装FPM,最后展示了如何编写初始化脚本并打包MySQL,确保安装后能自动初始化数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统环境:[root@web01 ~]# cat /etc/redhat-release

CentOS release 5.9 (Final)

[root@web01 ~]# uname -a

Linux web01 2.6.18-348.el5 #1 SMP Tue Jan 8 17:53:53 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

[root@web01 ~]# lsb_release

LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch

开始安装:[root@web01 ~]# yum install -y gcc zlib zlib-devel

[root@web01 soft]# wget http://ruby.taobao.org/mirrors/ruby/ruby-1.8.7-p358.tar.gz

[root@web01 soft]# wget http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.8.24.tgz

[root@web01 soft]# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

[root@web01 soft]# rpm -ivh epel-release-5-4.noarch.rpm

[root@web01 soft]# yum -y install rpm-build

[root@web01 soft]# tar xf ruby-1.8.7-p358.tar.gz

[root@web01 soft]# tar xf rubygems-1.8.24.tgz

[root@web01 soft]# cd ruby-1.8.7-p358

[root@web01 ruby-1.8.7-p358]# ./configure --enable-pthread

[root@web01 ruby-1.8.7-p358]# make && make install

[root@web01 ruby-1.8.7-p358]# cd ../rubygems-1.8.24

[root@web01 rubygems-1.8.24]# ruby setup.rb

[root@web01 rubygems-1.8.24]# cd ..

[root@web01 soft]# gem source -r http://rubygems.org/

[root@web01 soft]# gem source -a http://ruby.taobao.org/

[root@web01 soft]# gem sources -l

*** CURRENT SOURCES ***

http://ruby.taobao.org/

[root@web01 soft]# gem install fpm

创建rpm包[root@web01 ~]# fpm -s dir -t rpm -v 1.0 -n warii_mysql /opt/mysql/

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

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

Created rpm {:path=>"warii_mysql-1.0-1.x86_64.rpm"}

[root@web01 ~]# fpm -s dir -t rpm -v 1.0 -n warii_nginx /opt/nginx/

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

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

Created rpm {:path=>"warii_nginx-1.0-1.x86_64.rpm"}

[root@web01 ~]# fpm -s dir -t rpm -v 1.0 -n warii_php /opt/php/

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

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

Created rpm {:path=>"warii_php-1.0-1.x86_64.rpm"}

[root@web01 ~]# fpm -s dir -t rpm -v 1.0 -n warii_redis /opt/redis/

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

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

Created rpm {:path=>"warii_redis-1.0-1.x86_64.rpm"}

为了给mysql安装后初始化数据库,我们可以使用如下脚本:[root@web01 ~]# cat mysql_install_post-install.sh

#!/bin/bash

/usr/sbin/groupdel mysql >/dev/null 2>&1

/usr/sbin/userdel mysql >/dev/null 2>&1

/usr/sbin/groupadd mysql >/dev/null 2>&1

/usr/sbin/useradd -g mysql mysql >/dev/null 2>&1

/bin/rm -rf /opt/mysql/data/ >/dev/null 2>&1

chown -R mysql:mysql /opt/mysql/ >/dev/null 2>&1

cd /opt/mysql/

/opt/mysql/scripts/mysql_install_db --user=mysql >/dev/null 2>&1

sleep 5

rm -rf /etc/my.cnf

exit 0

然后再打包mysql[root@web01 ~]# fpm -s dir -t rpm -v 1.0 -n warii_mysql --post-install mysql_install_post-install.sh /opt/mysql/

[root@web02 ~]# rpm -ivh warii_mysql-1.0-1.x86_64.rpm

Preparing... ########################################### [100%]

1:warii_mysql ########################################### [100%]

[root@web02 ~]# /etc/init.d/mysql start

Starting MySQL.. [ OK ]

详细信息查看wikihttps://github.com/jordansissel/fpm/wiki注意

gem包可以去http://rubygems.org/ 下载

arr-pm-0.0.8.gem backports-2.6.2.gem cabin-0.6.0.gem clamp-0.3.1.gem fpm-0.4.33.gem json-1.7.7.gem open4-1.3.0.gem

gem install --local

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值