一、将源码包打成rpm包:
#开启yum缓存
[root@db02 ~]# vim /etc/yum.conf
keepcache=1
#安装fpm
fpm-1.3.3.x86_64.tar.gz
#有epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#安装fpm的依赖
[root@db02 ~]# yum install -y ruby-devel rubygems
#添加华为的ruby源
[root@db02 ~]# gem sources --add https://mirrors.huaweicloud.com/repository/rubygems/
#删除官方的ruby源
[root@db02 ~]# gem sources --remove https://rubygems.org/
#解压fpm包
[root@db02 src]# tar xf fpm-1.3.3.x86_64.tar.gz
#安装fpm打包工具
[root@db02 src]# gem install *.gem
#源码安装nginx
#安装依赖
[root@db02 ~]# yum install -y gcc-c++ gcc glibc zlib-devel pcre-devel openssl-devel automake autoconf
#保存nignx的依赖包
[root@db02 ~]# mkdir /nginx
[root@db02 ~]# find /var/cache/yum/ -name '*.rpm'|grep -v ruby|xargs cp -t /nginx/
#解压
[root@db02 ~]# tar xf nginx-1.17.1.tar.gz
#生成
[root@db02 nginx-1.17.1]# ./configure --prefix=/app/nginx-1.17.1
#编译
[root@db02 nginx-1.17.1]# make
#安装
[root@db02 nginx-1.17.1]# make install
#做软连接
[root@db02 ~]# ln -s /app/nginx-1.17.1 /app/nginx
fpm
-s dir #指定,我要打包的是一个目录
-t rpm #指定,我要打成rpm包
-n nginx #指定,软件名称
-v 1.6.3 #指定,版本号
-d 'pcre-devel,openssl-devel' #指定,依赖包
--post-install /server/scripts/nginx_rpm.sh #指定安装之后的脚本
--pre-install #指定安装之前的脚本
-f /application/nginx-1.6.3/ #指定打包的目录
#打包
fpm -s dir -t rpm -n nginx -v 1.17.1 -d 'pcre-devel,openssl-devel,automake,autoconf' --post-install /root/nginx.sh -f /app/nginx-1.17.1/
打包结果:
nginx-1.17.1-1.x86_64.rpm
报错:
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Need executable 'rpmbuild' to convert dir to rpm {:level=>:error}
缺少rpmbuild
yum provides rpmbuild
安装:yum install -y rpm-build
二、做yum仓库
# 安装createrepo工具
yum install -y createrepo
# 把想做成yum仓库的软件做成yum仓库
createrepo /nginx/
# 把某一台主机做成yum仓库
此步骤参考linux基础篇第14章
# 设置客户端指向yum仓库即可