Title Text:dpkg: error processing package (–purge): subprocess pre-removal script returned error exit 163: OH_GOD_THEYRE_INSIDE_MY_CLOTHES
Origin:https://xkcd.com/797/
https://www.explainxkcd.com/wiki/index.php/797:_debian-main
Debian是一个Linux发行版,最引人注目的是引入APT(高级打包工具)。 APT是一个用作Linux系统的自动通用软件安装程序的工具;所有人要做的就是告诉它他们想要安装什么软件包,程序会自动获取软件及其所有依赖项(程序所依赖的其他软件包,例如用于处理ZIP存档的库)。中央存储库。它还会通过自动检查软件包的存储库版本是否高于当前安装的版本来自动处理升级,它甚至可以处理多个存储库的使用以及它们之间的链接;例如,如果一块软件被认为值得包含在Debian的主存储库中,但作为一个稳定版本,软件开发人员可以提供自己的存储库,为想要它的用户提供更实验性的版本,并且一旦添加了该存储库对于APT的源列表,APT将自动意识到它应该使用实验版本,因为它的版本高于主存储库的版本。虽然这不是第一个轻松安装Linux的软件包管理系统(荣誉归功于RPM),但它是第一个将在线安装和升级无缝集成到组合中的软件包。
Debian的主存储库debian-main默认包含在所有Debian安装中。这就是你可以称之为Debian的“正典”,只包含那些已经得到官方Debian开发人员批准的软件包。因此,在debian-main上获得一个包意味着它在理论上符合质量标准。
然而,在这种情况下,Debian开发人员似乎没有注意到该软件包的一个依赖项是“蝗虫”。蝗虫是真正的昆虫,是几种蚱蜢物种的迁徙形式,它们以极快的速度繁殖,吞噬和吞食它们遇到的所有绿色植物物质而闻名,导致作物破坏(有些人认为这是瘟疫)。在世界的某些地方,它们也被认为是美味佳肴。 Cueball可能并不欣赏这一点,因为他们爬过他的身体寻找食物,显然是由APT自发产生的,因为它看到它需要“蝗虫”来安装包装。
标题文本是来自dpkg的错误行,该程序用于安装/删除APT包。每个包都包含几个脚本(尽管其中一些可能是空的),这些脚本在与该包相关的各种事件上运行;这些用于执行程序包所需的任何设置/清理任务。此行是一个错误行,表示其中一个脚本失败。相关部分是:
错误处理包(–purge): – purge是从系统中完全清除包的选项。这意味着程序本身,所有相关数据文件和所有配置文件都将从系统中删除。因此,用户试图从系统中完全移除蝗虫而不留痕迹。
子进程预删除脚本:预删除脚本是在实际删除一个软件之前运行的代码。大多数情况下,这允许长时间运行的软件(如Web服务器)在删除任何内容之前自行停止,以避免损坏硬盘。这意味着错误发生在计算机准备摆脱蝗虫的时候。
返回错误退出163:“返回错误”意味着它所说的,脚本返回错误。 “退出”表示该错误是调用具有非零值的exit()函数的结果,特别是值163.除了向用户或其他应用程序表示理解代码之外,确切的值没有实际意义。手段;除了检查值是否为0(这意味着没有错误)之外,dpkg和Linux内核本身都不会特别处理任何退出值。
OH_GOD_THEYRE_INSIDE_MY_CLOTHES:这是与错误一起返回的消息。这似乎是程序员的一个信息,有点像伪造的“帮助!我被困在……工厂”的都市神话。由于蝗虫,程序员无法编写正常运行的预删除脚本,并且正在通过错误消息寻求帮助。