使用工具设置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 命令进行了改进。