当我使用打包工具时,它会“提醒”我使用自动移除删除不再需要的软件包。但是当我查看列表时,我看到了我想保留的软件包。
$ 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
,因为它很容易对您的系统造成灾难性的破坏。