PPA 完全指南,如何在 Ubuntu 系统中使用 PPA
如果你在使用 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 命令来安装它,就比如:
- sudo add-apt-repository ppa:dr-akulavich/lighttable
- sudo apt-get update
- 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时,相当于手动执行类似如下命令:
- 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 安装的呢?
找出通过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相关推荐
- linux卸载欧朋浏览器,如何在Ubuntu系统中安装和卸载Opera浏览器
以下内容教您如何在Ubuntu操作系统中安装Opera浏览器. 通常,可以通过以下方法安装不同的Opera版本. 下面将向您展示如何在Ubuntu中安装Opera 55版本的浏览器. 如果不需要,则可 ...
- ubuntu 命令卡住_如何在Ubuntu系统中重置root密码
IT服务圈儿 有温度.有态度的IT自媒体平台 经授权转自公众号:良许Linux(ID:liangxuxiansheng) 很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自 ...
- linux如何加辅助ip,如何在 Ubuntu 系统中添加一个辅助 IP 地址
Linux 管理员应该意识到这一点,因为这是一项例行任务.很多人想知道为什么我们需要在服务器中添加多个 IP 地址,以及为什么我们需要将它添加到单块网卡中?我说的对吗? 你可能也会有类似的问题:在 L ...
- linux 辅助ip地址到文本,技术|如何在 Ubuntu 系统中添加一个辅助 IP 地址
Linux 管理员应该意识到这一点,因为这是一项例行任务.很多人想知道为什么我们需要在服务器中添加多个 IP 地址,以及为什么我们需要将它添加到单块网卡中?我说的对吗? 你可能也会有类似的问题:在 L ...
- 如何在ubuntu系统中修改时区?
软硬件环境 ubuntu 18.04 64bit 简介 在ubuntu上,系统的时区可以在系统安装期间进行设置,同时也可以在之后的使用中更改.对于许多与系统相关的任务和流程,使用正确的时区非常重要.本 ...
- 如何在Ubuntu系统中安装搜狗输入法(亲测好用!!!)
刚玩Ubuntu的第一天就想装个输入法,在网上搜了好多教程,包括改错等等,终于整理出一篇比较实用的,适用于大众群体的安装方法(出错格式类似).下面我们进入安装教程.(原文参考自rocgale) 1.进 ...
- ubuntu 系统中如何截图
ubuntu 系统中如何截图 浏览:805 | 更新:2014-02-25 13:17 ubuntu 系统现在用的人还不是很多,那么如何在 ubuntu 系统中截图呢?今天小编根据平时使用 ubunt ...
- 在 Ubuntu Linux 中使用 PPA(完全指南)
译:在 Ubuntu Linux 中使用 PPA(完全指南) 作者: Abhishek Prakash 自由和开放源码软件的创造者.一个热心的 Linux 用户和开源推动者.从阿加莎·克里斯蒂和夏洛克 ...
- linux下如何安装自带编译器的codeblocks,在Ubuntu 16.04系统中使用PPA源安装Code Blocks的方法...
本文介绍在Ubuntu 16.04操作系统中使用PPA源安装Code Blocks的方法,可以先参考在Ubuntu系统中安装Code::Blocks的方法一文. 使用PPA源安装Code Blocks ...
最新文章
- 区块链从一夜暴富到一夜暴“负”的辛酸史
- 如何看待团队合作这件事?
- CVPR2021直播|点云补全的方法梳理及最新进展分享
- ZCF提出解决零确认交易安全问题新方案
- leetcode算法题--字符串相乘
- jquery 取对象数组下标_JQuery使用index方法获取Jquery对象数组下标的方法
- android listview remove 动画,给Android ListView添加删除item动画
- 使用Spring Security对RESTful服务进行身份验证
- 程序员编程艺术第十一章:最长公共子序列(LCS)问题
- htmlentities在mysql_PHP和mySQL:何时确切使用htmlentities?
- 遍历一个文件下的所有目录和文件
- 虚拟机linux搭建samba,搭建samba服务使在windows上使用虚拟机为linux
- mysql的两种存储方法_mysql的两种存储引擎
- mysql中select后接数字_MySQL SELECT用于从一组数字中排列一个数字
- php 零宽断言,正则表达式之零宽断言
- tmb100a linux,天猫魔盒TMB100E短接降级官方1.7版本
- Java实现的企业员工考勤管理系统
- linux怎么重新扫描磁盘,vmware linux添加新磁盘后刷新,重新扫描 SCSI 总线,在不重启虚拟机的情况下添加 SCSI 设备教程,vmwarescsi...
- 网络规划师学习-二层交换机工作原理和二层交换机为啥不能跨网段通信
- 用户/账户/账号的理解
热门文章
- COCO数据集简介与处理
- 计算机u盘插口关闭,电脑USB接口被禁用了,小编告诉你怎么开启
- nginx实现web应用跨域
- (深入.Net平台和C#编程)第五章.体检套餐管理项目.20170408
- 在Ubuntu 14.04上设置私有Docker Registry
- springboot所有配置文件中英文对照(全)
- 360死磕百度,360百科的优缺点分析
- jsp+servlet+mysql实现的CRM客户关系管理系统源码+运行教程
- php5携程,携程业务部门现场管理系统
- python-解析获取二维码内容