在删除软件包之前显示 README 或 WARNING 文本

在删除软件包之前显示 README 或 WARNING 文本

我的工作流程涉及与许多其他人共享的 Ubuntu 系统,其中一些人是 sudoers。一些 sudoers 在尝试安装新软件包时意外删除了软件包,这造成了混乱,无论是其他人需要的软件包还是他们自己需要的软件包。

我如何确保包管理器“锁定”包以防止删除,或者至少在删除包之前显示自定义警告消息以提醒 sudoer 有关用户的依赖关系?

答案1

我同意用户535733您应该培训具有 sudo 权限的用户,当他们不知道这些软件包的用途时,不要删除这些软件包。

然而,在较新版本的 apt(> 1.4 - 至少是 Ubuntu 17.04)中,你可以将包标记为“必需”或“重要”。在Debian 错误 #767891,一个补丁被接受,它允许你做类似的事情:

sudo apt-get -o pkgCacheGen::ForceEssential=gedit update

要将软件包标记为Essential(或Important) - 在此示例中为gedit软件包。对于基本软件包,apt 会显示一个更难以忽略的警告:

~ sudo apt-get remove bash
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED
  bash bash-completion lightdm ubuntu-desktop
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  bash
0 to upgrade, 0 to newly install, 4 to remove and 26 not to upgrade.
After this operation, 7,776 kB disk space will be freed.
You are about to do something potentially harmful
To continue type in the phrase ‘Yes, do as I say!’
 ?]

是的,您确实必须输入准确的短语,包括标点符号。

在 apt 1.4 之前,你可以使用以下命令安装虚拟包equivs或者类似的东西,标记为“必需”,并且取决于您想要显示警告的软件包。然后,任何删除这些软件包的尝试都将导致删除必需的虚拟软件包,并显示警告。

相关内容