什么是 AppStream?为什么要安装它?它的作用是什么?

什么是 AppStream?为什么要安装它?它的作用是什么?

关于 AppStream 的另一个问题不管怎样,它关注的是 AppStream 中的一个特定错误,但这让我意识到我不知道这到底是什么

man appstreamcli(该应用程序让 CPU 不堪重负)抛出一些技术术语来解释这种混乱:

appstreamcli 是一个小型辅助工具,用于处理 AppStream 元数据并从命令行访问 AppStream 组件索引。AppStream 组件索引包含适用于您的发行版的所有可用软件组件的列表,与其软件包名称匹配。它是使用您的分销商提供的 AppStream XML 或 Debian DEP-11 数据生成的。

那么...它到底有什么用呢?所有桌面(及其相关的包管理器)都使用它吗?

我实际上的意思是:当我用牙齿把它扯下来时会破坏什么?

答案1

AppStream 项目页面添加了一些行话,但继续说:

它通过提供以应用程序为中心的软件包存储库视图所需的元数据,为构建以软件为中心的应用程序奠定了基础。AppStream 还提供了统一软件元数据数据库、屏幕截图服务等规范,以及为 (Linux) 发行版创建用户友好的应用程序中心所需的各种其他内容。

因此,这基本上就是新软件中心用来获取数据的方法,而不是直接从 Apt 那里获取数据appstreamcli refresh(人们担心 Apt 会占用所有 CPU)。Apt 之后运行的进程会apt update重新生成自己的数据。正如问题中提到的,这里似乎有一个错误。

您可以根据反向依赖关系查看需要它的内容:

$ apt rdepends appstream
appstream
Reverse Depends:
  Breaks: libapt-pkg5.0 (<< 0.9.0-3~)
  Depends: plasma-discover
  Depends: plasma-discover
  Depends: gnome-software
  Depends: plasma-discover
  Depends: isenkram-cli
  Recommends: check-all-the-things
  Depends: appstream-index (>= 0.9.4-1)
  Recommends: libappstreamqt1 (>= 0.9.4-1)
  Suggests: appstream-doc
  Depends: gnome-software

因此,从基础层面来回答“什么会破坏[...]?”,^^ 那些东西。

Gnome 和 KDE 的软件工具目前都依赖于它。将来可能会有更多。大多数这些间接包管理器只是“ recommends”,因此如果您只使用apt或仅直接使用 Apt 包库的工具(太多了,无法列出),删除它而不删除整个桌面环境

您可以使用以下命令模拟删除apt -s remove appstream

$ apt -s remove appstream
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.5-2.dmz.4-liquorix-amd64 linux-headers-4.5-3.dmz.1-liquorix-amd64 linux-image-4.5-2.dmz.4-liquorix-amd64
  linux-image-4.5-3.dmz.1-liquorix-amd64
Use 'apt autoremove' to remove them.
The following packages will be REMOVED
  appstream muon-discover plasma-discover
0 to upgrade, 0 to newly install, 3 to remove and 80 not to upgrade.
Remv muon-discover [4:5.6.4+p16.04+git20160517.1518-0]
Remv plasma-discover [5.6.4+p16.04+git20160517.1518-0]
Remv appstream [0.9.4-1]

这是在 KDE 下,所以不要对此有任何假设。它看起来足够安全。


更新:

在 Kubuntu 18.04 中运行apt -s remove appstream略有不同:

Remv plasma-discover [5.12.6-0ubuntu0.1]
Remv apt-config-icons-large-hidpi [0.12.0-3ubuntu1]
Remv apt-config-icons-large [0.12.0-3ubuntu1]
Remv apt-config-icons [0.12.0-3ubuntu1] [apt-config-icons-hidpi:amd64 ]
Remv appstream [0.12.0-3ubuntu1] [apt-config-icons-hidpi:amd64 ]
Remv apt-config-icons-hidpi [0.12.0-3ubuntu1]

答案2

我已DefaultEnabled "false";在部分中添加了deb::DEP-11(参见/etc/apt/apt.conf.d/50appstream)以避免下载 DEP-11 元数据。

为了禁用所有不必要的 DEP-11 元数据下载,尤其是图标下载,我已明确设置或更改为DefaultEnabled "false";(参见文件和60apper部分)。60icons*deb::DEP-11-icons*

Appstream 缓存已刷新并存储在这里,我的系统上的总大小为 19MiB:

root# LC_ALL=C du -s -h /var/cache/app-info
19M     /var/cache/app-info

更新:今天的一些数字apt-get update:下载大小从通常约 50MiB 减少到 1.5MiB。

UPDATE-2:显示所有DEP-11APT 配置:root# apt-config dump | grep DEP-11

注 1:涉及软件包appstreamapper和的 APT 配置apt-config-icons。注 2:我不使用基于 GUI 的软件包管理器(如plasma-discover和)gnome-software来升级需要刷新 DEP-11 元数据和图标的软件。

相关内容