我应该有多担心自动包管理器机制会删除我使用的包?

我应该有多担心自动包管理器机制会删除我使用的包?

当我使用打包工具时,它会“提醒”我使用自动移除删除不再需要的软件包。但是当我查看列表时,我看到了我想保留的软件包。

$ sudo apt-get install gnome-tweak-tool
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gnome-tweak-tool is already the newest version.
The following packages were automatically installed and are no longer required:
  ekiga libopal3.10.2 gnome-backgrounds gtali glchess gnome-games cheese gdebi
  gnobots2 gnome-icon-theme-extras libcheese-gtk20 libcheese1 gdebi-core
  libcapi20-3 gnibbles gnuchess-book libpt2.10.2 libcluttergesture-0.0.2-0
  gnotski gir1.2-gucharmap-2.90 libclutter-imcontext-0.1-0 libspandsp2
  cheese-common sound-juicer iagno glines libmx-1.0-2 libfolks-eds25
  gnome-contacts gedit-plugins liferea gnotravex gnect quadrapassel
  liferea-data gnuchess gnome-video-effects
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

例如,在上面的列表中,gnuchess 和 gnuchess-book 被识别。我不希望它们被删除。

问题:这些元软件包我不需要(使用 apt)来防止被删除吗?我会失去玩 glchess 的能力吗?

注意:我在命令行中使用了 gnome-tweak-tool 作为示例,因为我知道它已经安装好了。这与我的问题无关。

答案1

你不需要偏执,你只需要阅读并理解它apt-get告诉你的内容。显然,如果你删除glchess,你将失去玩游戏的能力glchess

在某个阶段,你一定删除了一个包(可能是元包),这取决于您看到的部分或全部包。

要确定这可能是哪个元包,您可以使用apt-rdepends。此工具可以查找“反向依赖项”,即依赖于给定包的包。

例如对于包gnome-backgrounds

$ apt-rdepends -r gnome-backgrounds
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gnome-backgrounds
  Reverse Depends: gnome-core (>= 1:3.0+1ubuntu1)
gnome-core
  Reverse Depends: gnome (= 1:3.0+1ubuntu1)
gnome
  Reverse Depends: gnome-desktop-environment (>= 1:3.0+1ubuntu1)
gnome-desktop-environment

这表明,gnome-backgrounds单个包依赖于 ,gnome-core而 又依赖于gnome, 又依赖于gnome-desktop-environment没有其他包依赖于 。

现在您可以了解这些包:

$ aptitude show gnome-core gnome gnome-desktop-environment

您将看到这些都是元包,并且您的系统上至少有一个已被删除。然后您可以:

  • 在本例中,尝试使用apt-get install“最低”依赖项gnome-core。但是,这可能会引入您实际上不想安装的其他软件包(阅读 apt-get 的内容,不要只是按回车键)。
  • 如果您不需要元软件包安装的所有内容,而想要保留所有软件包,只需运行aptitude keep-all。这会将未完成的软件包标记为“已安装”,并apt-get停止提醒您有关它们的信息。
  • 如果您只需要部分软件包,您可以apt-get install在运行之前删除它们apt-get autoremove。您必须阅读软件包描述才能决定需要哪些软件包。

我认为这里的主要观点是,它apt-get只是一个工具。它不知道你真的它会按照你的指令执行。因此你应该绝不盲目地相信它会做“正确的事情”,因为这通常与您告诉它做的事情不一样!在运行命令时牢记这一点尤为重要sudo,因为它很容易对您的系统造成灾难性的破坏。

相关内容