AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1111491
Accepted
tech4him
tech4him
Asked: 2019-01-21 13:38:55 +0800 CST2019-01-21 13:38:55 +0800 CST 2019-01-21 13:38:55 +0800 CST

为什么删除“元包”不会删除它安装的依赖项?

  • 772

如果我尝试卸载元包,apt实际上并没有删除元包的依赖项,只有“包装器”本身。即使在运行时apt autoremove,也不会列出这些子包。我发现autoremove删除大多数普通包的依赖项令人困惑,但元包并不多。为什么是这样?

metapackages deb
  • 2 2 个回答
  • 2038 Views

2 个回答

  • Voted
  1. Best Answer
    Guss
    2019-01-21T13:47:20+08:002019-01-21T13:47:20+08:00

    元包在任何方面都不是魔法:“元包”的概念不是 APT 系统的一部分——元包只是一个没有实际内容的包,只是依赖项。因此删除它们与删除包含实际内容的包具有相同的效果,该包还依赖于其他一些东西,例如 Web 服务器应用程序模块将需要 Web 服务器,但是当您删除它时 - Web 服务器仍应保持安装状态。

    话虽如此,APT 会跟踪自动安装了哪些包,因为另一个包请求了它们(例如请求“实际”包的元包,或需要 Web 服务器的 Web 服务器应用程序模块),并且一旦您删除了需要的包 APT会建议您运行apt autoremove以摆脱此类自动安装的软件包。

    在 Ubuntu 操作系统中使用“元包”的主要问题是它们依赖于很多包,本质上是通过一次安装来安装大量软件。当安装这么多包时,尤其是那些非常紧密联系在一起的包时——你会得到很多交叉依赖:元包需要包A,对你来说,B还依赖于并且(可能令人惊讶)也依赖于. 因此,如果您删除元包,只会被删除。CABBAC

    作为一个具体的例子,让我们考虑一下 LXDE 元包lubuntu-desktop:

    • lubuntu-desktop需要lxqt-core
    • lxqt-core需要lxqt-panel
    • lxqt-panel取决于lxqt-core。实际上,这种依赖关系不是Requires,而是Recommends- 但这足以让 apt 决定不自动删除任何一个包。

    以下答案有更多详细信息:

    • https://unix.stackexchange.com/a/447957/4323
    • https://unix.stackexchange.com/a/265186/4323
    • 5
  2. user535733
    2019-01-21T22:59:56+08:002019-01-21T22:59:56+08:00

    由 Ubuntu 的ubiquity安装程序安装的所有软件包都带有 apt 标记的“手动”(而不是“自动”),这使得所有这些软件包都无法自动删除。

    当然,您仍然可以删除它们,只是不能自动删除它们。

    Ubuntu Server、Minimal Image 和 Cloud Image 安装程序不是基于 ubiquity 的,它们的软件包符合自动删除的条件。

    如果您不熟悉apt-marking,这只是 apt 如何跟踪管理员指定的依赖项('Manual'),以及作为依赖项引入的依赖项('Auto')。man apt-mark有关它的更多信息,请参阅。

    非标准 Ubiquity 行为的原因是为了保护您:人们以各种方式修改他们的桌面系统,包括需要删除元包的方式。大多数用户通常不打算删除他们的整个桌面,这样做出乎意料可能是一个相当重要的情感事件,因此 Ubuntu 开发人员做出了更改以保护用户免受他们自己(无意的)愚蠢的影响。毕竟,Ubuntu 也适用于新手和不熟练的用户。

    想要将他们的包修剪成他们实际使用的东西(我们都曾经尝试过)的人们会发现从最小图像开始并建立起来比对抗 apt-marking 减少要容易得多。

    • 2

相关问题

  • 如何创建具有不相交/替代依赖项的 Debian 软件包?

  • 使用 gdebi 而不是 Ubuntu 软件中心来安装 .deb 文件是否安全?

  • 什么是“rpm -V”的apt等价物(验证已安装的软件包)

  • 用于创建 Deb 包的图形工具

  • ubuntu-desktop 到底是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve