如果你在使用 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 命令来安装它,就比如:

  1. sudo add-apt-repository ppa:dr-akulavich/lighttable
  2. sudo apt-get update
  3. sudo apt-get install lighttable-installer

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

  • sudo add-apt-repository <PPA_info> 命令可以将 PPA 存储库添加到 sources.list 列表中
  • sudo apt-get update 此命令更新软件包列表
  • 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时,相当于手动执行类似如下命令:

  1. deb http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main
  2. 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 安装程序。

PPA 完全指南,如何在 Ubuntu 系统中使用 PPA相关推荐

  1. linux卸载欧朋浏览器,如何在Ubuntu系统中安装和卸载Opera浏览器

    以下内容教您如何在Ubuntu操作系统中安装Opera浏览器. 通常,可以通过以下方法安装不同的Opera版本. 下面将向您展示如何在Ubuntu中安装Opera 55版本的浏览器. 如果不需要,则可 ...

  2. ubuntu 命令卡住_如何在Ubuntu系统中重置root密码

    IT服务圈儿 有温度.有态度的IT自媒体平台 经授权转自公众号:良许Linux(ID:liangxuxiansheng) 很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自 ...

  3. linux如何加辅助ip,如何在 Ubuntu 系统中添加一个辅助 IP 地址

    Linux 管理员应该意识到这一点,因为这是一项例行任务.很多人想知道为什么我们需要在服务器中添加多个 IP 地址,以及为什么我们需要将它添加到单块网卡中?我说的对吗? 你可能也会有类似的问题:在 L ...

  4. linux 辅助ip地址到文本,技术|如何在 Ubuntu 系统中添加一个辅助 IP 地址

    Linux 管理员应该意识到这一点,因为这是一项例行任务.很多人想知道为什么我们需要在服务器中添加多个 IP 地址,以及为什么我们需要将它添加到单块网卡中?我说的对吗? 你可能也会有类似的问题:在 L ...

  5. 如何在ubuntu系统中修改时区?

    软硬件环境 ubuntu 18.04 64bit 简介 在ubuntu上,系统的时区可以在系统安装期间进行设置,同时也可以在之后的使用中更改.对于许多与系统相关的任务和流程,使用正确的时区非常重要.本 ...

  6. 如何在Ubuntu系统中安装搜狗输入法(亲测好用!!!)

    刚玩Ubuntu的第一天就想装个输入法,在网上搜了好多教程,包括改错等等,终于整理出一篇比较实用的,适用于大众群体的安装方法(出错格式类似).下面我们进入安装教程.(原文参考自rocgale) 1.进 ...

  7. ubuntu 系统中如何截图

    ubuntu 系统中如何截图 浏览:805 | 更新:2014-02-25 13:17 ubuntu 系统现在用的人还不是很多,那么如何在 ubuntu 系统中截图呢?今天小编根据平时使用 ubunt ...

  8. 在 Ubuntu Linux 中使用 PPA(完全指南)

    译:在 Ubuntu Linux 中使用 PPA(完全指南) 作者: Abhishek Prakash 自由和开放源码软件的创造者.一个热心的 Linux 用户和开源推动者.从阿加莎·克里斯蒂和夏洛克 ...

  9. linux下如何安装自带编译器的codeblocks,在Ubuntu 16.04系统中使用PPA源安装Code Blocks的方法...

    本文介绍在Ubuntu 16.04操作系统中使用PPA源安装Code Blocks的方法,可以先参考在Ubuntu系统中安装Code::Blocks的方法一文. 使用PPA源安装Code Blocks ...

最新文章

  1. 区块链从一夜暴富到一夜暴“负”的辛酸史
  2. 如何看待团队合作这件事?
  3. CVPR2021直播|点云补全的方法梳理及最新进展分享
  4. ZCF提出解决零确认交易安全问题新方案
  5. leetcode算法题--字符串相乘
  6. jquery 取对象数组下标_JQuery使用index方法获取Jquery对象数组下标的方法
  7. android listview remove 动画,给Android ListView添加删除item动画
  8. 使用Spring Security对RESTful服务进行身份验证
  9. 程序员编程艺术第十一章:最长公共子序列(LCS)问题
  10. htmlentities在mysql_PHP和mySQL:何时确切使用htmlentities?
  11. 遍历一个文件下的所有目录和文件
  12. 虚拟机linux搭建samba,搭建samba服务使在windows上使用虚拟机为linux
  13. mysql的两种存储方法_mysql的两种存储引擎
  14. mysql中select后接数字_MySQL SELECT用于从一组数字中排列一个数字
  15. php 零宽断言,正则表达式之零宽断言
  16. tmb100a linux,天猫魔盒TMB100E短接降级官方1.7版本
  17. Java实现的企业员工考勤管理系统
  18. linux怎么重新扫描磁盘,vmware linux添加新磁盘后刷新,重新扫描 SCSI 总线,在不重启虚拟机的情况下添加 SCSI 设备教程,vmwarescsi...
  19. 网络规划师学习-二层交换机工作原理和二层交换机为啥不能跨网段通信
  20. 用户/账户/账号的理解

热门文章

  1. COCO数据集简介与处理
  2. 计算机u盘插口关闭,电脑USB接口被禁用了,小编告诉你怎么开启
  3. nginx实现web应用跨域
  4. (深入.Net平台和C#编程)第五章.体检套餐管理项目.20170408
  5. 在Ubuntu 14.04上设置私有Docker Registry
  6. springboot所有配置文件中英文对照(全)
  7. 360死磕百度,360百科的优缺点分析
  8. jsp+servlet+mysql实现的CRM客户关系管理系统源码+运行教程
  9. php5携程,携程业务部门现场管理系统
  10. python-解析获取二维码内容