终极指南:Ubuntu Debian 和 CentOS RHEL 的离线 Linux 更新
Table of Contents
处理 Ubuntu/Debian 和 CentOS/RHEL 离线安装 Linux 更新的最佳方法
Linux 更新对于维护系统的安全性和稳定性至关重要。但是,在某些情况下,您可能不得不处理 Internet 连接受限或不存在的离线环境。在这种情况下,制定适当的离线安装更新策略就变得至关重要。本文将指导您通过在离线环境中为 Ubuntu/Debian 和 CentOS/RHEL 安装 Linux 更新的最佳方法,特别侧重于使用本地存储库或缓存。
设置本地存储库
处理离线更新的最有效方法之一是设置本地存储库。本地存储库包含所有必要的软件包和更新,允许您在没有互联网连接的情况下更新系统。以下是为基于 Debian 和基于 Red Hat 的发行版设置本地存储库的方法:
对于 Debian/Ubuntu
- 首先在可以访问互联网的服务器上设置 Debian 存储库镜像。你可以使用像这样的工具
apt-mirror
ordebmirror
创建官方 Debian 或 Ubuntu 存储库的本地镜像。
使用 apt-mirror 设置 Debian 存储库镜像:
# Install apt-mirror
sudo apt-get install apt-mirror
# Edit the apt-mirror configuration file
sudo nano /etc/apt/mirror.list
# Uncomment the deb line for the desired repository
# For example, uncomment the line for Ubuntu 20.04:
# deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
# Specify the mirror location
# Modify the base_path to your desired location
set base_path /path/to/mirror
# Save and close the file
# Run apt-mirror to start the mirroring process
sudo apt-mirror
# Wait for the mirroring process to complete
使用 debmirror 设置 Debian 存储库镜像:
# Install debmirror
sudo apt-get install debmirror
# Create a directory to store the mirror
sudo mkdir /path/to/mirror
# Run debmirror to start the mirroring process
# Replace <RELEASE> with the Debian or Ubuntu release and <MIRROR_URL> with the official repository URL
# For example, to mirror Ubuntu 20.04:
sudo debmirror --arch=amd64 --verbose --method=http --dist=<RELEASE> --root=<MIRROR_URL> /path/to/mirror
# Wait for the mirroring process to complete
Debian 客户端说明
- 通过编辑 ** 配置您的本地存储库
/etc/apt/sources.list
离线系统上的文件。将默认存储库 URL 替换为本地存储库 URL。例如,如果您的本地存储库托管在http://local-repo/ubuntu
更新sources.list
相应地归档。
例子 /etc/apt/sources.list
文件:
deb http://local-repo/ubuntu focal main restricted universe multiverse
3.配置更新后,您可以运行**apt update
命令在离线系统上从本地存储库中获取包列表。
sudo apt update
4.最后,你可以使用**apt upgrade
命令从本地存储库安装可用更新。
sudo apt upgrade
对于 CentOS/RHEL
要为 CentOS/RHEL 设置本地存储库,您需要使用
createrepo
工具。此工具为本地存储库创建必要的元数据。在可以访问互联网的服务器上创建一个目录来存储存储库文件。例如,您可以创建一个名为 ** 的目录
local-repo
3.复制所有相关的RPM包文件和更新到**local-repo
目录。
使用 createrepo 设置本地存储库:
# Install the createrepo tool
sudo yum install createrepo
# Create a directory to store the repository files
sudo mkdir /path/to/local-repo
# Move or copy the RPM package files and updates to the local-repo directory
# Run the createrepo command to generate the necessary repository metadata
sudo createrepo /path/to/local-repo
# Update the repository metadata whenever new packages are added or removed
sudo createrepo --update /path/to/local-repo
- 生成存储库元数据后,您可以传输整个
local-repo
使用 USB 驱动器或任何其他方式将目录复制到离线系统。
5.在离线系统上,新建一个 .repo
文件在 /etc/yum.repos.d/
目录。提供必要的配置详细信息,例如 baseurl
指向本地存储库目录。
例如,创建一个名为 local.repo
在里面 /etc/yum.repos.d/
目录并添加以下内容:
sudo nano /etc/yum.repos.d/local.repo
[local]
name=Local Repository
baseurl=file:///path/to/local-repo
enabled=1
gpgcheck=0
保存文件并退出编辑器。
配置存储库后,您可以使用 yum update 命令从本地存储库安装更新。
sudo yum update
此命令将使用本地存储库中的包更新系统上的包。
请记住通过运行更新本地存储库 createrepo
每当从存储库中添加或删除新包时,都会执行命令。
请注意,您需要更换 /path/to/local-repo
使用存储存储库文件的目录的实际路径。
设置本地缓存
处理离线更新的另一种方法是设置本地缓存。本地缓存存储下载的包和更新,使您可以跨多个系统分发它们,而无需单独下载。您可以在在线系统上设置此缓存,然后将目录移动到离线系统以允许其他系统访问这些包。以下是为基于 Debian 和基于 Red Hat 的发行版设置本地缓存的方法:
对于 Debian/Ubuntu
1.安装配置
apt-cacher-ng
Debian/Ubuntu 软件包的缓存代理。您可以通过运行命令来安装它**sudo apt-get install apt-cacher-ng
2.安装后,编辑**/etc/apt-cacher-ng/acng.conf
文件来配置缓存行为。确保**PassThroughPattern
参数包括必要的存储库 URL。
sudo nano /etc/apt-cacher-ng/acng.conf
取消注释或将必要的存储库 URL 添加到 PassThroughPattern 参数。例如,要包含 Ubuntu 存储库,请添加或取消注释以下行:
PassThroughPattern: (security|archive).ubuntu.com/ubuntu
保存文件并退出编辑器。
3.开始
apt-cacher-ng
使用命令服务**sudo systemctl start apt-cacher-ng
sudo systemctl start apt-cacher-ng
4.在离线系统上,配置**/etc/apt/apt.conf.d/02proxy
文件指向本地缓存。使用以下行:**Acquire::http::Proxy "http://<cache-server-ip>:3142";
sudo nano /etc/apt/apt.conf.d/02proxy
将以下行添加到文件中,将 替换为缓存服务器的 IP 地址:
Acquire::http::Proxy "http://<cache-server-ip>:3142";
保存文件并退出编辑器
- 现在,当你运行 **
apt update
和 **apt upgrade
在离线系统上执行命令,它们将从本地缓存中检索包。
sudo apt update
sudo apt upgrade
这些命令将从本地缓存中获取并安装更新,从而减少离线系统对 Internet 访问的需求。
请注意,您需要更换 **<cache-server-ip>
使用安装了 apt-cacher-ng 的机器的实际 IP 地址。
对于 CentOS/RHEL
1.对于CentOS/RHEL,你可以使用
yum-cron
设置本地缓存。通过运行命令安装它**sudo yum install yum-cron
2.编辑**/etc/yum/yum-cron.conf
文件并配置**download_only
参数为**yes
这可确保仅下载包,而不会自动安装包。
sudo nano /etc/yum/yum-cron.conf
3.开始
yum-cron
使用命令服务**sudo systemctl start yum-cron
sudo systemctl start yum-cron
- 在离线系统上,创建一个本地目录来存放下载的包,例如**
/var/cache/yum
sudo mkdir /var/cache/yum
5.将在线系统下载的包复制到本地缓存目录。
sudo cp -R /var/cache/yum /path/to/local/cache
代替 /path/to/local/cache
使用离线系统上本地缓存目录的路径。
6.在离线系统上,新建一个**.repo
文件在**/etc/yum.repos.d/
directory,指向本地缓存目录。
sudo nano /etc/yum.repos.d/local.repo
将以下内容添加到文件中,替换 <local-cache-path>
使用本地缓存目录的路径:
[local]
name=Local Cache
baseurl=file:///path/to/local/cache
enabled=1
gpgcheck=0
保存文件并退出编辑器。
7.最后,你可以使用**yum update
命令在脱机系统上从本地缓存安装更新。
sudo yum update
此命令将使用本地缓存中的包更新离线系统上的包。
请注意,您需要更换 **<local-cache-path>
使用离线系统上本地缓存目录的实际路径。
## 结论
在离线环境中处理 Linux 更新可能具有挑战性,但通过正确的方法,您可以确保您的系统保持最新和安全。在本文中,我们讨论了处理 Ubuntu/Debian 和 CentOS/RHEL 离线安装更新的最佳方法。我们探索了设置本地存储库和设置本地缓存,为基于 Debian 和基于 Red Hat 的发行版提供了分步说明。
通过遵循这些方法,即使在离线环境中,您也可以保持 Linux 系统的安全性和稳定性。请记住定期更新本地存储库或缓存以包含最新更新。
## 参考
- apt-mirror Documentation
- debmirror Documentation
- createrepo Documentation
- apt-cacher-ng Documentation
- yum-cron Documentation