Question Dwarf Fortress commençant pendant l'apt-get upgrade


Quand je cours apt-get upgrade sur ma machine Ubuntu 17.04, ça commence parfois Forteresse Naine par lui-même.

Cela s'est déjà produit au moins deux fois, donc ce n'était probablement pas une chose en même temps. En outre, l'exécution deapt-get upgrade semblait être interrompu jusqu'à ce que je quitte manuellement la forteresse naine, donc probablement que quelque chose d'autre fonctionnait à cette époque.

La console à ce moment-là a dit Unpacking xxx. où xxx était quelque chose avec mysql en nom. Je ne sais pas cependant quel paquet exactement, comme aujourd'hui, apt-get upgrade mis à jour beaucoup de paquets liés à mysql.

J'aimerais savoir ce qui se passe et comment l'empêcher de se produire. Merci pour vos idées.


313
2017-07-22 05:15


origine


Donc, vous dites que chaque fois que vous avez couru apt-get upgrade au terminal les jeux commencent?
@MichaelBay pas à chaque fois, seulement quand il met à jour quelque chose. Et je ne peux pas tester si cela se produit toujours, car il n'y a pas de paquet à mettre à jour maintenant. - Adrijaned
Ce DF Hack est une longue lecture et j'ai abandonné en partie mais peut-être que cela vous sera utile. - WinEunuuchs2Unix
reddit.com/r/Ubuntu/comments/6tomtk/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Réponses:


Avec une question aussi étrange que cela, il est bien sûr impossible de dire avec certitude - mais je vais manger mon chapeau si ma première intuition n'est pas correcte. :)

La seule façon dont je peux penser, comment ces choses non liées peuvent être liées est la suivante: Après avoir installé (bien, extrait) Dwarf Fortress, au lieu d'aller dans le répertoire à chaque fois et de l'exécuter avec ./df, vous vouliez pouvoir l'exécuter de n'importe où, comme n'importe quelle vieille commande. Vous avez ajouté le répertoire Dwarf Fortress à votre $PATH, avant les répertoires du système, peut-être par hasard, peut-être parce que vous avez remarqué que cela ne fonctionnait pas autrement, et vous obtiendrez plutôt des informations sur vos systèmes de fichiers.

L'exécutable de la forteresse naine est nommé df, qui est également le nom d'un outil système pour afficher l'utilisation de l'espace disque de vos systèmes de fichiers, créant ainsi une collision. En faisant en sorte que lorsque vous tapez df, Dwarf Fortress démarre, vous avez masqué l’outil système, alors quand un script veut - disons - vérifier si vous avez suffisamment d’espace libre pour décompresser une archive, au lieu d’appeler df - L'outil système - ça va démarrer Dwarf Fortress à la place. Et après avoir quitté Dwarf Fortress, le pauvre petit script ne comprend pas pourquoi il n'a pas reçu les informations d'utilisation du disque demandées.

Quoi qu'il en soit, merci pour le rire, cela doit être parmi les problèmes les plus drôles que j'ai jamais vu exprimer sur StackExchange. :)


542
2017-08-14 17:30



Les commentaires ne sont pas destinés à une discussion approfondie; cette conversation a été déplacé pour discuter. - Thomas Ward♦


Mon intuition est similaire à Aleksi's, mais je suppose que vous avez peut-être déplacé le binaire de la forteresse naine vers /usr/local/bin ou /usr/bin (et heureusement pas /bin).

Essayer de courir sudo which df dans votre terminal. Si ça ne dit pas /bin/df, essayez de déplacer le fichier spécifié dans le which sortie à /usr/games/ (vous pourrez exécuter le jeu à l’avenir en exécutant /usr/games/df). Apt devrait travailler à nouveau après cela.

======

Sinon, dans le scénario où sudo which df dit /bin/df, essayez de courir /bin/df. Si cela a été écrasé avec le jeu, vous devrez déplacer le binaire du jeu comme indiqué ci-dessus, et sudo apt-get install --reinstall coreutils.

Si cela échoue parce que df est manquant, vous devrez peut-être recourir à des mesures plus radicales (comme créer un script fictif pour remplacer temporairement df ou télécharger manuellement le package et en extraire le binaire df).


62
2017-08-15 08:47



Il est ironique qu’un commentaire de l’intervenant à la réponse acceptée confirme que c’est ce que l’intervenant a fait, avec un lien symbolique, plutôt que de modifier PATH comme dans cette réponse. - JdeBP
@JdeBP: Pas vraiment, le point principal est le conflit de nommage - je pense que ce qui a été réalisé est secondaire, même si je le dis moi-même. Je l’ai également mentionné dans les commentaires de l’autre réponse, en réponse à un commentaire suggérant la même chose que cette réponse, mais j’ai initialement envisagé de mentionner cela comme une autre possibilité, jusqu’à ce que je réalise que déplacer / copier le binaire symlinking, ce à quoi je ne pensais pas) n'aurait pas fonctionné à cause du fonctionnement de Dwarf Fortress. (C'est-à-dire que c'est juste extrait, pas installé - il ne trouverait pas ses propres fichiers de données lorsqu'il n'est pas dans le même répertoire) - Aleksi Torhamo
Une meilleure commande pourrait être sudo which -a df tout voir df commandes trouvées dans le chemin. - Doug Henderson
Attendez, c'est 2017 et nous utilisons apt-get encore? - EKons
@AleksiTorhamo Juste pour clarifier, la variable PATH que apt verrait est remplacée par la commande sudo (/etc/sudoers a un secure_path variable pour éviter les problèmes de sécurité avec les utilisateurs modifiant leur PATH). Je suis d'accord que le fait de se rendre compte que le binaire Dwarf Fortress est prioritaire dans la résolution PATH est la clé de voûte. - maccam94