部署yum仓库与定制rpm包(2)

epel/primary_db                                          | 6.0 MB    00:06   

linuxidc                                                   | 2.9 kB    00:00   

linuxidc/primary_db                                        |  35 kB    00:00   

Resolving Dependencies

--> Running transaction check

---> Package mcrypt.x86_64 0:2.6.8-10.el6 will be installed 

2.4 镜像yum源 (不重要)

上面只是将自己制作的rpm包,放入yum源。但还有一种企业需求,说的更具体一点,平时学生上课yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网yum服务器,但又考虑到学生回家也要使用yum安装软件,如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。

2.4.1 镜像同步公网yum源

说明

上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。

镜像较大,所有的有300G左右。

# 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/

# epel源

/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/ 

2.4.2 学生使用内网yum源方法

# 可以自建一个内网dns,如果没有,可使用hosts解析。

echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts

2.4.3 结果展示

[root@KVM data]# du -sh yum_data   

21G    yum_data

[root@KVM data]# tree -L 3 yum_data/

yum_data/

├── centos

│  ├── 6

│  │  ├── extras

│  │  ├── os

│  │  └── updates

│  └── RPM-GPG-KEY-CentOS-6

├── epel

│  └── 6

│      └── x86_64

第3章 自动化部署必备技能—定制化RPM包 3.1 FPM打包工具安装 3.1.1 安装依赖包

yum -y install ruby rubygems ruby-devel

3.1.2 第二步曲:更改仓库 

查看当前仓库源命令

gem sources list

更改ruby仓

gem source -a   -r  

3.1.3 第二步曲:安装fpm 和json

gem install json -v 1.8.3

gem install fpm -v 1.3.3

3.2 FRM参数:

-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 

3.3 Nginx打包实例参考: 3.3.1 第一步:创建脚本:

#!/bin/bash

useradd www -M -s /bin/nologin

ln -s /application/nginx-1.10.2/ /application/nginx

3.3.2 第二步:制作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/

注意: -f 后可以指定多个目录

3.3.3  第三步:当前路径查看fpm包(ls) 3.4 打包好的rpm 安装方法:

1、推荐使用方法:yum localinstall 包名 ,(包在当前目录下)

yum -y localinstall nginx-1.10.2-1.x86_64.rpm

[root@m01 application]# ll

total 4

lrwxrwxrwx  1 root root  26 Nov  1 23:26 nginx -> /application/nginx-1.10.2/

drwxr-xr-x 11 root root 4096 Nov  1 23:26 nginx-1.10.2

2、将定制好的rpm包传到yum仓库指定目录下,进行yum安装

3.5  注意事项:

1、打包的软件要是绝对路径

2、不能打包软连接路径

3、打包时软件不能是运行状态

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3d48e37c9066d72f14e211331d686b6f.html