什么是 Ubuntu 中的 “软件源” 和 “PPA 源”

Ubuntu 下的软件的更新和我们经常使用的 Windows 更新方式不一样。Windows下的软件更新,是通过打开应用后,应用自动联网查看更新然后来提醒用户。而 Ubuntu 下,用户只需要隔三差五的运行下 apt update 命令就可以通过查看软件的各个源来获取所有软件的更新信息。

那么,apt 命令为什么能做到这个呢?其实是因为 apt 命令有一个源列表,他所有提供的软件都是从这个列表上获取的,那么很自然,每当软件有了最新的版本,apt update 总能够通过查看当前的列表获取得到,从而反馈给用户。

软件源:

这个源列表就是 /etc/apt/sources.list 。这里记录了源的地址,格式基本如下所示:

deb cdrom:[Ubuntu 22.04.2 LTS _Jammy Jellyfish_ - Release amd64 (20230223)]/ jammy main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb https://mirrors.bfsu.edu.cn/ubuntu/ jammy main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb https://mirrors.bfsu.edu.cn/ubuntu/ jammy-updates main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ jammy-updates main restricted

这里的 mirrors.bfsu.edu.cn 就是我们镜像的地址,决定着源的更新访问的速度。可以通过修改这个来使用最佳的源。当然,每次修改完源之后,还要执行 apt update 命令来使系统重新识别一下。

PPA 源

当然,系统自带的源是很有限的,我们肯定需要一些其他的软件包,然而如果是直接下载 deb 格式的文件的话,又不能获取到更新和维护。所以这就用到了十分重要的 ppa 源了。

所谓 ppa 源,就是指 “Personal Package Archives”,也就是个人软件包集。

这其实是一个网站,即 launchpad.net ,它是 Ubuntu 母公司 Canonical 所架设的网站,是一个提供维护、支援或联络 Ubuntu 开发者的平台。

由于不是所有的软件都能进入 Ubuntu 的官方的软件库,launchpad.net 提供了ppa,允许开发者建立自己的软件仓库,自由的上传软件。供用户安装和查看更新。

加入ppa 源的命令:

sudo add-apt-repository ppa:user/ppa-name

删除 ppa 源的命令:

sudo add-apt-repository -r ppa:user/ppa-name

比如我们要添加 wine 的源,就可以执行:

sudo add-apt-repository ppa:ubuntu-wine/ppa

好了,让我们看看添加完 ppa 源之后到底发生了什么:

myths@Business:~$ cd /etc/apt/sources.list.d/
myths@Business:/etc/apt/sources.list.d$ ls
myie-browser.list       sogoupinyin.list
myie-browser.list.save  sogoupinyin.list.save
openalpr.list           ubuntu-wine-ppa-trusty.list
openalpr.list.save

恩,其实是在 /etc/apt/sources.list.d/ 文件夹里放了一个文件,我们打开来看看:

myths@Business:/etc/apt/sources.list.d$ cat ubuntu-wine-ppa-trusty.list 
deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu trusty main
# deb-src http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu trusty main

原来就是添加了一个跟软件源一模一样的东西,他们的作用殊途同归啊。我想其实只是为了分辨官方的源和第三方的源,Ubuntu 才设计成在 sources.list 和 sources.list.d/ 这两个地方中存储源。因为第三方的源毕竟不太可信,如果随便更新的话可是会出事情的。

标签

发表评论