Redis RPM 制作

felix.shao2023-04-03缓存中间件FAQRedis

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

参考文献

Last Updated 1/17/2025, 4:34:25 PM