Personal Package Archive, 意思是个人包档案。PPA可以提供新版本的软件以及在Linux官方库中没有的软件。在正式介绍PPA之前,先介绍一下repository,PPA就是一种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
在没有PPA时,当一个软件开发者准备发布新开发的软件时,Ubuntu官方并不会直接让他发布出来,而是会进行一些系统兼容性的测试(因为软件或新版本的软件可能无法在原有系统上使用),可能需要几个月的时间,这导致了软件无法及时发布给用户。用户不能得到新的软件,那么开发者就无法进行beta测试(在软件开发中,分为alpha测试和beta测试,alpha测试面向开发团体内部,beta测试面向感兴趣的用户),在正式版本前,也无法对软件做好更好的优化。
所以,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’的文件是用来备份的。
DEB package可以使用图形界面进行安装,但是不能保证sudo apt update && sudo apt upgrade能更新该软件。因为更新软件是根据sources.list中的项进行更新。但有些开发者的安装包会自动加入sources.list(e.g. Google Chrome);也有得下载新的DEB package的软件(e.g. Oracle Virtual Box).
这是一个主观的问题,大多数PPA是由第三方开发者提供的,并没有统一的保证。但PPA在Ubuntu中非常常见(比如chrome就能使用PPA进行安装),事实上据作者所说,也没有发生通过PPA攻击系统的事件。
PPA分为官方和非官方两种,官方的就是开发者开发了软件,并制作了PPA;非官方就是非开发者制作的PPA,例如:有人得到了该软件的源码,在源码上制作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的代号。
参考:
Using PPA in Ubuntu Linux [Complete Guide]