本文以Debian和Ubuntu为例子,这两个系统都使用apt作为包管理器,apt有一个软件源(在 /etc 下的某个位置,软件源是一些url),表示apt从哪里搜索、下载软件包。系统刚安装好的时候,软件源的配置应该是官方的,我们可能为了下载加速会更换别的源,但是我们换的都是官方的镜像源,也就是说,我们虽然不是到官方的服务器去下载的软件,但是去的也是官方的镜像,内容和官方源一致
但是我们想下载的一些软件包,官方源没有(比如N卡的驱动,不知道现在官方源有了没有),他们可能是未经官方验证的,或者不是开源的。。。(安全性和稳定性自己考虑,这里不讨论)
如果我们想通过apt安装这样的软件需要怎么做呢?比较容易想到的做法就是在现有的软件源中增加新的地址,Debian就是这么做的
但是对于Ubuntu,我们还有其他选择(Debian不行):
sudo add-apt-repository ppa:仓库名/子路径 # 比如 ppa:deadsnakes/ppa sudo apt update
这样就添加了一个第三方的仓库,可以下载新的软件了。那么这个ppa具体是什么呢(PPA的意思是:Personal Package Archive)?它又不是url,怎么指向新的软件源呢?实际上【当你添加一个PPA到你的系统中,add-apt-repository命令会自动解析这个PPA标识到一个完整的URL。例如,对于ppa:deadsnakes/ppa,它实际上会指向:http://ppa.launchpad.net/deadsnakes/ppa/ubuntu(这个URL是Launchpad服务器上的一个位置,你的系统将从那里下载包列表和软件包)】。
这是怎么解析的呢?PPA的解析服务是由这个网站提供的:https://launchpad.net/(这个网站的Logo好像Ubuntu,怪不得支持Ubuntu)