Redis RPM 制作
Redis RPM 制作
1 概述
以 redis-6.2.9.tar.gz
版本为例。注意以下要点。
- 打包源路径为
/usr/local/redis
。 - RPM 目标安装路径为
/usr/local/redis
。
资源下载 wget http://download.redis.io/releases/redis-6.2.9.tar.gz
。
2 编译安装
2.1 编译安装
# 安装在 /usr/local/redis 中
$ tar zxvf redis-6.2.9.tar.gz
$ mv redis-6.2.9 /usr/local/redis && cd /usr/local/redis
$ make
2.2 修改 redis 的配置文件
$ vim redis.conf
daemonize yes
2.3 做开机自启动服务
$ cp /usr/local/redis/utils/redis_init_script /etc/init.d/redis
$ chmod +x /etc/init.d/redis
# 创建 /etc/init.d/redis 对应的软连接或资源
$ ln -s /usr/local/redis/src/redis-server /usr/local/bin/redis-server
$ ln -s /usr/local/redis/src/redis-cli /usr/local/bin/redis-cli
$ mkdir -p /etc/redis && cp /usr/local/redis/redis.conf /etc/redis/6379.conf
# 把 redis 服务添加到系统服务中
$ chkconfig --add redis
# 测试 redis 服务启动停止是否正常
$ service redis start
# 确认启动正常会后关闭 redis
$ service redis stop
3 制作 rpm 包安装后的运行脚本
# 存放 redis rpm 相关资源
$ mkdir -p /data/scripts
# rpm 包安装后的要运行的脚本
$ vi /data/scripts/installRedis.sh
#!/bin.bash
cp /usr/local/redis/utils/redis_init_script /etc/init.d/redis
chmod +x /etc/init.d/redis
ln -s /usr/local/redis/src/redis-server /usr/local/bin/redis-server
ln -s /usr/local/redis/src/redis-cli /usr/local/bin/redis-cli
mkdir -p /etc/redis && cp /usr/local/redis/redis.conf /etc/redis/6379.conf
#chkconfig --add redis
#chkconfig redis on
# rpm 包卸载的脚本
$ vi /data/scripts/uninstallRedis.sh
#!/bin.bash
kill -s 9 `ps -aux | grep redis-server | grep -v grep | awk '{print $2}'`
rm -f /etc/init.d/redis
rm -f /usr/local/bin/redis-server
rm -f /usr/local/bin/redis-cli
rm -f /etc/redis/6379.conf
rm -rf /usr/local/redis
# chkconfig --del redis
# fpm 安装,已安装则忽略,详见附录
# 生成 rpm 包,目标文件为 /data/redis-6.2.9-1.x86_64.rpm
$ mkdir /data/redis && cp -rf /usr/local/redis/* /data/redis/
$ cd /data
$ fpm -s dir -t rpm -n redis -v 6.2.9 --iteration 1 -C redis -f --prefix /usr/local/redis --after-install /data/scripts/installRedis.sh --after-remove /data/scripts/uninstallRedis.sh
# mv /data/redis-6.2.9-1.x86_64.rpm /mnt/hgfs/vmshare/redis
# 安装: rpm -i redis-6.2.9-1.x86_64.rpm
# 卸载: rpm -e redis
附录
ruby 离线安装
# github 下载 ruby rpm 包,https://github.com/feedforce/ruby-rpm/releases
# wget https://github.com/feedforce/ruby-rpm/releases/download/2.7.8/ruby-2.7.8-1.el7.centos.x86_64.rpm
$ rpm -i ruby-2.7.8-1.el7.centos.x86_64.rpm
rvm 安装 ruby
相对麻烦,安装过,记录下笔记。
先安装 rvm,后续通过 rvm 安装 ruby。
# 下载 rvm 包,离线安装会快一点
$ curl -sSL https://github.com/rvm/rvm/tarball/stable -o rvm-stable.tar.gz
$ mkdir -p /opt/rvm
$ tar -xzvf rvm-stable.tar.gz -C /opt/rvm/ && cd /opt/rvm/rvm-rvm-6bfc921
# 安装 rvm
$ ./install --auto-dotfiles
# 加载 rvm
$ source /usr/local/rvm/scripts/rvm
升级 ruby。
# 离线安装包:https://rvm.io/binaries/centos/7/x86_64/ruby-2.6.6.tar.bz2
# 查看 rvm 可安装版本
$ rvm list known
# 注意查看可以安装的版本号
$ rvm install 2.6.6
# 安装有点慢,后续可以研究下如何离线快速安装 ruby
# 设置默认的 ruby
$ rvm use 2.6.6 --default
fpm 安装
先安装好 ruby 2.7.8,因为 childprocess requires Ruby version >= 2.4.0.
。
$ yum -y install gcc make rpm-build rubygems
# fpm 安装加速
$ gem sources --add http://mirrors.aliyun.com/rubygems/
$ gem sources --remove https://rubygems.org/
$ gem sources -l
$ gem install fpm -v 1.4.0