尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Ubuntu 22.04 LTS更换腾讯云软件源:提升APT下载速度的完整指南

Ubuntu 22.04 LTS更换腾讯云软件源:提升APT下载速度的完整指南 1. 为什么要在Ubuntu 22.04 LTS上更换软件源如果你刚装好一个全新的Ubuntu 22.04 LTS或者发现系统更新、安装软件的速度慢得让人抓狂甚至频繁出现“无法连接”或“超时”的错误那你大概率是遇到了软件源的问题。默认情况下Ubuntu系统会使用位于海外的官方软件仓库镜像对于国内用户来说物理距离远、网络链路复杂直接访问这些源的速度和稳定性都难以保证。想象一下你每次安装一个几十兆的软件包都要跨越大半个地球去下载这体验能好吗更换软件源本质上就是把系统下载软件和更新的“地址簿”从国外的官方服务器换成位于国内的镜像服务器。国内主流的云服务商和高校都提供了Ubuntu的镜像服务比如腾讯云、阿里云、华为云、清华、中科大等。这些镜像服务器会定时通常是每隔几小时从Ubuntu官方源同步数据确保你获取的软件包是最新、最全的。通过更换为国内源下载速度可以从几十KB/s飙升到几MB甚至几十MB/s系统更新和软件安装的体验会有质的飞跃。在众多国内源中腾讯云镜像源mirrors.cloud.tencent.com是一个稳定且高速的选择。它由腾讯云维护在国内多个地区都有节点网络连通性好同步及时。对于使用腾讯云服务器的用户来说同内网访问更是能获得极致的速度。因此将Ubuntu 22.04 LTS的软件源更换为腾讯云源是一个提升系统日常使用效率非常基础且重要的操作。这个操作本身不复杂但理解其背后的原理和掌握正确的操作方法能帮你避免很多后续的麻烦。2. 更换软件源前的关键准备工作在动手修改系统核心配置文件之前做好充分的准备工作是避免“翻车”的关键。这不仅仅是执行几条命令而是确保操作可逆、风险可控的必要步骤。2.1 备份原始的源列表文件这是最重要的一步没有之一。Ubuntu系统的软件源配置信息存储在一个名为sources.list的文本文件中其路径是/etc/apt/sources.list。APTAdvanced Package Tool这个包管理工具完全依赖这个文件来知道该去哪里寻找软件。一旦这个文件被错误修改或损坏你的系统将无法安装、更新或卸载任何软件。因此修改前必须备份。最直接有效的方法是使用cp命令创建一个副本sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup执行这条命令后系统会要求你输入当前用户的管理员密码。输入时屏幕上不会有任何显示这是Linux的安全特性输完直接按回车即可。成功后你会在/etc/apt目录下得到一个名为sources.list.backup的文件。如果后续更换源后出现任何问题你可以通过一条简单的恢复命令回到初始状态sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list注意养成修改任何重要配置文件前先备份的习惯是Linux系统管理中最宝贵的经验之一。这个备份文件最好也复制一份到你的家目录或其他安全位置。2.2 确认你的Ubuntu系统版本和架构虽然标题已经指明是Ubuntu 22.04 LTS但实际操作前再次确认是个好习惯。因为不同版本如20.04 Focal、24.04 Noble的软件源仓库代号是不同的用错了会导致APT找不到对应的软件包。打开终端输入以下命令查看系统详细信息lsb_release -a你会看到类似如下的输出No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammy这里的关键信息是Codename: jammy。Ubuntu 22.04 LTS的代号就是“jammy”。所有针对此版本的软件源地址中都会包含这个代号。腾讯云源的路径结构也是基于这个代号构建的。同时确认系统架构也很有必要尤其是在安装某些特定软件时。运行uname -m对于最常见的x86_64位系统输出会是x86_64或amd64。对于ARM架构的服务器如某些云实例或树莓派可能会输出aarch64。腾讯云镜像源支持主流的系统架构。2.3 清理旧的软件包缓存可选但推荐在更换源之前可以清理一下本地的APT缓存这能确保后续操作都从新源获取信息。执行sudo apt clean这条命令会清空/var/cache/apt/archives/目录下所有已下载的.deb软件包文件。通常这些是安装软件时留下的缓存清理它们可以释放磁盘空间并且强迫APT在更新后从新源重新下载索引避免新旧索引信息冲突。完成以上三步你的系统就已经做好了万全的准备可以安全地进行软件源的更换操作了。3. 手动编辑sources.list文件更换腾讯云源这是最经典、最直接的方法能让你完全掌控配置文件的每一个细节。我们将使用命令行文本编辑器nano来完成这个操作因为它相对简单易用。3.1 使用nano编辑器打开配置文件在终端中输入以下命令sudo nano /etc/apt/sources.listsudo表示以管理员权限运行因为/etc/apt/sources.list是一个系统级文件普通用户无权修改。nano是一个轻量级的终端文本编辑器。执行后终端界面会进入nano的编辑模式文件的内容会显示在屏幕上。默认的sources.list文件内容大概长这样以Ubuntu 22.04为例# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse # deb-src http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse每一行deb开头的都是一个软件仓库地址。deb-src开头的则是源代码仓库通常我们不需要所以它们被#注释掉了。地址中的archive.ubuntu.com和security.ubuntu.com就是我们要替换的目标。3.2 替换为腾讯云镜像源地址我们的目标是将所有http://archive.ubuntu.com/ubuntu/和http://security.ubuntu.com/ubuntu替换为腾讯云的镜像地址https://mirrors.cloud.tencent.com/ubuntu/。你可以手动一行行修改但更高效的方法是注释掉或删除所有现有的deb和deb-src行然后添加全新的腾讯云源配置。这样做最干净避免残留旧地址导致问题。在nano编辑器中你可以用方向键移动光标。一个稳妥的做法是在文件开头添加新的源然后注释掉旧的。或者直接清空整个文件按CtrlK可以剪切整行然后粘贴以下内容# 默认注释了源码镜像以提高 apt update 速度如有需要可自行取消注释 deb https://mirrors.cloud.tencent.com/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.cloud.tencent.com/ubuntu/ jammy-updates main restricted universe multiverse # deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.cloud.tencent.com/ubuntu/ jammy-backports main restricted universe multiverse # deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.cloud.tencent.com/ubuntu/ jammy-security main restricted universe multiverse # deb-src https://mirrors.cloud.tencent.com/ubuntu/ jammy-security main restricted universe multiverse关键点解析地址https://mirrors.cloud.tencent.com/ubuntu/是腾讯云Ubuntu镜像的根地址。代号jammy对应Ubuntu 22.04 LTS。如果你是为其他版本更换需要修改此处如20.04是focal24.04是noble。组件main restricted universe multiverse是Ubuntu的四个主要软件组件库涵盖了从完全自由开源到有版权限制的各类软件保持默认即可。仓库类型jammy主仓库包含系统发行时的所有软件。jammy-updates更新仓库包含主仓库软件的稳定更新。jammy-backports向后移植仓库包含为新版Ubuntu编译的软件但可以在老版本上运行。jammy-security安全更新仓库包含重要的安全补丁。这个仓库至关重要必须启用。注意我在这里使用了https协议。腾讯云镜像支持http和https。使用https可以确保传输过程的安全性防止内容被篡改。虽然对于软件源这种公开数据安全性要求不是极端高但养成使用https的习惯是好的。3.3 保存并退出nano编辑器编辑完成后按CtrlO代表Write Out即保存然后按Enter键确认文件名。接着按CtrlX退出nano编辑器回到终端命令行。4. 使用sed命令一键快速更换源如果你觉得手动编辑还是有点麻烦或者需要在多台机器上执行同样的操作那么使用sed流编辑器命令进行一键替换是更高效的选择。这条命令的本质是进行文本流的查找和替换。4.1 单条sed命令完成替换在终端中执行以下命令sudo sed -i.bak s|http://archive.ubuntu.com/ubuntu/|https://mirrors.cloud.tencent.com/ubuntu/|g; s|http://security.ubuntu.com/ubuntu|https://mirrors.cloud.tencent.com/ubuntu/|g /etc/apt/sources.list让我们拆解一下这条命令sudo管理员权限。sed流编辑器命令。-i.bak这是两个选项的结合。-i表示“原地编辑”文件-i后面的.bak表示在修改原文件前先创建一个后缀为.bak的备份文件。所以执行后你会得到/etc/apt/sources.list.bak作为备份。这是一个非常实用的安全措施。s|A|B|g这是sed的替换语法。s表示替换substitute|是分隔符也可以用/但因为地址中包含/用|更清晰A是被替换的文本B是替换后的文本g表示全局替换一行中所有匹配项都替换。第一个s|...|...|g将http://archive.ubuntu.com/ubuntu/替换为https://mirrors.cloud.tencent.com/ubuntu/。分号;用于分隔两个替换命令。第二个s|...|...|g将http://security.ubuntu.com/ubuntu替换为https://mirrors.cloud.tencent.com/ubuntu/。/etc/apt/sources.list要操作的目标文件。执行这条命令后sources.list文件中的官方源地址就全部被替换成腾讯云源了并且自动生成了备份文件。4.2 验证sed命令执行结果执行完命令后最好看一眼文件内容确认替换是否正确。可以用cat命令快速查看文件头几行head -20 /etc/apt/sources.list或者用grep检查是否还包含旧的官方地址grep -E archive.ubuntu.com|security.ubuntu.com /etc/apt/sources.list如果这条命令没有输出任何内容说明旧的地址已经被全部替换掉了。再检查一下新的地址是否正确grep mirrors.cloud.tencent.com /etc/apt/sources.list你应该能看到所有以deb https://mirrors.cloud.tencent.com开头的行。注意使用sed命令需要你对正则表达式和命令语法有一定了解。如果命令写错可能会导致文件内容混乱。因此务必先备份-i.bak参数已经做了或者先在测试文件上练习。对于新手手动编辑nano的方法更直观、更安全。5. 更新本地软件包索引并测试新源修改完sources.list文件只是告诉了系统“去哪里找”接下来需要让系统去新的地址拉取最新的软件包列表信息这个过程就是“更新软件包索引”。5.1 执行apt update命令在终端中运行sudo apt update这个命令会读取/etc/apt/sources.list文件中配置的所有仓库地址并连接这些地址下载Packages.gz、Sources.gz等索引文件到本地/var/lib/apt/lists/目录下。这些索引文件包含了所有可用软件包的名称、版本、依赖关系、描述等信息。观察输出信息命令执行时你会看到一系列Hit、Get、Ign开头的行。Hit表示该仓库的索引文件没有变化直接使用本地缓存如果你之前没清理缓存可能会看到。Get表示正在从仓库下载新的索引文件。这是我们最希望看到的说明系统正在从腾讯云源拉取数据。Ign表示忽略了这个仓库可能是因为该行被注释了或者地址无效。如果一切顺利所有行的末尾应该都是腾讯云的地址 (mirrors.cloud.tencent.com)并且最后会显示正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 可以有 XX 个软件包被升级。请执行 ‘apt list --upgradable’ 来查看它们。这表示索引更新成功APT已经知晓了腾讯云源上所有可用的软件包。5.2 测试新源的下载速度最直观的测试就是尝试安装或更新一个软件。你可以选择一个体积适中、非核心的系统组件来测试比如htop一个强大的进程监控工具sudo apt install htop在安装过程中注意观察终端输出的下载速度。如果是从腾讯云源下载速度通常会非常快能达到你的网络带宽上限。你可以对比一下更换源之前安装软件的速度感受会非常明显。另一个测试方法是使用apt upgrade来模拟升级所有已安装的软件包但不实际执行sudo apt upgrade -s-s参数代表“模拟”simulate它会列出所有将要升级的软件包及其大小并计算总下载量。你可以看看这个列表然后决定是否真的执行升级sudo apt upgrade。5.3 处理可能出现的常见错误如果在sudo apt update过程中出现错误不要慌张根据错误信息排查即可。错误1Temporary failure resolving ‘mirrors.cloud.tencent.com’这表示系统无法解析腾讯云镜像的域名。首先检查网络连接是否正常 (ping -c 4 baidu.com)。如果网络正常可能是DNS服务器问题。尝试修改/etc/resolv.conf文件将DNS服务器改为114.114.114.114或8.8.8.8临时生效或者更永久地修改网络管理器的DNS设置。错误2Certificate verification failed或The following signatures couldn‘t be verified这通常是因为使用了https源但系统的CA证书不完整或过期。可以尝试暂时使用http源将地址中的https改为http然后运行sudo apt update sudo apt install --reinstall ca-certificates来修复证书最后再改回https。错误3某些仓库的索引获取失败但其他成功这可能是因为腾讯云镜像同步延迟某个子仓库如backports暂时没有完全同步。这种情况可以稍等几小时再试或者暂时注释掉那行出错的源在行首加#等下次更新时再取消注释。安全更新源 (jammy-security) 一般不会出问题这个最重要。6. 更换源后的进阶配置与优化成功更换为腾讯云源并更新索引后你的系统已经获得了飞一般的下载体验。但为了让APT工具用起来更顺手我们还可以进行一些额外的优化配置。6.1 选择性启用源代码仓库和特定PPA在默认的配置中所有deb-src行都被注释了。这些是源代码仓库。对于大多数普通用户和开发者来说不需要它们。但如果你是深度开发者需要查看软件的源代码或者使用apt source命令下载源码包进行编译研究可以取消对应行的注释删除行首的#号。此外你可能会添加一些第三方PPAPersonal Package Archive来安装更新或更特殊的软件。例如安装Wine、PHP特定版本等。在添加PPA时其软件包通常也会从Launchpad服务器下载速度可能较慢。一些流行的PPA在国内也有镜像但并非全部。添加PPA的命令通常是sudo add-apt-repository ppa:user/ppa-name。添加后其配置会生成在/etc/apt/sources.list.d/目录下的独立文件中。你可以手动编辑这些文件将其中的http://ppa.launchpad.net替换为国内可用的PPA镜像地址如果有的话但这需要具体PPA具体分析没有通用方案。6.2 配置APT下载参数以提升体验APT的配置文件/etc/apt/apt.conf或/etc/apt/apt.conf.d/目录下的文件可以用来调整其行为。我们可以创建或修改一个配置文件来优化下载。创建一个新的配置文件sudo nano /etc/apt/apt.conf.d/99custom添加以下内容# 使用IPv4协议避免IPv6可能带来的连接问题 Acquire::ForceIPv4 true; # 设置同时下载的线程数默认为1提高可加速下载但需服务器支持 Acquire::Queue-Mode access; Acquire::http::Dl-Limit 500; # 设置超时和重试避免网络波动导致失败 Acquire::http::Timeout 10; Acquire::ftp::Timeout 10; Acquire::Retries 3; # 禁用所有软件的翻译文件下载节省带宽和时间 Acquire::Languages none;保存并退出。这些配置不是必须的但可以在特定网络环境下改善体验。例如强制使用IPv4可以解决某些网络环境下IPv6解析不佳的问题禁用语言包可以显著减少apt upgrade时的下载量。6.3 定期维护与清理更换源后系统更新变得顺畅你可能会更频繁地使用sudo apt update sudo apt upgrade。时间长了系统里会积累大量旧的、不再需要的软件包和内核占用磁盘空间。自动清理旧内核Ubuntu安装新内核后旧内核并不会自动删除。可以安装ubuntu-maintenance-kit或使用sudo apt autoremove --purge来清理。但更安全的方法是使用sudo apt autoremove它会自动删除那些因为依赖关系被安装但现在已不再需要的软件包包括旧内核。清理下载的缓存包我们之前用过sudo apt clean来清空/var/cache/apt/archives/。还有一个折中的命令sudo apt autoclean它只删除那些在软件仓库中已经找不到的旧版本软件包的缓存比clean更温和一些。检查源的健康状态偶尔可以运行sudo apt update并观察是否有仓库经常失败。如果某个源长期失败可以考虑暂时禁用它或者寻找替代的国内镜像源如阿里云、清华源。你可以同时配置多个源APT会从中选择最快的进行下载。7. 更换源过程中可能遇到的“坑”与解决方案即使按照步骤操作在实际环境中也可能遇到一些意外情况。这里分享几个我亲自踩过或常见的问题及解决办法。7.1 系统语言环境导致的“Hash Sum mismatch”错误这是一个非常经典的错误。在执行sudo apt update时可能会在最后遇到类似这样的报错E: Failed to fetch https://mirrors.cloud.tencent.com/ubuntu/dists/jammy/InRelease Hash Sum mismatch Hashes of expected file: ... Hashes of received file: ...原因分析这通常是因为网络传输过程中数据包出现了错误导致下载的索引文件校验和不匹配。但更深层的一个常见诱因是系统的语言环境Locale设置。如果系统的语言环境不是UTF-8例如是zh_CN.GBK或C在某些情况下APT处理某些元数据时可能会产生编码问题间接导致校验错误。解决方案首先确保Locale正确。在终端输入locale查看。确保LANG、LC_ALL等变量是en_US.UTF-8或zh_CN.UTF-8。如果不是可以临时设置export LC_ALLen_US.UTF-8然后再次运行sudo apt update。如果成功则需要永久修改locale设置可以通过sudo dpkg-reconfigure locales命令来配置。清理APT缓存并重试如果Locale没问题则很可能是网络缓存或部分损坏的文件导致的。sudo rm -rf /var/lib/apt/lists/* sudo apt clean sudo apt update这条命令会强制APT重新下载所有索引文件。更换备用镜像源如果问题持续可能是当前使用的腾讯云镜像节点临时有问题。可以尝试换用阿里云镜像源将地址中的mirrors.cloud.tencent.com替换为mirrors.aliyun.com暂时更新过段时间再换回来。7.2 混合源配置导致的依赖关系地狱有些教程或脚本可能会让你同时添加多个不同来源的软件仓库比如既用了腾讯云又用了某个第三方PPA还用了Docker的官方源。这很容易导致“依赖关系地狱”。问题表现当你尝试安装或升级某个软件时APT会报出无法满足的依赖关系错误例如下列软件包有未满足的依赖关系 软件包A : 依赖: 软件包B ( 1.0) 但是 2.0 正要被安装原因分析不同的软件仓库可能提供了同一个软件包的不同版本。APT在解决依赖时会从所有已启用的仓库中寻找最新版本。如果仓库A要求软件包C版本为1.0而仓库B提供了版本2.0APT选择了2.0就会导致依赖A的软件安装失败。解决方案保持源列表简洁除非必要不要添加过多的第三方源。优先使用系统自带仓库和可信赖的大型镜像源。使用apt-cache policy诊断当出现依赖问题时使用apt-cache policy 软件包名来查看这个软件包可以从哪些仓库获取以及它们的版本优先级。这能帮你理清冲突来源。使用apt install 软件包名版本号在安装时可以显式指定需要的确切版本号强制APT安装某个特定版本。使用aptitude工具aptitude比apt有更强大的依赖关系解决器有时能提供多个解决方案让你选择。可以安装它 (sudo apt install aptitude) 并尝试运行sudo aptitude install 软件包名。终极方案如果冲突无法解决最干净的办法是禁用或移除引起冲突的第三方仓库。检查/etc/apt/sources.list和/etc/apt/sources.list.d/目录下的文件注释掉或删除可疑的源行然后再次sudo apt update。7.3 图形界面软件更新器Software Updater不生效你通过命令行成功更换了源但系统自带的图形界面“软件更新器”依然很慢或者提示“检查更新失败”。原因分析图形界面的更新器可能使用了独立的配置或缓存。在Ubuntu的某些版本或桌面环境下如GNOME Software它可能不完全依赖于传统的APTsources.list文件。解决方案确保命令行APT工作正常这是基础。如果sudo apt update成功且快速说明源配置本身没问题。重启更新器后台服务有时更新器的后台进程 (packagekit) 缓存了旧信息。可以尝试重启它sudo systemctl restart packagekit或者更直接地注销当前用户会话并重新登录甚至重启电脑。检查GNOME Software的配置如果使用GNOME对于Ubuntu默认的GNOME桌面软件商店和更新器是gnome-software。它有自己的元数据缓存。可以尝试清除其缓存rm -rf ~/.cache/gnome-software/然后再次打开软件更新器。耐心等待图形界面工具可能在后台有自己的更新周期更换源后可能需要一点时间才能反映出来。更换软件源是优化Ubuntu使用体验的第一步也是最有效的一步。掌握了手动编辑、命令替换、问题排查这一整套流程你就能从容应对各种Linux发行版的源配置问题。记住核心思路永远是备份原配置 - 修改 - 更新测试 - 遇到问题根据错误信息理性分析。这个思路在Linux系统管理的方方面面都适用。
返回列表