本地YUM源

建立本地YUM源的初衷是按照自己的需求打包rpm包并在内网装机时直接部署。所以先来介绍一下RPM包的打包工具,我选择的是FPM来打包。

FPM on github:https://github.com/jordansissel/fpm

FPM安装

1
2
3
4
5
6
7
8
9
10
11
12
13
#FPM基于ruby开发,所以先yum安装ruby以及rubygems
yum install ruby rubygems ruby-devel ruby-rdoc rpm-build gcc -y

#删除默认RubyGems源并添加使用淘宝的RubyGems源
gem sources --remove http://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l
*** CURRENT SOURCES ***

https://ruby.taobao.org
# 请确保只有 ruby.taobao.org

gem install fpm #使用gem安装fpm

FPM使用编译好的软件目录打包RPM,所以在打包之前,需要先编译好软件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
FPM常用打包命令解析(更多命令请fpm --help):
fpm -s dir \ #定义导入的是何种类型
-t rpm \ #定义输出的包是何种类型
-n smm-nginx \ #定义包的名称
-v 1.8.0 \ #定义版本信息
--iteration 1 \ #定义周期版本号
-d 'pcre >= 7.8' \ #定义依赖,可多次使用该参数
-d 'pcre-static >= 7.8' \
-d 'pcre-devel >= 7.8' \
-d 'openssl-perl >= 1.0.1e' \
-d 'openssl-static >= 1.0.1e' \
-d 'openssl >= 1.0.1e' \
-d 'openssl-devel >= 1.0.1e' \
-d 'openssl098e >= 0.9.8e' \
-m \ #定义维护者,一般留邮箱
--vendor SMM IT \ #定义RPM包的提供者
--description SMM Nginx Version \ #定义包的描述
--url http://www.smm.cn \ #定义链接
--before-install pre-nginx.sh \ #定义安装前运行的脚本,按需添加(此处需使用完整路径)
--after-remove \ #定义卸载后运行的脚本,按需添加(此处需使用完整路径)
--rpm-init nginx \ #定义安装后需要键入系统服务的运行脚本,按需添加(此处需使用完整路径)
/usr/local/webserver/nginx/ #定义编译后的程序路径

有了自定义的RPM之后,就可以自建本地yum源了

1
2
3
yum install createrepo -y
createrepo -p -d -o /yum/Packages/ /yum/Packages/ #新建源
createrepo --update /yum/Packages #更新源