矮人要塞在apt-get升级期间启动


322

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

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

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

我想知道发生了什么以及如何阻止它发生。感谢您的想法。


所以您是说每当您apt-get upgrade在终端机中运行时,游戏就会开始吗?

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

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

Answers:


550

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

我能想到的唯一方法是如何链接这些不相关的内容:安装(提取)Dwarf Fortress之后,而不是每次都转到目录并使用运行它./df,您希望能够从像任何旧命令一样在任何地方。您添加的矮人要塞目录到$PATH之前的系统目录,也许是偶然,也许是因为你注意到它没有工作,否则,你会而不只是获得有关你的文件系统的信息。

Dwarf Fortress的可执行文件名为df,这也是用于显示文件系统的磁盘空间使用情况并造成冲突的系统工具的名称。通过使其输入时使dfDwarf Fortress启动,您已经遮蔽了系统工具,因此,当脚本想要-假设-检查您是否有足够的可用空间来解压缩档案而不是调用df-系统工具时, -它将启动矮人要塞。在您退出了《矮人要塞》之后,这个可怜的小脚本会很困惑为什么没有提供所需的磁盘使用信息。

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


评论不作进一步讨论;此对话已转移至聊天
托马斯·沃德

64

我的直觉与Aleksi的直觉相似,但我怀疑您可能已将Dwarf Fortress二进制文件移至/usr/local/bin/usr/bin(希望不会/bin)。

尝试sudo which df在您的终端上运行。如果未显示/bin/df,请尝试将which输出中指定的文件移动到/usr/games/(将来可以通过运行来运行游戏/usr/games/df)。此后,公寓应再次工作。

======

否则,在方案中sudo which df/bin/df,尝试运行/bin/df。如果游戏已将其覆盖,则需要如上所述移动游戏二进制文件和sudo apt-get install --reinstall coreutils

如果由于df丢失而导致失败,则可能需要采取更严格的措施(例如创建伪脚本以临时替换df,或手动下载软件包并从中提取df二进制文件)。


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

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

2
更好的命令可能是sudo which -a df查看df路径中找到的所有命令。
Doug Henderson

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

@AleksiTorhamo澄清一下,apt会看到的PATH变量被sudo命令覆盖(/etc/sudoers有一个secure_path变量可以防止用户修改PATH时出现安全问题)。我同意,关键的见解是认识到矮人要塞二进制文件在PATH解析中处于优先地位。
maccam94 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.