yum基于rpm, 提供了自动解决依赖的特性, yum会把待安装和依赖的rpm包下载至本地依次安装. 但是在无法联网, 且不提供yum源的内网环境, 就不能直接运行yum命令执行安装了.
一种解决方法是在yum源仓库 (例如 https://pkgs.org/ ) 下载需要安装的rpm包, 然后手动执行rpm命令安装, 这种对于依赖较少的应用比较方便, 但是如果依赖过度, 就十分麻烦.
本文讲述一种制作离线yum仓库的方案, 可在离线环境下使用yum.
在具体操作之前, 需要额外准备一台与目标服务器版本相近, 且可联网的服务器.
1. 安装制作离线yum源的必要工具
1 | yum install yum-plugin-downloadonly yum-utils createrepo |
/var/tmp/repo
是所有需要的rpm包存储地址repo-installroot
定义临时的安装根目录, 随后会删掉
2. 下载需要安装的包
1 | yum install \ |
如果是不是centos7, 需要将--releasever=
改为对应的版本
本例下载了git
和vim
所需要的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 | [offline-repo] |
执行yum makecache
刷新缓存
至此, 离线仓库配置已完成, 可安装正常的方式安装.
1 | yum install -y vim git |
本文主要参考自yum-offline-use