CentOS在无网络网环境下安装服务
环境准备
首先明确在内网的目标电脑(简称内网机)的系统版本,然后找一台有外网环境的相同系统版本的机子(简称外网机),在外网机上使用安装 yum-utils
和 createrepo
服务。
yum install -y yum-utils createrepo
制作离线yum源
首先在外网机的一个合适的位置创建的一文件夹用于放置下载的rpm包,然后使用yum-utils
服务中的repotrack
命令来下载内网机上需要安装服务的所有依赖包。
以nginx为例:
mkdir ng
cd ng
repotrack nginx
等待所有的依赖包下载完成,会看到下载了非常多的依赖的rpm包还有包括需要的nginx的rpm包。
使用createrepo
命令制作离线yum源。
// * 表示之前下载的所有rpm包
createrepo *
执行完后会发现当前目录下多了个 repodata
的文件夹
-rw-r--r-- 1 root root 42436 Jul 4 2014 popt-1.13-16.el7.i686.rpm
-rw-r--r-- 1 root root 42740 Jul 4 2014 popt-1.13-16.el7.x86_64.rpm
-rw-r--r-- 1 root root 292948 Oct 15 2020 procps-ng-3.3.10-28.el7.i686.rpm
-rw-r--r-- 1 root root 298092 Oct 15 2020 procps-ng-3.3.10-28.el7.x86_64.rpm
-rw-r--r-- 1 root root 51112 Jul 4 2014 qrencode-libs-3.4.1-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 194000 Aug 23 2019 readline-6.2-11.el7.i686.rpm
-rw-r--r-- 1 root root 197696 Aug 23 2019 readline-6.2-11.el7.x86_64.rpm
drwxr-xr-x 2 root root 4096 Jun 27 12:51 repodata
-rw-r--r-- 1 root root 1220216 Dec 1 2021 rpm-4.11.3-48.el7_9.x86_64.rpm
-rw-r--r-- 1 root root 285792 Dec 1 2021 rpm-libs-4.11.3-48.el7_9.x86_64.rpm
-rw-r--r-- 1 root root 236688 Oct 15 2020 sed-4.2.2-7.el7.x86_64.rpm
-rw-r--r-- 1 root root 170000 Apr 4 2020 setup-2.8.71-11.el7.noarch.rpm
退出之前创建的ng文件夹,将这个文件夹所有的东西打包
tar -zcvf ng-repo.tar.gz ng
使用自定义离线yum源安装服务
将之前的tar包传到内网机上,解压出来
tar -zxvf ng-repo.tar.gz ng-repo
修改/etc/yum.repos.d
文件夹下的 repo文件,我的机子上叫 base.repo
,修改前记得先备份。
cd /etc/yum.repos.d
cp base.repo base.repo.bak
vi base.repo
[local]
name=local
baseurl=file:///root/ng-repo
enable=1
gpgcheck=0
然后保存退出。执行下面的命令。
[root@xxxxxxx yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: local
Cleaning up list of fastest mirrors
Other repos take up 56 M of disk space (use --verbose for details)
[root@xxxxxxx yum.repos.d]# yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
local | 2.9 kB 00:00:00
(1/3): local/filelists_db | 79 kB 00:00:00
(2/3): local/other_db | 48 kB 00:00:00
(3/3): local/primary_db | 75 kB 00:00:00
元数据缓存已建立
[root@xxxxxxx yum.repos.d]#
成功后就可以直接使用yum install -y nginx
命令安装nginx服务了,免除了缺依赖的麻烦情况。再也不用担心无网络状态下不好安装服务了。