1. 为什么你的优麒麟装软件像“龟速”先搞懂apt-get的“快递”原理如果你刚用上优麒麟或者已经用了一段时间是不是经常被一个场景搞到心态爆炸那就是在终端里敲下sudo apt install安装一个软件然后看着进度条像蜗牛一样每秒几KB、十几KB地爬一个几十兆的软件包硬是能下个十几二十分钟。泡杯咖啡回来它可能还在那里不紧不慢地“努力”着。这种体验对于习惯了现代高速网络的我们来说简直是一种折磨。别急这真不是你的网络问题也不是优麒麟系统本身不行。问题的根源很可能出在“快递员”身上。让我用个生活化的比喻来解释一下。apt-get这个命令你可以把它理解为你手机上的“应用商店”负责帮你下载和安装软件。但应用商店本身不生产软件它只是一个“货架”。真正的软件包都存放在全球各地的“仓库”里这些仓库就是我们常说的“软件源”或者“镜像源”。当你执行apt install时系统会默认去访问一个预设的“官方仓库”地址。这个仓库可能远在海外物理距离非常遥远。想象一下你在国内网购卖家却从地球另一端的仓库给你发货这中间要经过多少网络节点、跨越多长的海底光缆网络延迟高、带宽拥堵下载速度自然就快不起来。每秒十几KB就是这个“国际长途快递”的真实写照。而“换源”这个操作就是把你默认的“海外仓库”地址替换成一个离你更近、网络连接更通畅的“国内仓库”。比如换成华为云镜像源就相当于把发货仓库从国外搬到了国内某个数据中心。这样一来数据传输的物理距离大大缩短网络路径优化下载速度自然会有质的飞跃从“龟速”提升到“满速”是常有的事。所以别再忍受那令人抓狂的下载速度了。接下来我就手把手带你完成这个“一键换源”的操作让你的优麒麟软件安装体验飞起来。整个过程非常简单哪怕你是刚接触Linux的小白跟着做也绝对没问题。2. 动手前的“安全绳”备份你的原始源列表文件在开始任何系统级别的修改之前养成备份的好习惯是每个老手都刻在DNA里的操作。这就像给房子装修前先把贵重物品打包收好一样万一操作过程中出了什么岔子我们还能有个“后悔药”吃轻松恢复到原来的状态。对于换源操作我们唯一要修改的文件就是/etc/apt/sources.list。这个文件是纯文本文件里面记录的就是我们上一节提到的所有“软件仓库”的地址。在修改它之前我们先给它做一个完整的“克隆”。打开你的终端快捷键CtrlAltT然后输入下面这条命令sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak让我拆解一下这条命令让你明白每一步在干什么sudo 这是“超级用户执行”的意思。因为/etc/apt/目录下的文件是系统关键文件普通用户没有权限修改所以我们需要用sudo来获取管理员权限。执行时会要求你输入当前用户的登录密码输入时光标不会移动这是正常现象输完按回车就行。cp 这是“copy”复制命令的缩写。/etc/apt/sources.list 这是我们要复制的原始文件路径。/etc/apt/sources.list.bak 这是我们指定的备份文件路径和名字。我习惯在原文件名后面加个.bak后缀bak就是“backup”的缩写一目了然。执行完这条命令后系统不会给你任何花里胡哨的提示在Linux世界里“没有消息就是最好的消息”。这意味着复制操作已经静默完成了。你可以用ls /etc/apt/命令看一眼会发现目录下多了一个sources.list.bak文件这就是你的安全备份。有了这个备份你就可以放心大胆地去修改原始文件了。万一新换的源有问题或者你手滑删错了内容只需要执行一句sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list就能瞬间恢复原样是不是感觉心里踏实多了这个习惯在后续所有的系统配置中都非常有用请务必记住它。3. 核心操作一键替换为华为云镜像源备份完成后我们就可以正式开始“换源”手术了。这个过程本质上就是编辑一个文本文件把里面的旧网址换成新的。方法有很多种你可以用图形化的文本编辑器也可以直接在终端里用命令行工具。这里我介绍两种最常用的方法你可以选择自己顺手的一种。方法一使用图形化编辑器推荐新手如果你更习惯用鼠标和图形界面gedit是一个很好的选择它类似于Windows上的记事本但功能更强大一些。在终端中输入以下命令sudo gedit /etc/apt/sources.list这条命令会用管理员权限打开gedit编辑器并加载sources.list文件。文件打开后你会看到里面有很多行以deb开头的文字这些就是软件源的地址。我们的目标是把这些地址中指向archive.ubuntu.com或security.ubuntu.com等海外站点的部分统一替换为华为云的镜像地址repo.huaweicloud.com。你需要做的是清空文件里的所有内容可以直接按CtrlA全选然后按Delete键删除然后把下面这段完整的配置内容复制粘贴进去deb http://repo.huaweicloud.com/ubuntu/ groovy main restricted universe multiverse deb http://repo.huaweicloud.com/ubuntu/ groovy-updates main restricted universe multiverse deb http://repo.huaweicloud.com/ubuntu/ groovy-security main restricted universe multiverse # 注释以下是关于CD-ROM安装的注释保留即可无需修改 # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching deb cdrom # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual.这里有一个非常重要的细节需要注意上面配置中的groovy是优麒麟20.10版本的代号。优麒麟的版本与Ubuntu是同步的不同版本的代号不同。请务必根据你自己的系统版本进行修改。如何查看可以在终端输入lsb_release -a命令找到Codename这一行。比如优麒麟20.04的代号是focal22.04的代号是jammy。如果你的系统不是groovy就把上面三行里的groovy全部替换成你的系统代号。粘贴完成后点击编辑器右上角的“保存”按钮然后关闭编辑器窗口即可。方法二使用终端流编辑器sed一键替换高效快捷如果你觉得手动编辑还是有点麻烦或者你是个追求效率的极客那么这条“一键换源”命令绝对是你的菜。在终端中直接执行下面这条命令sudo sed -i s|http://[a-z]*\.archive\.ubuntu\.com|http://repo.huaweicloud.com|g; s|http://security\.ubuntu\.com|http://repo.huaweicloud.com|g /etc/apt/sources.list这条sed命令像是一个文本魔术师它会自动查找文件中所有匹配“ubuntu官方归档仓库”和“安全更新仓库”的网址并将其批量替换为“华为云镜像”的网址。-i参数表示直接修改原文件。执行这条命令后文件内容就已经被静默修改完成了。你可以用cat /etc/apt/sources.list命令快速查看一下文件内容确认网址是否已经变成了repo.huaweicloud.com。无论使用哪种方法完成修改并保存后最核心的一步就完成了。你已经成功告诉系统“以后下载软件别跑那么远了就去家门口的华为云仓库拿”4. 让新配置生效更新本地软件包缓存好了仓库地址我们已经告诉系统了但apt-get这个“管家”还有点“健忘”。它之前从旧仓库下载过一份软件包清单这份清单就像一本旧的“商品目录”还缓存cache在本地。如果我们不更新这份目录它还是会按照旧目录里的信息去工作虽然地址换了但可能找不到最新的软件包。所以我们需要让apt-get去新的华为云仓库里拉取一份全新的、最全的“商品目录”到本地。这个操作就是“更新软件包缓存”。命令非常简单sudo apt-get update执行这条命令后终端会开始忙碌起来屏幕上会快速滚动许多行信息。你会看到它正在从repo.huaweicloud.com这个地址获取各种“索引文件”InRelease, Packages.gz等。这个过程通常很快十几秒到一分钟就能完成具体取决于你的网络速度和源服务器的响应速度。如何判断更新是否成功注意看命令执行的最后几行输出。如果一切顺利你通常会看到类似这样的提示正在读取软件包列表... 完成或者所有仓库地址后面都没有报错信息如“忽略”、“失败”等字样。如果出现了Failed to fetch或404 Not Found之类的错误那很可能是因为你在第三步中填写的系统版本代号如groovy, focal不对或者复制粘贴时格式出现了错误比如多了空格、少了斜杠。这时你需要回头检查并修正/etc/apt/sources.list文件的内容。这个apt-get update命令本身不安装或升级任何软件它只是更新本地的软件源信息数据库。这是一个非常安全的操作可以经常执行以确保你本地的软件包信息是最新的。很多人在安装软件失败时第一步就应该先试试运行这个命令往往能解决问题。5. 效果实测感受从“KB/s”到“MB/s”的飞跃理论说再多不如实际跑一跑。配置是否成功速度提升是否明显我们安装个软件试试就知道了。你可以选择一个你需要的、或者任意一个体积适中的软件包来测试。比如我们可以安装一个常用的开发工具htop一个强大的系统监控工具它大小适中非常适合做测试。在终端中输入sudo apt install htop按下回车后请仔细观察终端的输出。重点看下载速度那一栏。在换源之前你可能会看到速度在10 kB/s、50 kB/s徘徊进度条慢得让人心焦。而现在如果网络条件正常你很可能会看到速度瞬间飙升至1 MB/s、2 MB/s甚至更高进度条“唰”的一下就跑完了。为了让你有一个更直观的对比我列了一个简单的表格展示换源前后可能出现的典型差异对比项换源前默认海外源换源后华为云镜像源下载速度通常在 10 - 100 KB/s 之间波动极不稳定。轻松达到 1 - 10 MB/s视本地宽带满载。连接延迟高经常出现“等待连接”或“连接超时”。极低响应迅速几乎秒连。安装体验安装一个几十MB的软件需要数分钟甚至更久需要耐心等待。大部分中小型软件都是“秒装”体验流畅。更新系统执行sudo apt upgrade更新系统时耗时漫长宛如煎熬。系统更新过程变得快速高效节省大量时间。我自己实测下来在百兆宽带环境下从华为云镜像源下载软件速度经常能跑满我的带宽上限体验的提升是颠覆性的。以前可能因为速度太慢而放弃在终端安装软件转而去找离线包现在完全没这个必要了apt install重新变得可爱起来。不仅仅是安装新软件以后当你运行sudo apt upgrade来升级系统中所有已安装的软件包时你也会感受到这种速度的飞跃。节省下来的时间喝杯茶摸会儿鱼它不香吗6. 进阶与排坑你可能还会遇到这些问题基本的换源操作到这里就圆满成功了。但我知道有些喜欢折腾或者遇到特殊情况的朋友可能还想知道更多。这一节我们就来聊聊一些进阶知识和可能遇到的“坑”。问题一除了华为云还有其他国内好用的源吗当然有。国内各大云服务商和高校基本都提供了Ubuntu/优麒麟的镜像服务速度都很快。你可以把它们理解为不同品牌的“国内仓库”可以根据你的网络状况选择最快的那个。常用的有阿里云镜像mirrors.aliyun.com腾讯云镜像mirrors.cloud.tencent.com清华大学镜像mirrors.tuna.tsinghua.edu.cn中科大镜像mirrors.ustc.edu.cn替换方法完全一样只需将sources.list文件中的repo.huaweicloud.com替换成上述任意一个地址即可。有个小技巧你可以用curl命令测试一下哪个源对你当前网络延迟最低比如curl -I http://mirrors.aliyun.com/ubuntu/看响应时间。问题二如何更新其他版本的优麒麟系统前面提到关键是要找准你的系统代号。除了用lsb_release -a命令你也可以查看/etc/os-release文件。对于长期支持版本LTS我建议使用对应的稳定源。例如优麒麟22.04 LTSJammy Jellyfish的用户可以将配置中的groovy全部替换为jammy。一般来说使用当前大版本下的-updates和-security源是非常重要的它们分别提供了软件更新和安全补丁。问题三执行apt-get update时出现“公钥”错误怎么办偶尔在换源后更新时可能会看到NO_PUBKEY这样的错误提示。这是因为新的镜像源使用了不同的密钥来签名软件包。解决方法很简单错误信息里会包含一长串密钥ID比如3B4FE6ACC0B21F32我们把它复制下来使用以下命令导入即可sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 这里替换成你的密钥ID导入成功后再运行一次sudo apt-get update就正常了。问题四换了源之后安装软件还是报错找不到包首先请再次确认你的系统代号是否填写正确。其次确保你的sources.list文件中包含了main restricted universe multiverse这几个组件它们代表了不同分类的软件仓库缺少某个可能会导致部分软件找不到。最后可以运行sudo apt-get update sudo apt-get upgrade先全面更新一下系统有时能解决依赖关系问题。记住Linux社区的力量是强大的绝大多数你遇到的问题网络上都有先辈们踩过坑并留下了解决方案。遇到报错时仔细阅读终端给出的英文错误信息把它复制到搜索引擎里十有八九能找到答案。