本地yum仓库搭建及rpm软件包定制
环境内核信息:
[root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
搭建YUM仓库
创建yum仓库目录
mkdir -p /application/yum/centos6.9/x86_64/ cd /application/yum/centos6.9/x86_64/ rz # 可以将已经定制好的rpm包上传到此目录,此目录下面还可以包括文件夹
安装createrepo软件
createrepo是linux下的创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。
yum -y install createrepo
初始化repodata索引文件
createrepo -pdo /application/yum/centos6.9/x86_64/ /application/yum/centos6.9/x86_64/
提供yum服务
# 可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境 cd /application/yum/centos6.9/x86_64/ python -m SimpleHTTPServer 80 &>/dev/null & 通过浏览器输入本机IP,能够出现yum仓库中的rpm信息就好。
我这里使用的nginx
nginx配置文件
server { listen 80; server_name 10.0.0.61; location / { root /application/yum/centos6.9/x86_64; index index.html index.htm; autoindex on; autoindex_exact_size on; autoindex_localtime on; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
如果觉得自己的yum仓库中的软件太少,可以下载添加
# 只下载软件不安装 yumdownloader pcre-devel openssl-devel # 每加入一个rpm包就要更新一下。
createrepo --update /application/yum/centos6.9/x86_64/
# cat /etc/yum.conf keepcache=1 ---- 保存下载的包 # 安装包存储目录 cachedir=/var/cache/yum/$basearch/$releasever # /var/cache/yum/x86_64/6/base/packages
客户端配置
# cd /etc/yum.repos.d [root@zxpo yum.repos.d]# vi shizhi.repo [shizhi] name=Server baseurl=http://10.0.0.66 enable=1 gpgcheck=0 [root@zxpo ~]# yum --enablerepo=shizhi --disablerepo=base,extras,updates,epel list # 指定使用shizhi库 上面是临时使用内网yum源,想永久并简单使用yum -y install lrzsz命令,就需要修改配置文件将默认的repo文件关闭。 [root@zxpo ~]# cd /etc/yum.repos.d/ [root@zxpo yum.repos.d]# vim CentOS-Base.repo # 在每一个启动的源加上 # enabled=0 #改为1就启用,没有此参数也是启用。 [base] ………… enabled=0 [updates] ………… enabled=0 [extras] ………… enabled=0 # 还有其他开启的仓库就使用这个办法关闭。
RPM软件包定制
支持的源类型包
dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm 对rpm进行转换
gem 对rubygem包进行转换
python 将python模块打包成相应的类型
支持的目标类型包
rpm 转换为rpm包
deb 转换为deb包
solaris 转换为solaris包
puppet 转换为puppet模块
FPM安装
第一步、安转依赖
yum -y install ruby rubygems ruby-devel
第二步、更改仓库
更改ruby仓
gem source --add http://mirrors.aliyun.com/rubygems/ --remove http://rubygems.org/
查看当前仓库源
gem sources list
第三步、安装fpm 和json
gem install json -v 1.8.3 gem install fpm -v 1.3.3
FRM参数
详细使用见fpm –help -s 指定源类型 -t 指定目标类型,即想要制作为什么包 -n 指定包的名字 -v 指定包的版本号 -C 指定打包的相对路径 Change directory to here before searching forfiles -d 指定依赖于哪些包 -f 第二次打包时目录下如果有同名安装包存在,则覆盖它 -p 输出的安装包的目录,不想放在当前目录下就需要指定 --post-install 软件包安装完成之后所要运行的脚本;同--after-install --pre-install 软件包安装完成之前所要运行的脚本;同--before-install --post-uninstall 软件包卸载完成之后所要运行的脚本;同--after-remove --pre-uninstall 软件包卸载完成之前所要运行的脚本;同--before-remove
Nginx打包语句参考
第一步:创建脚本:
[root@yum scripts]# vim nginx_rpm.sh # 这是安装完rpm包要执行的脚本 #!/bin/bash useradd www -M -s /sbin/nologin -u 2222 ln -s /application/nginx-1.10.2/ /application/nginx
第二步:制作fpm包
fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.10.2/
第三步:当前路径查看fpm包(ls)
PHP打包语句参考
第一步:创建脚本:
vim /server/scripts/php_rpm.sh #!/bin/bash ln -s /application/php-5.5.32/ /application/php
第二步:制作fpm包
fpm -s dir -t rpm -n php -v 5.5 -d 'zlib-devel,libxml2-devel,libjpeg-devel,libmcrypt-devel,libjpeg-turbo-devel,freetype-devel,libpng-devel,gd-devel,libcurl-devel,libxslt-devel,mhash,mcrypt' --post-install /server/scripts/php_rpm.sh -f /usr/local/libiconv/ /application/php-5.5.32/
第三步:当前路径查看fpm包(ls)