设置Debian-Apt源
2011-02-19 15:51:37 阿炯

可以参考官方的源文件:http://http.us.debian.org/debian/README.mirrors.txt
ubuntu和debian都有很多的源和镜像,也有不少的国内镜像。一些爱好者为了寻找镜像已经自己“憋”出来了一些pl脚本用于寻找最快的镜像。实际上debian的爱好者早准备了更厉害的武器等你来用。

1、apt-spy 方式:
‘apt-spy’会根据站点回应时间和带宽自动创建’sources.list'。
# apt-get install apt-spy
# mv sources.list sources.list.bak /home/backup
# man apt-spy //获取详细的使用方法
# apt-spy update //更新您的镜像列表文件 /var/lib/apt-spy/mirrors.txt
# apt-spy -d testing -a Asia
//在亚洲区寻找速度最快的testing版镜像,并生成 sources.list文件,也可使用 -o 参数指定写入文件
提示:这是一个漫长,确实一劳永逸的过程.而安装之后进行“apt-spy update”是必须的。

2、netselect-apt方式:
‘netselect-apt’会创建一个更完整的`sources.list'文件,但它使用更落后的方法来选择镜像站点
# apt-get install netselect-apt
# mv sources.list sources.list.bak //backup
# man netselect-apt //获取详细的使用方法
# netselect-apt -s testing
//下载http: //www.debian.org/mirror/list-full文件,并根据其内容测试网络,生成sources.list,也可将下载http://www.debian.org/mirror/list-full手动下载到本地, 并同过参数 -i 指定同样可以通过 -o 参数指定输出文件而不是默认的sources.list,切记先备份你机器里的源列表。

误区:通常大家都在交流使用国内的哪个源速度比较快,实际上很多国外源的访问速度是国内的很多倍。记得曾经用过国外某大学的源,速度是200k以上。日本的部分源可以达到500k以上。最近发现台湾的主镜像在我这里下载速度居然是1084k,达到1M每秒。可以考虑不限定为亚洲,这样有可能找到更快的镜像源。

apt-spy 是一个管理安装媒体的程序,使用方法简单介绍一下:
使用方法: apt-spy [options]
选项:
-d distribution 选择 debian 的发行版本,例如 stable 。除升级外,必须使用此参数。
-a area 选择进行测试的区域,例如 Aisa 。
-c config 指定配置文件。
-e number 指定测试的服务器数量。
-f file 测试时抓取制定的文件(文件相对 debian base 的路径)。
-i file 指定输入的文件,配合 -w 参数使用。
-m mirror-list 指定要升级的镜像列表文件。
-o output-file 重定向输出到指定文件。
-p proxy 指定使用的代理服务器,需要遵从 [server]:[port] 的格式。
-s country_list 指定要进行测试的国家。不能和 -a 参数同时使用。
-t time 指定进行测试时每台服务器的超时时间,只能是正整数。
-u update-URL 从指定的 URL 获得镜像列表更新。
-w file 输出 -i 参数提供的服务器列表中速度最快的前几台镜像服务器(缺省是前 5 台)。
-n number 制定 -w 参数输出的服务器数量。
-v 输出版本信息。
-h 输出当前帮助信息
update 升级镜像站点列表。

有意思的是网上常见的文档都只介绍了很少几个参数的作用,所以看到好多“二手文档”里面说测试镜像服务器速度的时候(apt-spy –d testing -A Asia)需要很长时间。其实,只要加一个参数 -t 指定超时时间,就可以大大加速这个过程(至少快 10 倍)。


上面说了如何找源,接下来就讨论一下源确定后的软件安装了,除了dpkg外,通过源站下载软件有apt与apt-get指令。

apt 的 update 和 upgrade 命令的区别

如果想让 Ubuntu 或者 Debian 系统保持更新,要用apt update和apt upgrade命令组合。一些教程也会提到 apt-get update和apt-get upgrade。apt和apt-get命令运行起来几乎一样,除了一些细微的差别。首先讨论一下 update和upgrade的区别,这两个难道不是一样的吗?

apt 的 update 和 upgrade 的区别

尽管听上去运行 apt update可以给一个包的最新版本,然而这并不正确。update命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是apt upgrade命令来把这些包下载和升级到最新版本。

建议阅读包管理器的概念,会帮助更好的理解这些东西。基本上系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。如果不更新这个数据库,系统就不会知道是否有更新的版本。

当运行 apt update或者apt-get update命令,它会获取这些包的最新元数据(包的版本等)。


这时候本地缓存就被更新了,有一些包可以升级。用 apt upgrade可以升级所有(可升级的)包。它会显示要升级的包,并且通过回车(默认选择是 Y)或者按下Y键进行确认。要在这个阶段取消升级,可以按下N。

下面这些可能会帮助记忆:
apt update:更新包缓存(可以知道包的哪些版本可以被安装或升级)
apt upgrade:升级包到最新版本

因为有一些管理员命令,需要作为 root 运行。因此需要使用 sudo配合其他命令。sudo使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。

既然理解了update和upgrade是如何一起运行的,接下来来讨论一下apt和apt-get的用法。

apt 还是 apt-get应该用哪个

Debian 和 Ubuntu 使用的是 APT 包管理系统,不要和 apt命令弄混了。有许多和 APT 包管理交互的命令;apt-get、apt、dpkg、aptitude等。其中最受欢迎的就是apt-get命令,它是一个低层级low-level且功能丰富的命令,apt是apt-get命令的一个更新而更简单的版本。

需要了解 atp 和 apt-get 命令的不同,下面重点讨论这些命令中update和upgrade选项的区别。

apt update vs apt-get update

apt-get update和apt update做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。从技术上讲,其实并没有区别。然而apt update在一个方面比apt-get update做的好,它会告诉你可升级的包的数量;apt-get update甚至不会告诉你包是否可以升级。

从 apt中可以看到列出可升级的包,而apt-get甚至没有这个选项。现在来比较一下两个命令中 upgrade的选项。

apt upgrade vs apt-get upgrade


apt-get upgrade和apt upgrade命令根据本地包缓存(通过update命令更新)的数据,安装可升级包的最新版本。

然而,apt upgrade命令会做两件与apt-get upgrade不同的事情。apt upgrade命令可以升级 Linux 内核版本,apt-get upgrade不能。apt-get命令需要使用apt-get dist-upgrade来升级内核版本。这是因为升级内核版本意味着安装一个全新的包。apt-get upgrade命令不能安装一个新的包。它只能升级现有的包。apt upgrade比apt-get做的好的另一件小事是,它会在底部显示一个进度条。

小结

update和upgrade两个词很相似,这就是为什么很多新用户会感到困惑。有时候apt update命令应该和apt upgrade命令合并。即upgrade(所有已安装的包)和update(本地包元数据缓存)一起完成工作。没有必要将两个命令分开,把这两个领命合成一个upgrade命令吧。Fedora 就是这样对 DNF 命令进行了改进。


APT v3.0版本发布

APT 团队于2025年4月上旬正式发布了 APT v3.0 —— 这个深受无数用户喜爱的包管理器迎来了全新的稳定版本系列。值得一提的是,v3.0 特别献给了 Steve Langasek 这位长期为 Debian 和 Ubuntu 社区做出巨大贡献的开发者,于 2025 年 1 月 1 日离世。其对 Debian 和 Ubuntu 的软件生态来说是个值得铭记的非凡时刻。

语言支持更全面,文档体验更友好
APT v3.0 带来了大量翻译更新,支持荷兰语、德语、法语、巴西葡萄牙语、罗马尼亚语、加泰罗尼亚语、瑞典语、捷克语和波兰语等多种语言。这让更多不同语言背景的用户也能轻松上手使用 APT。与此同时,官方文档和手册页(man pages)也进行了大幅改进,为依赖本地语言资源的用户提供了更加清晰、准确的参考资料,整体体验更加友好。

新一代依赖求解器:更聪明、更高效
在技术层面,APT v3.0 引入了完善版的 “solver3” 求解器。这是一个全新的回溯式依赖处理系统,能够更准确地处理复杂的软件包冲突和安装决策。早在之前的小版本中,solver3 就进行了大量性能调优,比如改进了版本选择逻辑和优化了依赖约束管理。如今在 v3.0 中,solver3 已经变得更加成熟,能用更少的时间处理更复杂的场景。此外,得益于新增的增量式发现机制和持久存储技术,APT 在遇到依赖冲突或解决失败时,可以更优雅地回退处理,而不会让系统陷入混乱。

支持分阶段更新,大规模升级更稳了
APT v3.0 还引入了“分阶段更新”功能。即就是在进行大规模升级时,可以分批推送更新包,而不是一口气更新所有内容。这对大型服务器环境和希望控制风险的用户来说,极具吸引力。

界面大升级,信息更清晰易懂
APT 的用户界面也迎来了明显提升。新的列式输出格式,让更新信息像表格一样排布整齐,阅读起来一目了然,不再像以前那样显得杂乱。为了让关键信息更加醒目,v3.0 增加了彩色高亮和加粗显示功能。比如:
重要软件包被移除时,会用红色标出;
新安装的软件包用加粗字体强调;
出现冲突或警告信息时,也会有明显的视觉提示。

这些改动让用户在更新或安装软件时,更容易发现潜在的问题或重要变动。

安全性再加强,告别旧时代
在安全性方面,APT 团队继续推进现代化改革。v3.0 进一步强化了加密验证机制,逐步用 OpenSSL 和 Sequoia 替换掉旧的 GnuTLS 和 GnuPG 组件。与此同时,APT 也彻底告别了已经过时的 apt-key 工具,转而使用更现代、更安全的认证和密钥管理方式。这不仅提高了包验证的安全性,也让调试和配置过程变得更简洁。

现状与展望
目前APT v3.0 已经正式进入 Debian 的 Unstable(不稳定分支),很快也将进入 Testing(测试分支)。随着 Debian 13 “Trixie” 开发步入过渡冻结(Transition Freeze)和工具链冻结(Toolchain Freeze)阶段,预计在2025年年中,v3.0 就会随着新版本的 Debian 正式推送到广大用户手中。想了解更多详细内容,可以查看完整更新日志。v3.0 不只是一次普通的更新,它标志着 Debian 和 Ubuntu 软件生态向更加现代化、国际化、安全化迈出了重要一步。无论是更强大的依赖处理、更清晰的界面体验,还是更严密的安全机制,APT v3.0 都为未来打下了坚实的基础。