You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP新TPU VM执行apt-get update报错:sources.list条目格式错误

解决GCP TPU VM上apt-get update的源列表解析错误

问题原因

你的TPU VM初始化时,cloud-init未正确渲染/etc/apt/sources.list模板文件,导致文件中残留{{mirror}}、{{codename}}这类未替换的变量,apt无法解析这些无效的源地址,从而抛出"Malformed entry"错误。

解决方案

1. 临时快速修复(立即生效)

先备份原文件避免误操作:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

获取当前系统的版本代号(比如Ubuntu 22.04对应jammy,20.04对应focal):

lsb_release -c

用sed命令批量替换文件中的变量为实际值,假设版本代号是jammy:

sudo sed -i 's/{{mirror}}/http:\/\/archive.ubuntu.com\/ubuntu/g; s/{{codename}}/jammy/g' /etc/apt/sources.list

执行更新测试:

sudo apt-get update

2. 永久修复(避免重启后被覆盖)

如果希望修改后的源列表在VM重启后不被cloud-init重置,按以下操作:

  • 编辑cloud配置文件:

    sudo nano /etc/cloud/cloud.cfg
    

    找到apt_preserve_sources_list字段,将其值改为true;如果没有该字段,直接添加一行:

    apt_preserve_sources_list: true
    

    保存退出(Ctrl+O,回车,Ctrl+X)。

  • 或者直接修改cloud-init的源模板文件,确保后续初始化能正确生成源列表:

    sudo nano /etc/cloud/templates/sources.list.tmpl
    

    将模板中的{{mirror}}替换为实际镜像地址,比如http://archive.ubuntu.com/ubuntu,保存后重启VM即可生效。

3. 替代方案:使用独立源文件

无需修改原sources.list,直接在sources.list.d目录添加新的源配置:

  • 创建新的源文件:
    sudo nano /etc/apt/sources.list.d/ubuntu-official.list
    
  • 写入以下内容(根据你的系统版本替换jammy):
    deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
    deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse
    
  • 保存后执行更新:
    sudo apt-get update
    

内容的提问来源于stack exchange,提问作者BioGeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:10:30