apt-get アップグレード中に Dwarf Fortress が起動する

apt-get アップグレード中に Dwarf Fortress が起動する

apt-get upgradeUbuntu 17.04マシンで実行すると、時々起動しますドワーフ要塞それ自体で。

すでに少なくとも 2 回発生しているので、おそらく 1 回限りのことではないと思われます。また、Dwarf Fortress を手動で終了するまで実行が一時apt-get upgrade停止されていたようで、その間に実行されていた他の何かが原因ではなかったと思われます。

当時のコンソールには、名前に何かがあるUnpacking xxx.場所が表示されていました。ただし、今日、 mysql 関連のパッケージが多数アップグレードされたため、どのパッケージが正確にあるのかはわかりません。xxxmysqlapt-get upgrade

何が起こるのか、そしてそれをどうやって防ぐのかを知りたいです。

答え1

これほど奇妙な質問では、もちろん確実に言うことは不可能ですが、最初の勘が正しくなかったら帽子を食べてもいいと思います。:)

このような無関係なものをリンクさせる唯一の方法は、次のとおりです。Dwarf Fortress をインストール (または解凍) した後、毎回ディレクトリに移動して で実行するのではなく./df、従来のコマンドのようにどこからでも実行できるようにしたいと考えました。Dwarf Fortress ディレクトリを に追加しました$PATH前にシステム ディレクトリは、おそらく偶然か、そうでなければ機能しないことに気付いたため、代わりにファイル システムに関する情報を取得するだけだった可能性があります。

Dwarf Fortress の実行可能ファイルは という名前ですdfが、これはファイルシステムのディスク容量使用状況を表示するシステム ツールの名前でもあるため、衝突が発生します。 と入力するとdfDwarf Fortress が起動するようにすることで、システム ツールをシャドウイングしたことになります。そのため、スクリプトが、たとえばアーカイブを解凍するのに十分な空き容量があるかどうかをチェックしたい場合、dfシステム ツールを呼び出す代わりに、Dwarf Fortress が起動します。そして、Dwarf Fortress を終了した後、かわいそうな小さなスクリプトは、要求したディスク使用量情報がなぜ提供されなかったのか、非常に困惑することになります。

とにかく、笑わせてくれてありがとう。これは、StackExchange でこれまでに見た中で最も面白い問題の 1 つに違いありません。:)

答え2

私の予感はアレクシのですが、Dwarf Fortress バイナリを/usr/local/binまたはに移動したのではないかと思います/usr/bin( ではないことを願います/bin)。

ターミナルで を実行してみてくださいsudo which df。 と表示されない場合は/bin/df、出力で指定されたファイルwhichを に移動してみてください/usr/games/( を実行して、今後ゲームを実行できるようになります/usr/games/df)。その後、apt は再び動作するはずです。

======

sudo which dfそれ以外の場合、のシナリオでは/bin/df、 を実行してみてください/bin/df。それがゲームで上書きされている場合は、上記のようにゲームバイナリを移動し、 を実行する必要がありますsudo apt-get install --reinstall coreutils

が欠落しているためにこれが失敗した場合はdf、より抜本的な対策 (df を一時的に置き換える偽のスクリプトを作成する、パッケージを手動でダウンロードしてそこから df バイナリを抽出するなど) に頼る必要がある場合があります。

関連情報