在特定的工作环境,如高保密性网络、物理隔离的内网或网络信号不佳的场所,为CentOS系统进行不联网安装是一项非常实用且必要的技术,离线部署不仅确保了系统的安全性,避免了潜在的互联网攻击,还能实现标准化、可复制的批量安装,极大地提高了运维效率,其核心思想在于,将系统安装过程及后续所需的全部软件包都预先准备好,存储在本地介质(如光盘、U盘或硬盘)中,构建一个本地化的软件源。
整个流程可以分为两个主要阶段:系统基础安装和本地软件源配置。
准备工作:万事开头难
在进行离线安装前,充分的准备工作是成功的关键,需要从CentOS官方网站获取与目标系统架构相匹配的完整版DVD ISO镜像文件,这个ISO文件不仅包含了系统安装程序,更重要的是,它内含了数千个常用软件包,这正是我们构建本地源的基石,切勿选择“Minimal”或“Live”版,因为它们不包含完整的软件仓库。
准备一个可启动的U盘作为安装介质,可以使用dd
命令(在Linux/macOS上)或Rufus、UltraISO等工具(在Windows上)将下载的ISO镜像刻录至U盘,建议再准备一个存储设备,或直接利用目标机器的硬盘空间,来存放ISO镜像文件本身,以供后续配置本地源使用。
核心步骤:配置本地YUM源
当CentOS系统通过U盘介质完成基础安装后,它会默认配置指向互联网的官方YUM源,在没有网络连接的情况下,任何yum install
或yum update
操作都会失败,首要任务就是将软件源指向本地。
第一步:挂载ISO镜像
假设已将CentOS的ISO镜像文件(CentOS-7-x86_64-DVD-2009.iso
)复制到了系统的 /opt
目录下。
创建一个用于挂载的目录:
sudo mkdir /mnt/cdrom
使用
mount
命令将ISO文件挂载到该目录:sudo mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom
执行后,
/mnt/cdrom
目录下的内容就是ISO镜像里的所有文件,Packages
目录包含了所有的RPM软件包。为了让系统重启后自动挂载,需要编辑
/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公钥文件的路径,该文件通常随系统一同安装。
第三步:验证与使用
配置完成后,需要清理YUM缓存并重新生成元数据,以使新的本地源生效。
sudo yum clean all sudo yum makecache
执行 yum repolist
命令,如果输出中能看到名为 local
的仓库,并正确列出了软件包数量,则说明本地源配置成功,你就可以像联网时一样,自由使用 yum install vim
等命令来安装ISO镜像中包含的任何软件了。
高级技巧与注意事项
对于更复杂的场景,可能需要安装ISO镜像之外的软件,可以在一台能上网的相同系统上,使用 yumdownloader --devel --resolve
命令下载目标软件及其所有依赖包,然后将这些RPM文件一并拷贝到离线环境中,使用 yum localinstall *.rpm
或 rpm -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会自动从本地文件中解决所有依赖关系。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复