自制rpm包


自制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 {
        width: 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

posted @ 2020-07-09 21:46  Gshelldon  阅读(553)  评论(0编辑  收藏  举报