Ubuntu/Debian

关注公众号 jb51net

关闭
操作系统 > Ubuntu/Debian >

如何在Ubuntu系统中使用PPA? 在Ubuntu Linux 中使用PPA完全指南

脚本之家

如果你在使用 Ubuntu 系统,或其它衍生版本,如 Linux Mint、Linux Lite 或者 Zorin OS 等,可能会遇到添加使用 PPA 的情况。那什么是 PPA?为什么要使用 PPA?如何正确添加、使用,以及 PPA 安全吗?下面就为大家介绍,如何在 Ubuntu 系统中使用 PPA。

什么是 PPA,为什么使用它

PPA 全称 Personal Package Archive,顾名思义就是「个人包归档」。在正式了解 PPA 之前,您应该先了解 Linux 中「存储库」的概念:

存储库和包管理的概念

「存储库」repository 是一组文件,其中包含了有关各种软件的版本信息和详细信息,如「校验值」。每个 Ubuntu 版本都有自己的 4 个官方「存储库」:

Main Canonical 支持的免费和开源软件Universe 社区维护的免费和开源软件Restricted 设备的专有驱动Multiverse 有版权和合法性问题限制的软件

您可以点击查看所有 Ubuntu 版本的「存储库」,也可以在页面中查看专「存储库」,例如 Ubuntu 16.04 Main 存储库。其实简单来说,「存储库」就是包含有关软件信息的 Web URL。

那么,系统是如何得知「存储库」repository 位置的呢?其实该信息就存储在 /etc/apt 目录的 sources.list 文件中。如果你查看该文本文件,就可以看到存储库的 URL。

当您执行 sudo apt update 命令时,Ubuntu 系统就会使用 APT 工具检查在线「存储库」,并将有关软件及其版本的信息存储到缓存中。 当您使用 sudo apt install package_name 安装软件时,系统就会使用该信息从存储实际软件的 URL 获取该软件包。

如果存储库中没有关于某个软件包的信息,「终端」中将返回以下错误:

E: Unable to locate package

在介绍完「存储库」的一些基本信息后,我们就可以开始了解 PPA 了。

什么是 PPA

如您所见,Ubuntu 的「存储库」控制着用户可以在系统上获得的软件版本。但如果 ISV 或开发人员发布了软件新版本,Ubuntu 的官方「存储库」不可能立即提供。为了确保系统稳定性,官方源会检查新版本是否与系统兼容,所以在软件发布新版本后,短时间内用户是无法通过 Ubuntu 的官方「存储库」来获得最新软件版本的。

另一方面,官方存储库仅提供「稳定版」软件,如果 ISV 要发布软件版本的 beta 测试,是无法通过官方源来发布的。

在遇到以上情况时,就需要使用 PPA 了。

如何使用 PPA,以及 PPA 如何工作

PPA 意味着个人包存档,请注意「个人」这个词,它暗示了这是开发人员所独有的东西,并没有得到分发的正式认可。

Ubuntu 提供了一个名为 Launchpad 的平台,让软件开发人员能够创建自己的存储库,方便最终用户将 PPA 存储库添加到 sources.list。当用户更新系统时,Ubuntu 系统就能够知道这个新软件的可用性,而且可以使用标准的 sudo apt install package_name 命令来安装它,就比如:

sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt-get update
sudo apt-get install lighttable-installer

将上述命令总结一下就是:

现在让我们详细拆解一下:

sudo add-apt-repository ppa:dr-akulavich/lighttable

上述命令中并没有列出存储库的 URL,这是因为该工具旨在对有关 URL 的信息进行抽象化。如果你添加 ppa:dr-akulavich/lighttable,将会获取到 Light Table;如果添加的是 ppa:dr-akulavich,将能够获取到「上层存储库」中的所有存储库或软件包。

基本上,当您使用 add-apt-repository 添加 PP A时,相当于手动执行类似如下命令:

deb http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main
deb-src http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main

上述 2 条命令是将存储库添加到 sources.list 的传统方法,而在添加 PPA 时会自动完成对 sources.list 文件的配置,而无需用户知道确切的存储库 URL 和操作系统版本,相当于是自动化的。

