当前位置: 首页 > news >正文

银河麒麟桌面版包管理器(五)

以下内容摘自《银河麒麟操作系统进阶应用》一书

PPA

PPA(Personal Package Archives,个人软件仓库)是Canonical公司为Ubuntu操作系统及其衍生版本用户提供的专属服务。该服务允许个人用户和开发者上传Ubuntu软件包,其他用户可通过简易命令添加和安装这些软件包。PPA不仅为开发者提供了发布软件的平台,更为用户打开了获取官方Ubuntu仓库以外的软件的大门。自2009年推出以来,PPA助力Ubuntu及其衍生版软件实现了创新与快速迭代。

使用PPA的主要优势如下所示。

  • 获取最新软件版本:Ubuntu的官方仓库可能不总是提供软件的最新版本。PPA允许用户安装最新的软件版本,甚至是预发布版本,使他们能够体验最新的功能。
  • 简化小型项目或独立开发者的发布流程:对于小型项目或独立开发者而言,将软件纳入Ubuntu的官方仓库可能是一个漫长且复杂的过程。PPA为这些开发者提供了一个直接向用户分发软件的渠道。
  • 促进软件开发和测试:开发者和测试人员可以利用PPA来分发和测试新版本的软件,这有助于在软件最终发布前发现并修复潜在的错误。

PPA主要托管在Canonical公司的Launchpad.net网站上。每个PPA都有一个唯一的URL标识,格式通常为ppa:<用户名>/<仓库名>,这使用户能够轻松地找到并添加所需的软件源。

使用PPA

要使用PPA仓库,首先需要用命令add-apt-repository添加某个软件存储库到系统的软件源列表中,操作系统并未内置add-apt-repository命令,需要额外安装,安装命令如下:

sudo apt install --assume-yes software-properties-common

add-apt-repository命令的基本语法非常直观,主要包括添加软件源、移除软件源和管理密钥的功能。

  • 添加PPA存储库:

sudo add-apt-repository ppa:<用户名>/<仓库名>

  • 删除PPA存储库:

sudo add-apt-repository --remove ppa:user/repository

  • 添加非PPA官方的第三方存储库:

sudo add-apt-repository 'deb [arch=amd64] http://repository.***/ubuntu focal main'

添加某个PPA仓库到系统的软件源列表后,首先运行sudo apt update更新系统的软件源,然后就可以用apt、aptitude等APT前端管理该软件了。PPA仓库中的软件跟官方源里面的软件一样,可以对其安装、升级、卸载等。

通常第三方存储库使用GPG密钥来验证软件包的真实性,add-apt-repository会自动尝试添加这些密钥,但有时也需要手动添加。若有密钥相关报错信息,则可参考3.1.3.4节进行处置。

银河麒麟使用PPA

在银河麒麟桌面版上使用命令add-apt-repository添加PPA时,可能会出现下面的独有错误信息:

aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Kylin/kylin

这是因为虽然银河麒麟桌面版是Ubuntu的衍生版,但其使用的发行版名称、版本号等信息不在PPA支持的操作系统列表里。而命令add-apt-repository在添加PPA时,会进行版本检查,所以会报如上的错误。

这时可以手动添加 PPA 仓库,这样就可以跳过检查操作系统版本这一步。下面以添加AppImageLauncher的PPA仓库为例:

(1)在PPA官方网站Launchpad.net上查看该仓库对应的具体源信息。

(2)在操作系统下拉列表中选择“Focal (20.04)”,因为银河麒麟V10 SP1是基于这个版本开发的。后续其他版本以此类推。

(3)在/etc/apt/sources.list.d/目录下新建一个以.list为后缀的文件,例如ppa.list,将图3-22中的软件源复制进去。

(4)更新系统软件源:sudo apt update。

(5)安装相关软件:sudo apt install appimagelauncher。


http://www.mrgr.cn/news/95627.html

相关文章:

  • 如何解决微服务调用链性能问题(优化 JVM 配置,降低 Full GC 频率)
  • 虚幻基础:UI
  • 论文阅读笔记:Denoising Diffusion Probabilistic Models (3)
  • 二叉树的学习
  • PowerShell 终端环境自动化配置
  • Ubuntu修改Swap交换空间大小
  • 长短期记忆网络:从理论到创新应用的深度剖析
  • java八股文之并发编程
  • springboot自定义工具
  • Pytest的Fixture使用
  • 施耐德 Unity Pro 项目配置
  • 综合章节:游戏网络化、模组化与深度扩展
  • 红宝书第十一讲:超易懂版「ES6类与继承」零基础教程:用现实例子+图解实现
  • React 中useMemo和useCallback Hook 的作用,在什么场景下使用它们?
  • 未初始化引用检测工具UBITech
  • 架构思维:如何设计一个支持海量数据存储的高扩展性架构
  • 快速入手:Nacos融合SpringCloud成为注册配置中心
  • kotlin知识体系(三) : Android Kotlin 中的函数式编程实践指南
  • 通往自主智能之路:探索自我成长的AI
  • UDP套接字编程(代码)