离线使用yum

yum基于rpm, 提供了自动解决依赖的特性, yum会把待安装和依赖的rpm包下载至本地依次安装. 但是在无法联网, 且不提供yum源的内网环境, 就不能直接运行yum命令执行安装了.

一种解决方法是在yum源仓库 (例如 https://pkgs.org/ ) 下载需要安装的rpm包, 然后手动执行rpm命令安装, 这种对于依赖较少的应用比较方便, 但是如果依赖过度, 就十分麻烦.

本文讲述一种制作离线yum仓库的方案, 可在离线环境下使用yum.

在具体操作之前, 需要额外准备一台与目标服务器版本相近, 且可联网的服务器.

1. 安装制作离线yum源的必要工具

1
2
3
4
yum install yum-plugin-downloadonly yum-utils createrepo

mkdir /var/tmp/repo
mkdir /var/tmp/repo-installroot

/var/tmp/repo 是所有需要的rpm包存储地址
repo-installroot 定义临时的安装根目录, 随后会删掉

2. 下载需要安装的包

1
2
3
4
5
6
yum install \
--downloadonly \
--installroot=/var/tmp/repo-installroot \
--releasever=7 \
--downloaddir=/var/tmp/repo \
vim git

如果是不是centos7, 需要将--releasever=改为对应的版本
本例下载了gitvim所需要的rpm包

3. 生成镜像数据库信息

1
createrepo --database /var/tmp/repo

创建yum仓库, 主要是在/var/tmp/repo目录下生成repodata文件夹, 存放仓库的元数据信息

4. 打包仓库, 清除无用数据, 并放到离线服务器上

1
tar -zcf repo.tar.gz /var/tmp/repo

/var/tmp/repo/var/tmp/repo-installroot 可以删除

5. 在目标服务器上解压, 并编辑yum源

将repo.tar.gz包解压到某个目录, 例如/mnt/repo

并创建 /etc/yum.repos.d/offline-repo.repo 文件, 配置本地yum仓库

1
2
3
4
5
[offline-repo]
name=offine-repo
baseurl=file:///mnt/repo
enabled=1
gpgcheck=0

执行yum makecache刷新缓存

至此, 离线仓库配置已完成, 可安装正常的方式安装.

1
yum install -y vim git

本文主要参考自yum-offline-use

0%