Lixnu系统运维之定制rpm包

一、软件安装的方式特点

1、编译安装

优点:
1、定制化安装目录;
2、按需要开启功能;
3、可以定制(安装的目录和软件的功能,一定情况下不需要网络,可选择版本安装)

缺点:
1、需要查找并试验出合适的编译参数;
2、碰到软件版本升级时,某些参数已经取消,有时会不知所措;
3、Mysql、PHP等软件编译时间过长;
4、慢、复杂、需要茶盏很多参数;

2、yum安装

优点:
1、全自动化安装;
2、简单、方便、快捷;
3、不需要为依赖包发愁;

缺点:
1、自主性太差;
2、需要网络,网络不好下载速度慢;
3、没有办法定制安装目录和软件的功能,不易变更;

3、定制RPM包

优点:
根据自己的需求编译安装软件——制作RPM包——搭建内网yum仓库——yum安装;聚集前两者所有的优点;

缺点:
第一步安装比较复杂,打包之后不能再配置更改;

二、RPM、FPM打包工具简介

1、RPM

RPM全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用这种形式的软件包管路安装、更新、卸载,rpm命令有五种基本的功能、;安装、卸载、升级、查询、验证。

2、FPM打包工具

fpm类似于tar打包工具,就是将一种类型的包换成另外一种类型。
支持的源类型包:
dir —— 将目录打包成所需要的类型,可用于源码编译安装的软件包;
rpm —— 对rpm进行转换;
gem —— 对rubygem包进行转换;
python —— 将python模块打包成相应的类型;

支持的目标类型包:
rpm —— 转换为rpm包
deb —— 转换为deb包
solaris —— 转换为solaris包
puppet —— 转换为puppet包

三、FPM安装

fpm是ruby写的,所以系统环境要安装ruby,且ruby版本要大于2.0.0。

# 安装ruby模块  
#注意:这里yum安装的话有时候安装的ruby版本比较低,可能无法满足下面安装fpm的需求,如果安装fpm时提示需要安装更高级版本的ruby的话,就要自信行编译安装即可,编译安装的小编在此不多说明,可自行查找其他博文
yum -y install ruby rubygems ruby-devel

#添加阿里云的rubygems仓库,国外的源比较慢
gem sources -a http://mirrors.aliyun.com/rubygems/

#移除原生的ruby仓库
gem sources --remove http://rubygems.org/

#安装fpm
gem install --no-ri --no-rdoc fpm

rpm相关的参数说明

参数说明
-qpi查看rpm包信息
-qpl查看rpm包内容
-qpR查看rpm包的依赖
-ivh安装rpm包

四、实战定制nginx的rpm包

1、编译安装nginx

(1)环境准备:
1)准备好nginx软件包(版本不要求),统一放在/server/tools/目录下;
2)开启yum缓存服务,把yum的配置文件/etc/yum.conf 下配置成:keepcache=1;
3)find /var/cache/ -type f -name ‘*rpm’|xargs rm -f #清楚本机的已有的yum缓存记录

*(2)安装nginx

#创建目录,获取nginx软件包
mkdir -p /server/tools
cd /server/tools
wget http://nginx.org/download/nginx-1.18.0.tar.gz

#安装依赖。
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y  #https加密用他。

#编译安装步骤
1、tar xf nginx-1.16.0.tar.gz 
2、cd nginx-1.16.0/
3./configure  --user=www --group=www --prefix=/application/nginx-1.18.0/ --with-http_stub_status_module  --with-http_ssl_module --with-pcre
4、make 
5、make install
6、ln -s /application/nginx-1.18.0/ /application/nginx   #创建软链接

(3)编写脚本

#创建存放脚本的目录
mkdir -p /server/scripts/
cd /server/scripts/
vim nginx_rpm.sh <<EOF
#!bin/bash
useradd -M -s /sbin/nolog
ln -s /application/ngingx-1.18.0/ /application/nginx
EOF

(4) 打包

#把nginx打包成rpm包
fpm -s dir -t rpm -n nginx -v 1.18.0 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.18.0/

参数解释:
-s ——指定目录打包
-t ——指定打包类型
-n ——指定软件
-v ——指定版本
-d ——指定依赖包
--post-install ——指定脚本
-f ——指定所要打包的目录

到此打包结束!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值