1. 什么是PPA?

Personal Package Archive, 意思是个人包档案。PPA可以提供新版本的软件以及在Linux官方库中没有的软件。在正式介绍PPA之前,先介绍一下repository,PPA就是一种repository.

1.1 什么是repository?

repository: a place where things are stored and can be found. (Cambridge dict).

Repository从字典中理解就是仓库的意思,放东西和取东西的地方。对于Linux系统来说,Repository就是个文件仓库,包含了各个软件的信息,例如:版本号,校验码(checksum)

分为以下四种组成部分:

  • Main: 标准支持的免费和开源的软件
  • Universe: 社区维护的免费和开源的软件
  • Restricted: 对各个设备的专有驱动
  • Multiverse: 受限于版权或法律条目的软件

这四个部分在Software & Updates中也能看到。
在这里插入图片描述

例如:Ubuntu 16.04的main repository 可以在 http://archive.ubuntu.com/ubuntu/dists/xenial/main/访问。
而对于Ubuntu来说,只需要保存这条链接(存放在/etc/apt/source.list中),就能够找到所有属于该repository的软件。接下来一起来看看我的sources.list文件。
我将下载服务器替换为阿里云。某些行前面带有#号表示注释,不起效果。可以在第5,10,16,18行看到以上四个部分的字眼,应该是分别负责对应的repository.
在这里插入图片描述
一般在下载package的时候,我们会输入两个指令:1. sudo apt update,这一步系统会使用APT tool来检查repo中包含的软件,并将软件信息和版本号保存在缓存中。2. sudo apt install package_name,这时从缓存中查找对应的package,得到具体的URL并进行下载。
如果该repository中没有该package,则会抛出Error. E: Unable to locate package

1.2 为什么要使用PPA?

在没有PPA时,当一个软件开发者准备发布新开发的软件时,Ubuntu官方并不会直接让他发布出来,而是会进行一些系统兼容性的测试(因为软件或新版本的软件可能无法在原有系统上使用),可能需要几个月的时间,这导致了软件无法及时发布给用户。用户不能得到新的软件,那么开发者就无法进行beta测试(在软件开发中,分为alpha测试和beta测试,alpha测试面向开发团体内部,beta测试面向感兴趣的用户),在正式版本前,也无法对软件做好更好的优化。

所以,PPA就出现了!

2. 如何使用PPA?PPA的工作机制?

Ubuntu为软件开发者提供了Launchpad平台来创建自己的repositories.

对于用户来说,只需将目标软件的PPA repository添加到sources.list中,更新repository列表后便可以找到和安装,例如:

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

补充1:使用add-apt-repository添加PPA,和接下来的指令效果是相同的,只是前者更加方便。

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:使用PPA并不会修改原有的sources.list文件,而是在/etc/apt/sources.d目录下创建两个文件。

后缀’list’的文件中是添加该repository的指令。后缀’save’的文件是用来备份的。

3. 为什么用PPA?而不用DEB?

DEB package可以使用图形界面进行安装,但是不能保证sudo apt update && sudo apt upgrade能更新该软件。因为更新软件是根据sources.list中的项进行更新。但有些开发者的安装包会自动加入sources.list(e.g. Google Chrome);也有得下载新的DEB package的软件(e.g. Oracle Virtual Box).

4. 使用PPA是否安全?

这是一个主观的问题,大多数PPA是由第三方开发者提供的,并没有统一的保证。但PPA在Ubuntu中非常常见(比如chrome就能使用PPA进行安装),事实上据作者所说,也没有发生通过PPA攻击系统的事件。

PPA分为官方和非官方两种,官方的就是开发者开发了软件,并制作了PPA;非官方就是非开发者制作的PPA,例如:有人得到了该软件的源码,在源码上制作PPA。官方的基本不用顾虑安全性。

5. 删除PPA

Settings > Software & Updates > Other Software中可以看到,选中的PPA链接。若取消选中,/etc/apt/sources.list.d则会注释该条目。若选择Remove,/etc/apt/sources.list.d中则会删除该条目。

在这里插入图片描述

其他知识

1.新的Ubuntu版本每六个月发布一次。
2.Focal Fossa是Ubuntu20.04的代号。

参考:

Logo

更多推荐