一、在可以上网的服务器上下载需要的软件包
下载软件包的方式有很多,可以直接在浏览器中搜索一个软件包并下载
https://centos.pkgs.org/7/centos-x86_64/zlib-devel-1.2.7-18.el7.x86_64.rpm.html
也可以在可以上网的 Linux 机器上安装相应的 YUM 仓库之后,使用如下命令下载
yum --downloadonly reinstall createrepo deltarpm python-deltarpm --downloaddir=/tmp
执行上面的命令后, /tmp
目录下将会有如下软件包
[root@qq ~]# ls /tmp/*.rpm
/tmp/createrepo-0.9.9-28.el7.noarch.rpm
/tmp/deltarpm-3.6-3.el7.x86_64.rpm
/tmp/python-deltarpm-3.6-3.el7.x86_64.rpm
打包下载好的软件包
[root@qq tmp]# cd /tmp
[root@qq tmp]# tar -zcf pakg.tar.gz ./*.rpm
之后想办法把打包好的软件包传输到需要建立 YUM 仓库的服务器上
二、创建本地 YUM 仓库
下面的操作,将在不能上网且需要建立本地 YUM 仓库的服务器上操作
1 安装制作本地 YUM 仓库的工具
假如目前已经把打包好的软件包传输到需要创建本地 YUM 仓库的服务器上的 /opt/
目录下
之前我们上面下载的三个软件包实际上就是创建本地 YUM 仓库的工具所需要的软件包,因此现在我们安装他们到本地 YUM仓库的这个服务器上,执行如下命令即可
[root@yumserver opt]# cd /opt
[root@yumserver opt]# tar -xf pakg.tar.gz
[root@yumserver opt]# ls
createrepo-0.9.9-28.el7.noarch.rpm
deltarpm-3.6-3.el7.x86_64.rpm
pakg.tar.gz
python-deltarpm-3.6-3.el7.x86_64.rpm
[root@yumserver opt]# yum localinstall *.rpm
2 创建本地 YUM 仓库
假设我们的本地 YUM 仓库的目录在 /yum-repo-package
并且已经有了一个软件包
[root@yumserver ~]# ls /yum-repo-package/
zlib-devel-1.2.7-18.el7.x86_64.rpm
接下来执行如下命令创建本地 YUM 源的软件包索引数据
[root@yumserver ~]# createrepo /yum-repo-package/
Spawning worker 0 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@yumserver ~]# ls /yum-repo-package/
repodata zlib-devel-1.2.7-18.el7.x86_64.rpm
[root@yumserver ~]#
假如以后向此目录中添加了新的软件,需要执行如下命令更新索引文件
[root@yumserver ~]# createrepo --update /yum-repo-package/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
三、让本机使用本地 YUM 仓库
先把本地的原有的仓库文件备份的一个目录中
[root@yumserver ~]# cd /etc/yum.repos.d/
[root@yumserver yum.repos.d]# mkdir back
[root@yumserver yum.repos.d]# ls
back CentOS-Sources.repo
CentOS-Base.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-x86_64-kernel.repo
CentOS-Debuginfo.repo epel.repo
CentOS-fasttrack.repo epel-testing.repo
CentOS-Media.repo
[root@yumserver yum.repos.d]# mv *.repo back/
[root@yumserver yum.repos.d]#
接下来继续在本机的 /etc/yum.repos.d
目录下创建 local.repo
文件,并写入如下内容
[local-yum]
name=local-yum
baseurl=file:///yum-repo-package/
enabled=1
gpgcheck=0
接着清空本机原来的 YUM 仓库缓存
[root@yumserver yum.repos.d]# cd
[root@yumserver ~]# yum clean all
Loaded plugins: fastestmirror, ovl
Cleaning repos: local-yum
Cleaning up list of fastest mirrors
Other repos take up 104 M of disk space (use --verbose for details)
[root@yumserver ~]#
最后确认是否能使用本地 YUM 源
[root@yumserver ~]# yum repolist
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
local-yum | 2.9 kB 00:00
local-yum/primary_db | 1.8 kB 00:00
repo id repo name status
local-yum local-yum 1
repolist: 1
还可以搜索一个软件包
[root@yumserver ~]# yum search zlib-devel
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
======================= N/S matched: zlib-devel =======================
zlib-devel.x86_64 : Header files and libraries for Zlib development
Name and summary matches only, use "search all" for everything.
[root@yumserver ~]#