当前位置: 首页 > 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。

相关文章:

  • 计算机操作系统(五) 前趋图和程序执行与进程的描述(附带图谱表格更好对比理解))
  • MySQL 死锁问题分析与解决方案
  • 机房布局和布线的最佳实践:如何打造高效、安全的机房环境
  • fopen和open 等区别是什么?文件描述符与文件描述指针区别
  • 如何防御大模型中的 Prompt 攻击?
  • 跨境电商独立站B端站与C端站有什么不同
  • stress-ng命令详解
  • 在线文档导出为word/pdf/png
  • 瑞萨RX23E系列开发(二)建立工程
  • 【VUE】day06 动态组件 插槽 自定义指令 ESlint
  • 用 pytorch 从零开始创建大语言模型(五):预训练无标注数据
  • 【网络层协议】NAT技术内网穿透
  • 复变函数摘记2
  • 蓝桥备赛指南(8):01背包模型
  • WPS宏开发手册——JSA语法
  • 在Linux、Windows系统上安装开源InfluxDB——InfluxDB OSS v2并设置开机自启的保姆级图文教程
  • TCP协议原理
  • CentOS7 离线下载安装 GitLab CE
  • ubuntu设置开机自动运行应用
  • UE5摄像机震屏/晃动效果
  • 肖钢:一季度证券业金融科技投资强度在金融各子行业中居首
  • 重庆城市轨道交通拟听证调价:公布两套票价方案,正征求意见
  • 外媒:哈马斯一名高级指挥官尸体被发现,系辛瓦尔弟弟
  • 常州新型碳材料集群产值近二千亿,请看《浪尖周报》第24期
  • 泽连斯基:俄代表团级别低,没人能做决定
  • 中国情怀:时代记录与家国镜相|澎湃·镜相第三届非虚构写作大赛征稿启事