Redis(SPEC文件打包)

1. 建立工作路径

mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

2. 下载Redis源码

cd ~/rpmbuild/SOURCES
wget https://download.redis.io/releases/redis-6.2.5.tar.gz

3. 安装依赖、编译和打包工具

yum install -y rpm-build

#1、安装scl,它可以在不覆盖原有软件包的情况下与其共存,缺点就是仅支持64位
yum -y install centos-release-scl
 
#2、安装gcc,其中的9表示大版本号,默认安装大版本下的最新稳定版本
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 
#3、使用以下命令临时启动gcc,这种方式适用于临时切换系统的gcc版本,即开即用,仅在当前bash中有效,重启虚拟机就又变成4.8.5了
scl enable devtoolset-9 bash
 
#4、使用以下命令永久启动gcc,这种方式适用于长期使用该版本进行编译,切换bash依然有效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
 
#查看gcc环境
gcc -v

4. 编写SPEC文件

cd ~/rpmbuild/SPECS
vim redis_build.spec
# 软件名
Name:           redis
# 版本号
Version:        6.2.5
# 发布编号
Release:        1%{?dist}
# 软件说明
Summary(zh_CN): 这是redis项目
# 软件包的版权协议
License:        GPLv3+

URL:            https://download.redis.io/releases/
Source0:        redis-6.2.5.tar.gz

# 编译需要的依赖
BuildRequires: gcc
# 本软件需要的依赖
#Requires: 

%description -l zh_CN
这个是一个redis项目练手项目,进行redis打包等操作。

%prep
%setup -q

# 编译阶段执行的命令
%build
make

# 安装阶段执行的命令
%install
rm -rf %{buildroot}
make install PREFIX=%{buildroot}
cp %{_builddir}/%{name}-%{version}/redis.conf %{buildroot}/bin/

# 安装后执行的命令
%post
cat>/lib/systemd/system/redis.service<<-EOF
[Unit]
Description=Redis
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/bin/redis-server
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF


# 卸载前执行的命令
%preun
rm -rf /lib/systemd/system/redis.service

# 将所需要打包的文件都存放到这边中;-f %{name}.lang 加上后的意思为声明找到的文件
%files
/bin/*

# 软件更新说明
%changelog

5.检查SPEC文件(可略)

rpmlint redis_build.spec

6.打包

centos7以及下命令:

cd ~/rpmbuild/SPECS
rpmbuild -ba redis_build.spec

centos8命令:

cd ~/rpmbuild/SPECS
rpmbuild -ba redis_build.spec --nodebuginfo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零到1%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值