服务器无法联网,应该如何进行CentOS系统的离线安装?

在特定的工作环境,如高保密性网络、物理隔离的内网或网络信号不佳的场所,为CentOS系统进行不联网安装是一项非常实用且必要的技术,离线部署不仅确保了系统的安全性,避免了潜在的互联网攻击,还能实现标准化、可复制的批量安装,极大地提高了运维效率,其核心思想在于,将系统安装过程及后续所需的全部软件包都预先准备好,存储在本地介质(如光盘、U盘或硬盘)中,构建一个本地化的软件源。

服务器无法联网,应该如何进行CentOS系统的离线安装?

整个流程可以分为两个主要阶段:系统基础安装和本地软件源配置。

准备工作:万事开头难

在进行离线安装前,充分的准备工作是成功的关键,需要从CentOS官方网站获取与目标系统架构相匹配的完整版DVD ISO镜像文件,这个ISO文件不仅包含了系统安装程序,更重要的是,它内含了数千个常用软件包,这正是我们构建本地源的基石,切勿选择“Minimal”或“Live”版,因为它们不包含完整的软件仓库。

准备一个可启动的U盘作为安装介质,可以使用dd命令(在Linux/macOS上)或Rufus、UltraISO等工具(在Windows上)将下载的ISO镜像刻录至U盘,建议再准备一个存储设备,或直接利用目标机器的硬盘空间,来存放ISO镜像文件本身,以供后续配置本地源使用。

核心步骤:配置本地YUM源

当CentOS系统通过U盘介质完成基础安装后,它会默认配置指向互联网的官方YUM源,在没有网络连接的情况下,任何yum installyum update操作都会失败,首要任务就是将软件源指向本地。

第一步:挂载ISO镜像

假设已将CentOS的ISO镜像文件(CentOS-7-x86_64-DVD-2009.iso)复制到了系统的 /opt 目录下。

  1. 创建一个用于挂载的目录:

    sudo mkdir /mnt/cdrom
  2. 使用mount命令将ISO文件挂载到该目录:

    服务器无法联网,应该如何进行CentOS系统的离线安装?

    sudo mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom

    执行后,/mnt/cdrom 目录下的内容就是ISO镜像里的所有文件,Packages 目录包含了所有的RPM软件包。

  3. 为了让系统重启后自动挂载,需要编辑 /etc/fstab 文件,添加如下一行:

    /opt/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom iso9660 defaults,loop 0 0

第二步:创建并配置本地仓库文件

YUM的配置文件存放在 /etc/yum.repos.d/ 目录中,为了防止系统尝试访问失效的网络源,最佳做法是先将该目录下的原有仓库文件进行备份或重命名。

sudo cd /etc/yum.repos.d/
sudo mkdir backup
sudo mv *.repo backup/

创建一个新的仓库配置文件,local.repo

sudo vim local.repo

在文件中填入以下内容:

[local]
name=Local CentOS Repository
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

这里的配置项解释如下:

  • [local]:仓库的唯一标识符。
  • name:仓库的描述性名称。
  • baseurl:指向软件包的路径,file:// 表示本地文件系统,后面跟挂载点。
  • gpgcheck=1:启用GPG签名校验,确保软件包的完整性和安全性。
  • enabled=1:启用此仓库。
  • gpgkey:指定GPG公钥文件的路径,该文件通常随系统一同安装。

第三步:验证与使用

服务器无法联网,应该如何进行CentOS系统的离线安装?

配置完成后,需要清理YUM缓存并重新生成元数据,以使新的本地源生效。

sudo yum clean all
sudo yum makecache

执行 yum repolist 命令,如果输出中能看到名为 local 的仓库,并正确列出了软件包数量,则说明本地源配置成功,你就可以像联网时一样,自由使用 yum install vim 等命令来安装ISO镜像中包含的任何软件了。

高级技巧与注意事项

对于更复杂的场景,可能需要安装ISO镜像之外的软件,可以在一台能上网的相同系统上,使用 yumdownloader --devel --resolve 命令下载目标软件及其所有依赖包,然后将这些RPM文件一并拷贝到离线环境中,使用 yum localinstall *.rpmrpm -ivh *.rpm 进行安装。

为了更高效地管理自定义软件包,可以使用 createrepo 命令,将下载好的所有RPM文件放入一个目录(如 /my_local_repo),然后在该目录下运行 createrepo .,它会生成仓库所需的元数据,之后,只需将 local.repo 文件中的 baseurl 指向这个新目录即可。

本地源类型 优点 缺点 适用场景
直接挂载ISO 配置简单,快速 软件包版本固定,无法更新 单机、临时性或测试环境
自定义RPM目录 灵活性高,可增删软件包 需手动管理依赖和元数据 需要特定软件包的定制化环境
HTTP/FTP本地服务器 集中管理,多机共享 配置相对复杂,需额外服务 大规模内网批量部署

相关问答FAQs

Q1: 系统安装并配置好本地源后,如何执行系统更新?
A1: 使用本地源进行系统更新(yum update)只能将系统更新至当前ISO镜像所包含的版本,如果你的ISO是CentOS 7.9,那么更新后系统版本不会超过7.9,要获得更新的安全补丁或功能,你需要下载更新的ISO镜像文件,替换掉旧的ISO并重新挂载,或者手动下载更新的RPM包并放入自定义仓库中。

Q2: 如果我需要安装的软件及其依赖包不在官方的DVD ISO镜像里,最稳妥的解决方法是什么?
A2: 最稳妥的方法是利用一台与离线环境系统版本、架构完全相同的、可以连接互联网的机器,在这台机器上,使用 yumdownloader --resolve <软件名> 命令下载目标软件及其所有依赖关系,这个命令会自动处理依赖,将所有需要的RPM包下载到当前目录,将整个目录下的所有RPM文件复制到离线环境中,通过 yum localinstall /path/to/rpms/*.rpm 命令进行安装,YUM会自动从本地文件中解决所有依赖关系。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-15 01:46
下一篇 2025-10-15 01:50

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信