本文为你全面且详细介绍 Ubuntu 操作系统中的 PPA,包括 PPA 的概念,正确使用官方和非官方 PPA 及删除它的方法,其实不止是在 Ubuntu 系统中,其他的衍生版本,比如 Linux Mint、Linux Lite 及 Zorin OS 等,都会遇到添加使用 PPA 的情况,如果你不是很掌握,那就来看看本文吧,一定会有所收获。
什么是 PPA,它的概念 PPA 全称 Personal Package Archive,顾名思义就是个人包归档。在正式了解 PPA 之前,您应该先了解 Linux 中存储库的概念: 1、存储库和包管理的概念 存储库repository 是一组文件,其中包含了有关各种软件的版本信息和详细信息,如校验值。每个 Ubuntu 版本都有自己的 4 个官方存储库: 1]、Main Canonical 支持的免费和开源软件 2]、Universe 社区维护的免费和开源软件 3]、Restricted 设备的专有驱动 4]、Multiverse 有版权和合法性问题限制的软件 参考:Ubuntu存储库的定义及启用和禁用Ubuntu存储库的方法。 您可以查看所有 Ubuntu 版本的存储库,地址在http://archive.ubuntu.com/ubuntu/dists/,也可以在页面中查看专存储库,例如 Ubuntu 16.04 Main 存储库,地址在http://archive.ubuntu.com/ubuntu/dists/xenial/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 了。 2、什么是 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 将上述命令总结一下就是: 1]、sudo add-apt-repository <PPA_info> 命令可以将 PPA 存储库添加到 sources.list 列表中 2]、sudo apt-get update 此命令更新软件包列表 3]、sudo apt-get install <package_in_PPA> 命令用于安装软件包 现在让我们详细拆解一下: 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 安装的呢? 1、找出通过PPA安装的软件 Ubuntu软件中心是不包括这个功能的,我们可以通过新立得包管理器来找出通过 PPA 安装的软件: sudo apt install synaptic 在新立得包管理器中选择源自:
找到包后,您可以直接用新立得包管理器来删除它们,或者执行终端命令来删除: sudo apt remove package_name 删除用 PPA 安装的软件包后,您可以继续从 sources.list 中删除 PPA。 2、以图形方式删除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 安装程序。
相关主题 |