浏览目录
一、软件安装的方式特点
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 ——指定所要打包的目录
到此打包结束!!!