而相当重要的一点就是,使用 PPA 时它不会更改 Ubuntu 系统中的原始 sources.list 配置文件,而是根据最佳实践在 /etc/apt/sources.list.d/ 目录中创建列表文件和对应(save 扩展名)的备份文件。

这是一种安全措施,可确保添加 PPA 时不会污染原始 sources.list,而且还有助于 PPA 移除。

官方和非官方 PPA

你可能还听说过官方 PPA非官方 PPA的说法,这两者之间又有什么不同呢?

当软件开发商或开发人员为他们的软件创建 PPA 时,被称为官方 PPA。但有时,一些个人也会为其它开发人员的项目创建 PPA。为什么有人这么做呢?主要是因为有的开发人员只提供软件源码,而对很多普通用户来说,在 Linux 中进行源码编译安装是非常痛苦的事,而通过志愿者创建的非官方 PPA,就可以方便用户对软件进行轻松安装和管理了。

确保你的Linux发行版可以使用PPA

当在 Ubuntu 或其他基于 Debian 的 Linux 发行版中使用 PPA 时,应该记住一些事:

并非每个 PPA 都适用于您的特定 Linux 版本。你需要知道当前正在使用哪个 Ubuntu 版本,该版本的代号非常重要。当您转到某个 PPA 的网页时,就可以看到 PPA 支持哪些 Ubuntu 版本。

如何获取 PPA 的网址呢?只需在互联网上搜索 PPA 名称,如 ppa:dr-akulavich/lighttable,就可以获得 Launchpad 这一官方 PPA 托管平台中的结果。当然,你也可以直接到 Launchpad 网站中进行搜索。

为什么PPA不适用于所有Ubuntu发行版本

Ubuntu 每 6 个月会发布一个新版本,而必需要为特定版本编译软件创建 PPA 才能适配,为每个 Ubuntu 版本更新 PPA 是一项繁琐的任务,而维护老版本的软件更新也不太现实,所以并非所有开发人员或 PPA 维护者都会花时间这么做。

如果PPA不适用于你的Linux版本,要如何安装应用程序?

如果 PPA 不适用于您的 Ubuntu 版本,仍然可以下载 DEB 文件来安装应用程序。您可以点击「View package details」:

此后可以单击包以显示更多详细信息,还可以在此处找到包的源代码和 DEB 文件:

由于 Gdebi 在处理依赖项方面要好得多,建议使用 Gdebi 而非「软件中心」来安装这些 DEB 文件。

如何删除PPA

建议在删除 PPA 之前事先删除通过 PPA 安装的软件,如果你只删除 PPA,则已经安装的软件仍然会保留在系统当中,而且还无法获得任何更新。

那么问题来了,如何判断哪些应用程序是通过 PPA 安装的呢?

找出通过PPA安装的软件

Ubuntu「软件中心」是不包括这个功能的,我们可以通过「新立得包管理器」来找出通过 PPA 安装的软件:

sudo apt install synaptic

在「新立得包管理器」中选择「源自」:

找到包后,您可以直接用「新立得包管理器」来删除它们,或者执行「终端」命令来删除:

sudo apt remove package_name

删除用 PPA 安装的软件包后,您可以继续从 sources.list 中删除 PPA。

以图形方式删除PPA

转到「软件和更新」——然后转到「其它软件」选项卡——查找要删除的 PPA:

你有两个选择:您取消选择 PPA 或直接用「删除」选项。

其区别在于:当您取消选择 PPA 条目时,系统会将 /etc/apt/sources.list.d 中的 ppa_name.list 文件注释掉;如果选择「删除」选项,就会直接删除 /etc/apt/sources.list.d 目录中的 ppa_name.list文 件。

使用PPA安全吗

由于提供对软件安装的简单选择,PPA 在 Debian 和 Ubuntu 用户群体中很受欢迎。就安全性而言,官方 PPA可以不加考虑的使用,而是否使用非官方 PPA就完全取决于你的个人选择了。

根据经验,如果程序需要 sudo 权限,则应避免通过第三方 PPA 安装程序。