Fpm 之 Redis-5.7.21 rpm 包制

一、首先将Redis-2.8.3编译安装包,安装到自定义的目录

1. 下载redis
wget http://download.redis.io/releases/redis-2.8.3.tar.gz

2.编译安装
tar zxvf redis-2.8.3.tar.gz
cd redis-2.8.3
make
#make 完后,会在当前目录下生成一个scr目录

3.创建一个目录存放redis程序文件
mkdir /app/redis/

4.把scr的文件复制到/app/redis/
cp src/redis-server /app/redis/
cp src/redis-benchmark /app/redis/
cp src/redis-cli /app/redis/
cp redis.conf /app/redis/

5.修改redis的配置文件,让其以守户进程的方式启动
vi redis.conf
daemonize yes

6.做开机自启动服务,环境如下:
[root@Nginx-Proxy redis]# pwd
/app/redis
[root@Nginx-Proxy redis]# ll
total 13764
-rwxr-xr-x. 1 root root 4170519 May 22 14:21 redis-benchmark
-rwxr-xr-x. 1 root root 4242955 May 22 14:21 redis-cli      #redis-cli连接客户端
-rw-r--r--. 1 root root   29594 May 22 14:21 redis.conf       #redis 配置文件
-rwxr-xr-x. 1 root root 5641082 May 22 14:21 redis-server     #redis-server 启动服务

把解压后的/app/software/redis-2.8.3/utils/redis_init_script 文件复制到/etc/init.d/目录下
cp /app/software/redis-2.8.3/utils/redis_init_script /etc/init.d/
把redis_init_script文件改名为redis
mv /etc/init.d/redis_init_script /etc/init.d/redis
修改redis的为可执行权限,chmod +x redis
chmod +x /etc/init.d/redis
修改redis的文件,为如下:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# chkconfig: 2345 90 10                 #必须曾加
# description: Redis                        #必须增加

REDISPORT=6379                          #启动的端口
EXEC=/app/redis/redis-server        #redis启动服务所在文件
CLIEXEC=/app/redis/redis-cli         #redis客户端所在文件

PIDFILE=/var/run/redis.pid             #启动服务后的PID所在文件
CONF="/app/redis/redis.conf"        #redis配置文件

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
5.把redis服务添加到系统服务中
chkconfig --add redis

6.测试redis服务启动停止是否正常。
[root@Nginx-Proxy utils]# service redis start
Starting Redis server...
[root@Nginx-Proxy utils]# service redis stop
Stopping ...
Redis stopped

二、制作rpm包安装后的运行脚本

[root@localhost mysql]#mkdir -p /app/redis/script                           #存放安装后的运行脚本
[root@localhost mysql]#cp /etc/init.d/redis /app/redis/script/           #将redis的配置启动文件复制到该目录
[root@localhost mysql]#vi server.sh                                                  #rpm包安装后的要运行的脚本
#!/bin.bash

#制作自启动服务
cp /app/redis/script/redis /etc/init.d/

chmod +x /etc/init.d/redis

chkconfig --add redis

chkcconfig redis on

三、生成rpm包

fpm -s dir -t rpm -n redis -v 2.8.3 --post-install /app/redis/script/server.sh -f /app/redis/

四、到客户端测试安装rpm包

[root@localhost ~]# yum -y localinstall redis-2.8.3-1.x86_64.rpm 
[root@localhost script]# service redis start
Starting Redis server...
[root@localhost script]# lsof -i:6379
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 10415 root    4u  IPv6 265427      0t0  TCP *:6379 (LISTEN)
redis-ser 10415 root    5u  IPv4 265428      0t0  TCP *:6379 (LISTEN)
[root@localhost script]# service redis stop
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped