当前位置: 首页 > article >正文

解决 Ubuntu ‘InRelease is not valid yet’ 报错:内网源 apt update 详细教程

项目场景

在企业内部部署 Ubuntu 系统时,由于网络安全及物理隔离的要求,有时系统无法直接访问互联网。为了能获取必要的软件包更新,我将 Ubuntu 系统的更新源设置成了内网镜像源。一般情况下,这样的设置可以保证系统获取到安全更新和必要的软件包支持。然而,在执行 apt update 操作时,我遇到了一些异常报错。

问题描述

在运行 sudo apt update 命令时,系统试图更新 bionic-backportsbionic-security 等源时,出现了以下错误提示:

E: Release file for http://<内网源地址>/dists/bionic-security/InRelease is not valid yet (invalid for another 1163d 15h 31min 37s). Updates for this repository will not be applied.

错误信息指出,系统检测到内网源的 InRelease 文件的有效期还未到,所以拒绝更新。由于这个错误,系统无法从该源成功获取更新包。

原因分析

经分析发现,该错误的根本原因在于 系统时间不准确。Ubuntu 的 apt 更新机制依赖于正确的系统时间来验证签名文件的有效性。如果系统时间早于实际时间(比如因为系统未联网导致时间无法自动同步),apt 会认为签名文件的时间不对,导致 InRelease 文件“不生效”。

在非联网环境中,尤其是 新安装的系统,这种时间问题较为常见,因为系统默认时间通常会比实际时间早,除非有外部时间服务器来进行同步。

解决方案

为了解决这一问题,我通过以下步骤更新了系统时间,使得 apt update 操作顺利执行。

1. 检查系统时间

首先,我使用以下命令检查当前系统的时间:

date

如果发现系统时间与实际时间差距较大,则可以确定这是导致错误的原因。

2. 更新系统时间

根据不同的网络情况,我选择了适合的时间更新方法。

方法一:联网情况下的自动同步

如果系统可以访问外网,可以使用 timedatectl 命令启用 NTP(网络时间协议)服务来自动同步时间:

sudo timedatectl set-ntp true

方法二:不联网情况下使用内网 NTP 服务器

在内网环境下,如果网络中部署了 NTP 服务器,可以通过 ntpdate 工具同步时间:

  1. 首先安装 ntpdate 工具:

    sudo apt update
    sudo apt install ntpdate
    
  2. 然后使用以下命令与内网 NTP 服务器同步时间(将 <内网NTP服务器地址> 替换为实际的内网 NTP 服务器 IP 地址):

    sudo ntpdate <内网NTP服务器地址>
    

方法三:手动设置时间

如果没有 NTP 服务器,或者无法联网,可以手动设置系统时间。具体操作如下:

sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"

YYYY-MM-DD HH:MM:SS 替换为当前实际时间即可。

3. 重新执行 apt update

时间更新完成后,我再次运行以下命令:

sudo apt update

此时,系统不再报错,可以顺利从内网源更新软件包信息。

总结

在不联网的 Ubuntu 系统上使用内网源时,如果出现 InRelease is not valid yet 报错,通常是因为系统时间不准确导致的。我通过修正系统时间,使其与当前实际时间保持一致,解决了这个问题。对于长期处于内网环境的服务器,建议配置内网 NTP 服务,确保系统时间的同步性,以避免类似问题再次出现。


http://www.kler.cn/a/382930.html

相关文章:

  • Apifox 12月更新|接口的测试覆盖情况、测试场景支持修改记录、迭代分支能力升级、自定义项目角色权限、接口可评论
  • vue css box-shadow transition实现类似游戏中的模糊圈游走的感觉
  • [python学习笔记]对象、引用、浅复制、深复制
  • 找到字符串中所有字母异位词
  • 虚幻引擎结构之UObject
  • Junit如何禁用指定测试类,及使用场景
  • 端侧小模型新星,SmolLM2 1.7B击败了Llama 3.2、Qwen 2.5
  • 基础算法练习--滑动窗口(日更中)
  • 青少年编程与数学 02-003 Go语言网络编程 12课题、Go语言Soket编程
  • RabbitMQ 管理平台(控制中心)的介绍
  • SpringBoot健身房管理:提升效率与体验
  • STM32中,在哪些时候需要配置复用推挽/开漏输出?
  • 3种方法轻松从硬盘恢复已删除文件!
  • 零基础学习Java AI Spring AI
  • 舜宇光学科技入职测评:北森商业推理40分钟28题真题解析、网盘资料下载、答题技巧
  • stable diffusion 大模型
  • 腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
  • 如何不封禁UDP协议同时防止UDP攻击
  • swagger 报错查看
  • 深度学习中的多头注意力机制:原理与实现解析
  • 科技查新在医药健康领域的应用
  • 计算机网络:运输层 —— 运输层概述
  • yii 常用一些调用
  • 江西省技能培训平台(逆向破解登录国密SM2)
  • 【django】Django REST Framework 构建 API:APIView 与 ViewSet
  • 【ChatGPT】如何通过逐步提示提高ChatGPT的细节描写