阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

部署yum仓库与定制rpm包

138次阅读
没有评论

共计 5902 个字符,预计需要花费 15 分钟才能阅读完成。

目录

第 1 章 扩展 – yum 缓存

1.1 yum 缓存使用步骤 … 1

1.1.1 导言 … 1

1.1.2 修改配置文件 … 1

1.1.3 使用缓存 … 1

第 2 章 自动化部署必备技能—搭建 YUM 仓库 … 2

2.1 仓库简介 … 2

2.1.1 导言 … 2

2.1.2 使用说明:… 2

2.2 搭建 YUM 仓库过程 … 3

2.2.1 创建 yum 仓库目录 … 3

2.2.2 安装 createrepo 软件 … 3

2.2.3 初始化 repodata 索引文件 … 3

2.2.4 提供 yum 服务(Python)… 4

2.2.5 在仓库中添加新的 rpm 包 … 4

2.3 客户端配置及使用 … 5

2.3.1 更改 yum 源 … 5

2.3.2 清空之前的缓存 … 5

2.3.3 指定使用 yum 库 … 5

2.3.4 直接 yum 安装 … 5

2.4 镜像 yum 源 … 6

2.4.1 镜像同步公网 yum 源 … 6

2.4.2 学生使用内网 yum 源方法 … 6

2.4.3 结果展示 … 6

第 3 章 自动化部署必备技能—定制化 RPM 包 … 7

3.1 FPM 打包工具安装 … 7

3.1.1 安装依赖包 … 7

3.1.2 2、第二步曲:更改仓库 … 8

3.2 FRM 参数:… 8

3.3 Nginx 打包实例参考:… 9

3.3.1 第一步:创建脚本:… 9

3.3.2 第二步:制作 fpm 包 … 9

3.3.3 第三步:当前路径查看 fpm 包(ls). 9

3.4 打包好的 rpm 安装方法:… 9

3.5 注意事项:… 10

第 1 章 扩展 – yum 缓存

1.1 yum 缓存使用步骤

1.1.1 导言

默认情况下,当前版本的 yum 在成功下载和安装软件包后,会把下载的文件删掉。这样可以减少 yum 占用的磁盘空间。你可以打开缓存(设置 /etc/yum.conf 中的 keepcache 选项为 1:keepcache=1)这样 yum 将在缓存目录保留下载到的文件。

1.1.2 修改配置文件

设置 /etc/yum.conf 中的 keepcache 选项为 1:keepcache=1

会将下载的安装包缓存到 /var/cache/yum/x86_64/ 下目录中的 packages

1.1.3 使用缓存

l  下载并缓存

[root@CeShi 6]# yum  install  gd-devel libcurl-devel

2  本地使用缓存下载

[root@CeShi 6]# yum -C install gd-devel libcurl-devel

3  注意:

/var/cache/yum/ 目录下的所有文件包过目录. 复制到另一台机子下的相同目录. 执行.

第 2 章 自动化部署必备技能—搭建 YUM 仓库

2.1 仓库简介

2.1.1 导言

YUM 主要用于自动安装、升级 rpm 软件包,它能自动查找并解决 rpm 包之间的依赖关系。要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的 repository(软件仓库),这个软件仓库我们习惯称为 yum 源。网络上有大量的 yum 源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受。因此我们在优化系统时,都会更换国内的源。

相比较而言,本地 YUM 源服务器最大优点是局域网的快速网络连接和稳定性。有了局域网中的 YUM 源服务器,即便在 Internet 连接中断的情况下,也不会影响其他 YUM 客户端的软件安装和升级。

http://www.zyops.com/autodeploy-yum

2.1.2 使用说明:

使用内网仓库安装前提

1、客户端:更改 yum 源

[root@B yum.repos.d]# vi linuxidc.repo

[linuxidc]

name=Server

baseurl=http://10.0.0.5

enable=1

gpgcheck=0

2、服务端:仓库中需要有对应的 rpm 包(包括依赖包)

l  内网仓库 + 定制 rpm 包

将定制的 rpm 包推送到到搭建的 yum 仓库中,更新仓库即可

l  使用内网仓库

先在仓库主机使用网上 yum 源: yum 缓存到本机 -> 复制到仓库中 -> 更新仓库

2.2 搭建 YUM 仓库过程

 部署命令礼包

mkdir -p /application/yum/CentOS6.6/x86_64/

cd /application/yum/centos6.6/x86_64/

yum -y install createrepo

createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/

python -m SimpleHTTPServer 80 &>/dev/null &

2.2.1 创建 yum 仓库目录

mkdir -p /application/yum/centos6.6/x86_64/

cd /application/yum/centos6.6/x86_64/

rz  # 上传 rpm 包到此目录,此目录下面还可以包括文件夹

2.2.2 安装 createrepo 软件

yum -y install createrepo

2.2.3 初始化 repodata 索引文件

createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/

此目录下会生成 drwxr-xr-x 2 root root 4096 Nov  4 18:51 repodata 文件

  -p –pretty            以整洁的格式输出 xml 文件。

  -d –database         该选项指定使用 SQLite 来存储生成的元数据,默认项。

  -o –outputdir <url>    指定元数据的输出位置

2.2.4 提供 yum 服务(Python)

# 可以用 Apache 或 nginx 提供 web 服务,但用 Python 的 http 模块更简单,适用于内网环境

cd /application/yum/centos6.6/x86_64/

python -m SimpleHTTPServer 80 &>/dev/null &

注意:

必须在仓库目录下(相当于设置站点目录)

端口号可以更改(Python 默认的是 8000)

可以通过浏览器输入本机 IP 查看。

部署 yum 仓库与定制 rpm 包

#

python -m SimpleHTTPServer 80 &>/dev/null &   

执行这一条命令,就可以在浏览器中访问此目录

[root@CeShi ~]# python -m SimpleHTTPServer 80 &>/dev/null &   

[1] 15294

2.2.5 在仓库中添加新的 rpm 包

本机使用网上 yum 源: yum 缓存到本机 -> 复制到仓库中 -> 更新仓库

1、修改:vim  cat /etc/yum.conf   keepcache=1    #缓存到本机

2、复制:[root@CeShi x86_64]# find /var/cache/yum/x86_64/6/  -name “*.rpm”|xargs cp -t /application/yum/centos6.6/x86_64/   #此目录下 rpm 包可以在目录下。

3、更新:createrepo –update /application/yum/centos6.6/x86_64/   #重要

2.3 客户端配置及使用

2.3.1 更改 yum 源

cd /etc/yum.repos.d

[root@B yum.repos.d]# vi oldboy.repo

[linuxidc]

name=linuxidc

baseurl=http://10.0.0.5:80

enable=1

gpgcheck=0

2.3.2 清空之前的缓存

yum clean all

2.3.3 指定使用 yum 库

yum --enablerepo=linuxidc --disablerepo=base,extras,updates,epel list 

2.3.4 直接 yum 安装

[root@backup yum.repos.d]# yum install mhash mcrypt

Loaded plugins: fastestmirror, security

* epel: mirrors.aliyun.com

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 http://mirrors.aliyun.com/rubygems/  -r http://rubygems.org/ 

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、打包时软件不能是运行状态

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148723.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5902字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中