微信优化

weixinyouhua

如何配置apt源?Linux apt配置命令及换源方法详解

2026-09-19 16:31:19

配置APT的核心动作就三步:备份源文件、替换为国内镜像、执行apt update,国内服务器按这个流程走完,软件包下载速度多数情况下能从几十KB提升到几MB每秒。

Ubuntu配置apt国内源:从换源到加速完整流程

Ubuntu用户最常遇到的情况是,新装系统后apt下载速度只有几十KB,换源之后才能正常安装软件,配置apt国内源不难,但很多人卡在版本代号对不上这一步。

选择哪个国内源更合适

国内主流镜像站有简米云、清华大学、中科大和华为云,它们都支持HTTP和HTTPS协议,日常使用差异不大,选一个离服务器地域近的即可。

镜像站 地域优势 特色
简米云 华东、华南覆盖好 更新快,带宽充足
清华TUNA 华北教育网优化 同时维护多个发行版
中科大USTC 华东、教育网 历史久,同步稳定
华为云 华南、西南 企业内网速度有优势

行业共识认为,国内镜像站的同步频率多数为每六小时到每天一次,极端情况下可能延迟到两天。

备份与编辑sources.list

先确认系统版本代号,再备份原文件,最后替换内容。

  • 查看版本:lsb_release -a
  • 查看源文件路径:ls /etc/apt/
  • 备份源文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 编辑源文件:sudo vim /etc/apt/sources.list

Ubuntu 22.04的版本代号是jammy,24.04是noble,换源时如果写错代号,apt update会直接报404。

下面是一个Ubuntu 22.04简米云源的示例,可以整段替换原文件:

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

如何配置apt源?Linux apt配置命令及换源方法详解

替换完成后保存退出,再执行sudo apt update重新生成索引。

Debian配置apt源和apt源和yum源区别

Debian配置apt源比Ubuntu多一个环节,就是组件字段要写全,很多从CentOS转过来的运维会拿yum的思维套apt,结果配置完成后仍然装不上某些软件。

Debian特有的组件字段

Debian的源文件通常长这样:

deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free non-free-firmware
deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free non-free-firmware
  • main:完全自由软件
  • contrib:依赖自由软件但本身非自由
  • non-free:非自由软件
  • non-free-firmware:固件类非自由软件

如果少了contrib或non-free,很多解码器、驱动和闭源工具就搜不到,Debian 12的代号是bookworm,Debian 11是bullseye,Debian 13是trixie。

为什么不能直接照搬Ubuntu源

apt源和yum源区别主要在三处:包格式、工具命令、源文件结构。

  • 包格式:Debian/Ubuntu使用.deb,CentOS/RHEL使用.rpm
  • 更新命令:apt使用apt update,yum使用yum makecache
  • 源文件路径:apt在/etc/apt/sources.list,yum在/etc/yum.repos.d/.repo
  • 版本区分:apt用代号,yum用大版本号

业内专家指出,混用不同发行版的源文件会让依赖关系产生冲突,轻则装不上软件,重则破坏系统库,Ubuntu虽然基于Debian,但源内容并不完全兼容,不能把Debian源直接写到Ubuntu的sources.list里。

Linux配置apt源步骤:权限、备份、验证一条线

不管是在物理机、云服务器还是树莓派上配置apt,操作路径都一样,只是源文件和版本代号有区别,Linux配置apt源步骤中最容易被忽略的是权限和备份,很多运维半夜改源改崩了,才发现没有可恢复的原文件。

sudo权限与文件备份

    如何配置apt源?Linux apt配置命令及换源方法详解

  • 普通用户编辑源文件:sudo vim /etc/apt/sources.list
  • 备份整个apt目录:sudo cp -r /etc/apt /etc/apt.bak
  • 备份单个文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
  • 查看当前源内容:cat /etc/apt/sources.list

改源之前先备份,这个动作成本几乎为零,但能避免大量回滚时间,如果在云服务器上操作,建议同时给系统盘打个快照。

执行apt update并看懂输出

执行更新命令后,输出会显示三类信息:命中、获取、错误。

  • Hit:本地索引已经是最新,不用重新下载
  • Get:正在从镜像站下载新的索引文件
  • Err:下载失败,需要检查网络、URL或版本代号

如果看到大量Err,先检查域名是否拼错,再检查版本代号是否和系统版本一致,最后用apt-cache policy 软件包名验证某个软件是否已经被新源索引到。

服务器配置apt加速下载与apt换源后更新命令

除了公网换源,还有两种场景需要单独处理:内网离线服务器、需要走代理的服务器,很多公司生产环境不允许直接访问外网,这时服务器配置apt加速下载就要靠本地源或内网镜像。

内网离线场景:本地源搭建

  • 准备一台能访问外网的机器,安装apt-mirror
  • 配置/etc/apt/mirror.list,指定要同步的发行版和组件
  • 执行apt-mirror同步镜像
  • 将同步目录通过Nginx或Apache发布为HTTP站点
  • 内网服务器把sources.list指向内网地址即可

如果只是临时离线安装,可以挂载系统ISO镜像,使用apt-cdrom add把光盘加到源里,这个方式适合没有公网、也没有内网镜像的应急场景。

代理配置与清理缓存

生产服务器有时需要通过HTTP代理访问外网,修改apt的代理配置文件:

sudo vim /etc/apt/apt.conf.d/95proxies
Acquire::http::Proxy "http://127.0.0.1:7890";
Acquire::https::Proxy "http://127.0.0.1:7890";

如何配置apt源?Linux apt配置命令及换源方法详解

如果只是临时使用代理,可以在命令行前加环境变量:

http_proxy=http://127.0.0.1:7890 https_proxy=http://127.0.0.1:7890 sudo apt update

apt换源后更新命令不要只记apt update,完整的更新流程包括索引更新、软件升级和缓存清理:

  • sudo apt update:刷新索引
  • sudo apt upgrade:升级已安装软件,不删除旧包
  • sudo apt full-upgrade:升级并处理依赖变化,可能删除旧包
  • sudo apt clean:清空本地下载缓存
  • sudo apt autoclean:只删除过期的缓存包
  • sudo apt autoremove:移除不再使用的依赖

多数情况下,日常维护用update加upgrade就够了。full-upgrade适合大版本升级时使用,平时执行也不会造成问题,但要留意它可能删除某些被替换的包。

配置apt常见问题解答

配置apt后update出现GPG错误怎么处理?

GPG错误通常是因为镜像站更换了签名密钥,或者某些第三方源的密钥没有导入,解决办法是重新导入对应源的公钥,或者使用signed-by字段指定密钥文件路径,对于官方源,换一个镜像站后重新执行apt update,错误一般会自动消失。

配置apt国内源后update速度仍慢怎么排查?

先看你的服务器是否走了IPv6,部分网络环境下IPv6路由不通,apt会一直等待超时,可以临时禁用IPv6,或者强制apt使用IPv4:执行sudo apt -o Acquire::ForceIPv4=true update,再检查DNS解析是否正常,换用5.5.5或29.29.29测试。

配置apt时如何批量替换版本代号?

系统升级后,旧代号需要批量改成新代号,不要手动逐行改,用sed一条命令解决:

sudo sed -i 's/jammy/noble/g' /etc/apt/sources.list

执行前先确认新旧代号是否对应正确,Debian从bullseye升级到bookworm同理,把sources.list里的旧代号全部替换成新代号,然后执行sudo apt update && sudo apt full-upgrade。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待