当我在Ubuntu 17.04机器上运行apt-get upgrade时,有时它会自己启动Dwarf Fortress。

它已经发生了至少两次,所以可能不只是一次。另外,在我手动退出矮人要塞之前,apt-get upgrade的执行似乎已暂停,因此很可能不是当时运行的其他原因引起的。

当时的控制台说Unpacking xxx. xxx的名称为mysql。但是我不知道是哪个软件包,就像今天一样,apt-get upgrade升级了很多与mysql相关的软件包。

我想知道会发生什么以及如何阻止它发生。

评论

因此,您是说每当您在终端中运行apt-get升级时,游戏便会开始?

@MichaelBay并非每次都升级,而是每次都升级。而且我无法测试它是否总是发生,因为现在没有要更新的软件包。

这个DF Hack很长,我放弃了一部分,但也许对您有用。

reddit.com/r/Ubuntu/comments/6tomtk / ...

#1 楼

面对这样一个奇怪的问题,当然不能肯定地说-但是如果我的初衷不正确,我会戴上帽子。 :)

我能想到的唯一方法是如何链接这种无关的东西:
安装(很好,提取)Dwarf Fortress之后,而不是每次都转到目录并使用./df运行它,您希望能够从任何地方运行它,就像任何旧命令一样。您将Dwarf Fortress目录添加到了系统目录之前的$PATH,这可能是偶然的,也许是因为您注意到它在其他情况下不起作用,而只是获取了有关文件系统的信息。

Dwarf Fortress的可执行文件名为df,它也是用于显示文件系统的磁盘空间使用情况并引起冲突的系统工具的名称。通过执行以下操作,使当您键入df时,矮人要塞启动,您已经使系统工具蒙上了阴影,因此,当脚本想要-假设-检查您是否有足够的可用空间来解压缩档案时,而不是调用df-系统工具-它将启动矮人要塞。在退出“矮人要塞”之后,这个可怜的小脚本会很困惑为什么没有提供它所要求的磁盘使用信息。

无论如何,感谢您的笑声,这一定是我见过的最有趣的问题之一就是StackExchange。 :)

评论


评论不作进一步讨论;此对话已移至聊天。

–托马斯·沃德♦
17年8月19日在0:02

#2 楼

我的直觉与Aleksi的直觉相似,但我怀疑您可能已将Dwarf Fortress二进制文件移至/usr/local/bin/usr/bin(希望不是/bin)。如果没有显示sudo which df,请尝试将/bin/df输出中指定的文件移动到which(以后可以通过运行/usr/games/来运行游戏)。 Apt之后应再次工作。

= q =====

否则,在/usr/games/df表示sudo which df的情况下,请尝试运行/bin/df。如果游戏已将其覆盖,则需要如上所述移动游戏二进制文件,然后移动/bin/df

如果由于缺少sudo apt-get install --reinstall coreutils而失败,则可能需要采取更严厉的措施(例如,创建伪脚本以临时替换df,或手动下载该软件包并从中提取df二进制文件。)。

评论


具有讽刺意味的是,发问者对接受的答案的评论证实了这是发问者所做的事情,只是使用了符号链接,而不是像在该回答中那样修改PATH。

– JdeBP
17年8月16日在11:42

@JdeBP:并非如此,主要的问题是命名冲突-即使我自己这么说,我认为这是次要的。我在其他答案的注释中也提到了这一点,以回应提出与该答案相同的评论,但我最初确实考虑将其作为另一种可能性,直到我意识到移动/复制二进制文件(而不是符号链接(我没有想到))由于矮人要塞的工作方式而行不通。 (即,它只是解压缩而未安装-如果不在同一目录中,则找不到自己的数据文件)

– Aleksi Torhamo
17年8月16日在13:38

更好的命令可能是sudo,即-a df,以查看路径中找到的所有df命令。

–道格·亨德森(Doug Henderson)
17年8月16日在15:09

等待2017年,我们使用apt-get吗?

– EKons
17年8月18日在9:37

@AleksiTorhamo需要说明的是,apt会覆盖apt会看到的PATH变量(/ etc / sudoers具有secure_path变量,以防止用户修改PATH时出现安全问题)。我同意,关键的见解是认识到矮人要塞二进制文件在PATH解析中处于优先地位。

–maccam94
18年1月18日在2:50