摘要:
  Ubuntu中的PPA源是什么?

【说明】所用环境VMwareWorkstation16.0 + Ubuntu18.04.6

一、存储库

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

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

  其实简单说,存储库其实就是托管在任意服务器上的软件包的集合。按照我自己的理解,就是像GitHub一个仓库一样,里边放了软件的各种相关信息,可以通过该仓库的地址来找到这个软件的安装包,进行安装和管理。当系统知道了这个软件安装包的地址的时候就可以通过命令来进行安装和更新,这些地址都存在于Ubuntu系统下的/etc/apt/sources.list文件下,如下图所示。

image-20220109155924182

  当我们执行sudo apt-get update命令时,系统将使用 APT 工具来检查软件的存储库并将软件及其版本信息存储在缓存中。当我们使用 sudo apt install package_name 安装软件时,系统就会使用该信息从存储实际软件的 URL获取该软件包。如果存储库中没有关于所要安装的某个个软件包的信息,那么终端中将返回以下错误:

1
E: Unable to locate package

二、PPA

1.PPA是什么?

  PPA 全称为 Personal Package Archives(个人软件包档案)个人两个字也表明了这是开发人员自己个人的东西,可能并未得到分发的正式认可。

  PPA其实是 Ubuntu Launchpad 网站提供的一项服务,当然不仅限于Launchpad。它允许个人用户上传软件源代码,通过 Launchpad 进行编译并发布为二进制软件包,作为 apt新立得源供其他用户下载和更新。在Launchpad网站上的每一个用户和团队都可以拥有一个或多个PPA。 通常 PPA 源里的软件是官方源里没有的,或者是最新版本的软件。相对于通过 Deb 包安装来说,使用 PPA 的好处是,一旦软件有更新,通过相应的命令就可以直接升级到新版本。

launchpad官网 https://launchpad.net/

PPA和存储库关系】

  • 存储库包含了包,是托管在任意服务器上的软件包的集合
  • PPA是包,也是软件的集合,也可以理解为托管在Launchpad服务器上的软件包,不过PPA是一种特殊的存储库,就像一个正方形是一种特殊的矩形。用于通过Launchpad或类似应用程序上载要构建和发布为APT存储库的源包,主要是由非Ubuntu官方开发人员维护。

2.为什么要使用PPA

  Ubuntu 对系统中的软件进行管理,更重要的是控制我们在系统上获得哪个版本的软件。但开发人员发布了软件的新版本的时候,Ubuntu 不会立即提供该新版本的软件。需要一个步骤来检查此新版本的软件是否与系统兼容,从而可以确保系统的稳定性。

  但这也意味着它需要经过几周或者更长时间才能在 Ubuntu 上可用,在某些情况下,这可能需要几个月的时间。不是每个人都想等待那么长时间才能获得他们最喜欢的软件的新版本。

  类似地,假设有人开发了一款软件,并希望 Ubuntu 将该软件包含在官方软件仓库中。在 Ubuntu 做出决定并将其包含在官方存软件仓库之前,还需要几个月的时间。在 beta 测试阶段。即使官方软件仓库中提供了稳定版本的软件,软件开发人员也可能希望某些用户能够提前测试他们即将发布的新的版本。那他们是如何使用户对即将发布的新版本进行安装体验呢?

  PPA的出现就很好的解决了这个问题。

2.如何使用PPA

  • 添加PPA源到系统
1
sudo add-apt-repository <PPA_information> # PPA_information格式ppa:user/ppa-name

【说明】

  当我们使用PPA的时候,它不会更改原始的 sources.list 文件,它会在/etc/apt/sources.d 目录中创建两个文件,一个 .list 文件和一个带有 .save 后缀的备份文件。

image-20220110104042873

这是一种安全措施,可以确保添加的 PPA 不会和原始的 sources.list 文件弄混,它还有助于移除 PPA

  • 更新软件包列表
1
sudo apt-get update
  • 安装软件
1
sudo apt-get install <package_name_in_PPA>
  • 删除PPA
1
sudo add-apt-repository -r <PPA_information> # PPA_information格式ppa:user/ppa-name

3.PPA安装包管理

  • 安装synaptic包管理工具

  Ubuntu 软件中心无法移除 PPA 安装的软件包,我们必须使用具有更多高级功能的 Synaptic 包管理器,中文名叫新立得包管理器。我们可以从软件中心安装或者使用以下命令:

1
sudo apt-get install synaptic
  • 查看PPA

  【启动软件】→【源自(Origin)】

image-20220110104833182

3.使用PPA的实例说明

  • Peek
1
2
3
sudo add-apt-repository ppa:peek-developers/stable
sudo apt-get update
sudo apt-get install peek
  • Vim
1
2
3
sudo add-apt-repository ppa:jonathonf/vim # ubuntu-tweak官方源
sudo apt update # 更新源
sudo apt install vim # 安装vim

【参考文章】