自制rpm包
为什么要打rpm包,一个下载下来的源码包,需要各种依耐才能安装好,而且安装过程繁琐,如果把安装好的源码包制作成rpm包就可以一键的完成安装,一次打包,永久解决问题,在工作中也能更加的省时省力。
实验环境
主机名:yum_repo IP1:10.0.0.88 (yum仓库) vsftpd做yum仓库
主机名:yum_client IP2:10.0.0.99 (vim /etc/yum.repos.d/yum.repo)
2.准备一台新的虚拟机,源码安装nginx并且打成RPM,修改欢迎页面
3.将rpm包和依赖包,放到 yum仓库中
4.client 直接执行 yum install nginx -y
10.0.0.100打包nginx的主机
步骤一 : 源码安装nginx
安装过程
- 解压
- 生成
- 编译
- 安装
环境的准备
1、 下载nginx源码包
也可直接到nginx的官网下载,由于官网的更新,链接地址可能会失效。
[root@gong /data]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
2、解压
[root@gong /data]# tar xf nginx-1.16.1
[root@gong /data]# cd nginx-1.16.1
3、创建要安装到的目录
[root@gong /data/nginx-1.16.1]# mkdir /app
4、创建指定启动程序的用户
[root@gong /data/nginx-1.16.1]# useradd nginx -s /sbin/nologin -M
5、安装编译安装需要的依耐(补充步骤)
[root@gong ~]# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
[root@qls nginx-1.16.1]# yum install -y gcc gcc-c++ glibc zlib-devel pcre-devel openssl-devel
或者
yum -y install gcc gcc-c++
glibc zlib-devel pcre-devel openssl-devel --downloadonly --downloaddir=/opt
# 把下载的依耐复制到/opt中备份
[root@yum_repo /data/nginx-1.16.1]# find /var/cache/yum -name '*.rpm'| xargs cp -t /opt
6、指定安装的信息 - 生成
[root@gong /data/nginx-1.16.1]# ./configure --prefix=/app/nginx-1.6.1 --user=nginx --group=nginx
7、编译
[root@gong /data/nginx-1.16.1]# make
8、安装
[root@gong /data/nginx-1.16.1]# make install
9、检查配置文件是否有误
[root@gong /app/nginx-1.6.1/sbin]# /app/nginx-1.6.1/sbin/nginx -t
nginx: the configuration file /app/nginx-1.6.1/conf/nginx.conf syntax is ok
nginx: configuration file /app/nginx-1.6.1/conf/nginx.conf test is successful
#注: 注意使用nginx
10、启动nginx
[root@gong /app/nginx-1.6.1/sbin]# /app/nginx-1.6.1/sbin/nginx
注意:使用绝对路径
11、访问测试
12、创建链接-便于升级
[root@gong /app]# ln -s /app/nginx-1.6.1/ nginx
步骤二 : 个性化nginx
[root@qls html]# vim /app/nginx-1.16.1/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>龚晓廖的主页</title>
<style>
body {
35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1 style="color:red;">欢迎来到龚晓廖的主页</h1>
<a href="http://www.baidu.com/">友链,百度</a></p>
</body>
</html>
步骤三 : 打包nginx
1、安装打包rpm的工具-----fpm
[root@gong ~]# /fpm
上传fpm的安装包
[root@gong /fpm]# tar xf fpm-1.3.3.x86_64.tar.gz
[root@gong /fpm]# ll
total 2572
-rw-r--r-- 1 root root 15360 Jun 27 2016 arr-pm-0.0.10.gem
-rw-r--r-- 1 root root 88064 Jun 27 2016 backports-3.6.8.gem
-rw-r--r-- 1 root root 21504 Jun 27 2016 cabin-0.8.1.gem
-rw-r--r-- 1 root root 29184 Jun 27 2016 childprocess-0.5.9.gem
-rw-r--r-- 1 root root 24576 Jun 27 2016 clamp-0.6.5.gem
-rw-r--r-- 1 root root 881664 Jun 27 2016 ffi-1.9.10.gem
-rw-r--r-- 1 root root 114176 Jun 27 2016 fpm-1.3.3.gem
-rw-r--r-- 1 root root 1288103 Apr 16 12:14 fpm-1.3.3.x86_64.tar.gz
-rw-r--r-- 1 root root 152064 Jun 27 2016 json-1.8.2.gem
2、安装ruby,安装gpm包的命令。
[root@gong fpm]# yum -y install ruby rubygems ruby-devel rpm-build
3、更换gem的源
# 1.查看gem的源
[root@gong fpm]# gem sources --list
*** CURRENT SOURCES ***
https://rubygems.org/
# 2.更换阿里云的源 先移除国外源
[root@qls fpm]# gem sources --remove https://rubygems.org/
# 3.更换阿里云的源, 添加阿里云的源
[root@qls fpm]# gem sources -a https://mirrors.aliyun.com/rubygems/
4、安装gem文件
[root@gong /fpm]# gem install *.gem
5、编辑安装程序之后要执行的脚本
[root@gong /fpm]# vim /fpm/nginx.sh
#!/bin/bash
useradd nginx -s /sbin/nologin -M
ln -s /app/nginx-1.16.1 /app/nginx
6、使用fpm打包
执行这步之后就会生成一个rpm包,里面包含了依耐关系。就可以直接安装了。
fpm -s dir -t rpm -n nginx -v 1.16.1 -d 'zlib-devel,gcc,gcc-c++,glibc,pcre-devel,openssl-devel' --post-install /fpm/nginx.sh -f /app/nginx-1.6.1/
fpm:打rpm包命令
-s:dir # 打目录
-t:rpm # 把目录打成rpm包
-n:nginx # 软件名字叫nginx
-v:1.16.1 # 软件的版本号
-d: # 指定nginx的依赖包,安装的时候会找到他们并安装
-f: # 指定要达成rpm包的目录路径
--post-install # 指定rpm包安装完成之后要执行的脚本
--pre-install # 指定rpm包安装之前,要执行的脚本
10.0.88服务端配置
1、yum_repo服务端安装服务
[root@yum_server ~]# yum -y install vsftpd createrepo
2、启动ftp服务
[root@yum_server ~]# systemctl start vsftpd
3、10.0.0.100打包nginx的主机,把rpm包和依耐上传到yum_repo服务端
[root@yum_eve fpm]# scp /opt/* root@10.0.0.88:/var/ftp/pub
[root@yum_eve fpm]# scp /fpm/nginx-1.16.1-1.x86_64.rpm root@10.0.0.88:/var/ftp/pub
4、生成yum仓库
[root@yum_server /var/ftp/pub]# createrepo /var/ftp/pub/
10.0.0.99客户端配置
1、客户端访问,编辑配置文件
[root@yum_client yum.repos.d]# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx
baseurl=ftp://10.0.0.88/pub/
enabled=1
gpgcheck=0
2、客户端安装nginx
[root@yum_client app]# yum -y install nginx
3、启动访问测试
[root@yum_client app]# /app/nginx/sbin/nginx