本文最后更新于 2024-12-06,文章内容可能已经过时。

一、问题

root@debian:~# apt-get update
Ign:1 cdrom://[Debian GNU/Linux 12.7.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20240831-10:40] bookworm InRelease
Err:2 cdrom://[Debian GNU/Linux 12.7.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20240831-10:40] bookworm Release
  Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update cannot be used to add new CD-ROMs
Reading package lists... Done
E: The repository 'cdrom://[Debian GNU/Linux 12.7.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20240831-10:40] bookworm Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

二、解决方式

根据错误信息来看,问题出在系统尝试从CD-ROM源进行更新,但该源并不存在或无法访问。具体来说,您的/etc/apt/sources.list文件中包含了指向安装Debian时使用的DVD的条目,但是因为现在并没有插入这张DVD,所以导致了apt-get update命令失败。

解决这个问题的方法是编辑/etc/apt/sources.list文件,并注释掉或删除所有指向CD-ROM的行。这可以通过以下步骤完成:

  1. 打开终端。

  2. 使用文本编辑器(如nano或vim)以超级用户权限打开sources.list文件:

    sudo nano /etc/apt/sources.list
    
  3. 在文件中找到如下行:

    deb cdrom:[Debian GNU/Linux 12.7.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20240831-10:40]/ bookworm contrib main
    
  4. 将其前面加上#符号来注释掉这条记录,或者直接删除这一行。

  5. 保存更改并退出编辑器(如果使用的是nano,可以通过按Ctrl+X然后按下Y键确认保存更改,并按Enter键退出编辑器)。

  6. 另外,确保您的sources.list文件中有有效的网络仓库地址。例如替换为阿里云源的内容:根据您的Debian版本(在这个例子中是Bookworm),您需要将文件内容替换为阿里云提供的对应版本的源地址。对于Debian Bookworm (12)

    deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware
    deb-src http://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware
    
    deb http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free non-free-firmware
    deb-src http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free non-free-firmware
    
    deb http://mirrors.aliyun.com/debian bookworm-updates main contrib non-free non-free-firmware
    deb-src http://mirrors.aliyun.com/debian bookworm-updates main contrib non-free non-free-firmware
    deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware multiverse
    
  7. 更新APT包列表:完成上述修改后,您应该运行以下命令来刷新APT缓存,使新的源配置生效:

    root@debian:~# apt-get update       
    Get:1 http://mirrors.aliyun.com/debian bookworm InRelease [151 kB]
    Get:2 http://mirrors.aliyun.com/debian-security bookworm-security InRelease [48.0 kB]
    Get:3 http://mirrors.aliyun.com/debian bookworm-updates InRelease [55.4 kB]
    Get:4 http://mirrors.aliyun.com/debian bookworm/contrib Sources [51.4 kB]
    Get:5 http://mirrors.aliyun.com/debian bookworm/non-free-firmware Sources [6444 B]
    Get:6 http://mirrors.aliyun.com/debian bookworm/non-free Sources [77.9 kB]
    Get:7 http://mirrors.aliyun.com/debian bookworm/main Sources [9494 kB]
    Get:8 http://mirrors.aliyun.com/debian bookworm/main amd64 Packages [8789 kB]
    Get:9 http://mirrors.aliyun.com/debian bookworm/main Translation-zh_CN [125 kB]
    Get:10 http://mirrors.aliyun.com/debian bookworm/main Translation-zh [1215 B]
    Get:11 http://mirrors.aliyun.com/debian bookworm/main Translation-en [6109 kB]
    Get:12 http://mirrors.aliyun.com/debian bookworm/contrib amd64 Packages [54.1 kB]
    Get:13 http://mirrors.aliyun.com/debian bookworm/contrib Translation-en [48.8 kB]
    Get:14 http://mirrors.aliyun.com/debian bookworm/non-free amd64 Packages [97.3 kB]
    Get:15 http://mirrors.aliyun.com/debian bookworm/non-free Translation-en [67.0 kB]
    Get:16 http://mirrors.aliyun.com/debian bookworm/non-free-firmware amd64 Packages [6236 B]
    Get:17 http://mirrors.aliyun.com/debian bookworm/non-free-firmware Translation-en [20.9 kB]
    Get:18 http://mirrors.aliyun.com/debian-security bookworm-security/non-free-firmware Sources [796 B]
    Get:19 http://mirrors.aliyun.com/debian-security bookworm-security/contrib Sources [856 B]
    Get:20 http://mirrors.aliyun.com/debian-security bookworm-security/main Sources [128 kB]
    Get:21 http://mirrors.aliyun.com/debian-security bookworm-security/main amd64 Packages [206 kB]
    Get:22 http://mirrors.aliyun.com/debian-security bookworm-security/main Translation-en [127 kB]
    Get:23 http://mirrors.aliyun.com/debian-security bookworm-security/contrib amd64 Packages [644 B]
    Get:24 http://mirrors.aliyun.com/debian-security bookworm-security/contrib Translation-en [372 B]
    Get:25 http://mirrors.aliyun.com/debian-security bookworm-security/non-free-firmware amd64 Packages [688 B]
    Get:26 http://mirrors.aliyun.com/debian-security bookworm-security/non-free-firmware Translation-en [472 B]
    Get:27 http://mirrors.aliyun.com/debian bookworm-updates/non-free-firmware Sources [2076 B]
    Get:28 http://mirrors.aliyun.com/debian bookworm-updates/non-free Sources [1544 B]
    Get:29 http://mirrors.aliyun.com/debian bookworm-updates/contrib Sources [776 B]
    Get:30 http://mirrors.aliyun.com/debian bookworm-updates/main Sources [1692 B]
    Get:31 http://mirrors.aliyun.com/debian bookworm-updates/main amd64 Packages [2712 B]
    Get:32 http://mirrors.aliyun.com/debian bookworm-updates/main Translation-en [3096 B]
    Get:33 http://mirrors.aliyun.com/debian bookworm-updates/contrib amd64 Packages [768 B]
    Get:34 http://mirrors.aliyun.com/debian bookworm-updates/contrib Translation-en [408 B]
    Get:35 http://mirrors.aliyun.com/debian bookworm-updates/non-free amd64 Packages [12.8 kB]
    Get:36 http://mirrors.aliyun.com/debian bookworm-updates/non-free Translation-en [7744 B]
    Get:37 http://mirrors.aliyun.com/debian bookworm-updates/non-free-firmware amd64 Packages [616 B]
    Get:38 http://mirrors.aliyun.com/debian bookworm-updates/non-free-firmware Translation-en [384 B]
    Fetched 25.7 MB in 4s (6268 kB/s)    
    Reading package lists... Done
    
  8. 验证更新是否成功:最后,您可以检查是否有新的包可用,或者尝试安装一个新软件包来验证一切正常工作。如果一切顺利,那么恭喜您,现在已经成功地将软件源切换到了阿里云。