自动解除限制?

有没有可能执行 "sudo apt-get autoremove" 命令而不删除正在使用的软件包?
我执行了一个 autoremove 命令,它询问我是否要删除这些软件包。由于软件包很多,我没有逐个检查。总共有163MB。在删除后,我发现我的桌面图标发生了变化。我不希望这种情况发生,因为我正在使用这些图标。
通过以下命令,我从日志文件中恢复了这些软件包。
echo '#!/bin/bash' > restore
echo sudo apt-get install `grep Remove /var/log/apt/history.log | tail -1 | sed -e 's|Remove: ||g' -e 's|([^)]*)||g' -e 's|:[^ ]* ||g' -e 's|,||g'` >> restore
chmod +x restore 
./restore

感谢https://serverfault.com/questions/380856/how-to-undo-apt-get-remove的帮助。
  1. 它这样做有什么原因,或者有没有其他方法可以实现自动删除的属性?
  2. 有没有办法选择autoremove不删除的软件包?
提前感谢所有的回复。
2个回答

将软件包标记为手动安装:
sudo apt-mark manual <package_name>

man apt-mark
manual
    manual is used to mark a package as being manually installed, which
    will prevent the package from being automatically removed if no
    other packages depend on it.

在您的恢复开始后,所有通过恢复安装的软件包都被设置为"手动"状态。


在OP重新安装它们之后,它们已经变成了手动操作。 - Pilot6
@Pilot6 我知道。但那不是问题的关键。无论如何,我会加上这个事实。谢谢。 :) - A.B.
我猜那就是我必须在20行包裹上使用的选项了 :-| - Jean

自动删除不会删除系统中可以/应该使用的软件包。
它只会删除先前已被删除其他软件包依赖项安装的孤立软件包。
因此,您可以放心运行此命令并同意删除它建议的所有内容。
在您的情况下,您可能删除了一些引用其他有用软件包的主要软件包。
如果您重新安装它们,它们将永远不会受到自动删除的影响。

没错,但是我不想浏览长长的软件包列表来找到那些需要重新安装的。 - Jean
一般建议是如果你不确定的话,不要删除任何东西。或者永远不要运行自动删除命令。我认为没有其他办法。 - Pilot6