Forteresse naine commençant pendant apt-get upgrade


322

Lorsque je tourne apt-get upgradesur mon ordinateur Ubuntu 17.04, il commence parfois par lancer Dwarf Fortress .

C'est déjà arrivé au moins deux fois, alors ce n'était probablement pas une chose à la fois. En outre, l'exécution de apt-get upgradesemblait s'être interrompue jusqu'à ce que je quitte manuellement la Forteresse naine, ce qui n'a donc probablement pas été causé par un autre événement en cours d'exécution à ce moment-là.

La console à ce moment-là a indiqué Unpacking xxx.où se xxxtrouvait quelque chose mysqldans le nom. Cependant, je ne sais pas quel paquet exactement, comme aujourd'hui, a apt-get upgrademis à jour beaucoup de paquets liés à mysql.

Je voudrais savoir ce qui se passe et comment empêcher cela. Merci pour vos idées.


Donc, vous dites que chaque fois que vous courez apt-get upgradedans un terminal, les jeux commencent?

@MichaelBay pas à chaque fois, seulement quand il met à niveau quelque chose. Et je ne peux pas vérifier 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é à mi-parcours, mais cela vous sera peut-être utile.
WinEunuuchs2Unix

Réponses:


550

Avec une question aussi étrange que celle-ci, il est bien entendu impossible de le dire avec certitude - mais je mangerai mon chapeau si mon premier pressentiment n'est pas correct. :)

Le seul moyen auquel je puisse penser, et comment relier de telles choses sans rapport, 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 depuis. n'importe où, comme n'importe quelle ancienne commande. Vous avez ajouté le répertoire Dwarf Fortress à vos répertoires $PATH, avant les répertoires système, peut-être par hasard, peut-être parce que vous avez remarqué que cela ne fonctionnait pas autrement, et que vous obteniez simplement 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 permettant d'afficher l'utilisation de l'espace disque de vos systèmes de fichiers, en créant une collision. En faisant en sorte que lorsque vous tapez df, Dwarf Fortress démarre, vous avez suivi l'outil système, alors lorsqu'un script veut - disons - vérifier si vous disposez de suffisamment d'espace libre pour décompresser une archive, au lieu de l'invoquer df- l'outil système - ça va commencer la forteresse naine à la place. Et après avoir quitté Dwarf Fortress, le pauvre petit script sera très confus quant à la raison pour laquelle il n'a pas reçu les informations d'utilisation du disque qu'il avait demandées.

Quoi qu'il en soit, merci pour le rire, ce doit être l'un des problèmes les plus drôles que j'ai jamais vu exprimé sur StackExchange. :)


Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
Thomas Ward

64

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

Essayez de courir sudo which dfdans votre terminal. S'il ne le dit pas /bin/df, essayez de déplacer le fichier spécifié dans la whichsortie /usr/games/(vous pourrez exécuter le jeu ultérieurement en exécutant /usr/games/df). Apt devrait fonctionner à nouveau par la suite.

======

Sinon, dans le scénario où sudo which dfdit /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 car il dfmanque, vous devrez peut-être recourir à des mesures plus radicales (comme créer un faux script pour remplacer temporairement df ou télécharger manuellement le package et en extraire le fichier binaire df).


7
Il est ironique qu'un commentaire de l'interrogateur à la réponse acceptée confirme que c'est ce qu'il a fait, avec un lien symbolique, plutôt que de le modifier PATHcomme dans cette réponse.
JdeBP

1
@JdeBP: Pas vraiment, l'essentiel est le conflit de nommage - je pense que la façon dont cela 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, mais j'avais initialement envisagé de le mentionner comme une autre possibilité, jusqu'à ce que je réalise que déplacer / copier le binaire (par opposition à les liens symboliques, auxquels je n’avais pas pensé) n’auraient pas fonctionné à cause du fonctionnement de la Forteresse naine. (C'est-à-dire qu'il vient juste d'être extrait et non installé - il ne trouverait pas ses propres fichiers de données s'il ne se trouvait pas dans le même répertoire)
Aleksi Torhamo

2
Une meilleure commande pourrait être sudo which -a dfde voir toutes les dfcommandes trouvées dans le chemin.
Doug Henderson

Attendez c'est 2017 et nous utilisons apt-getencore?
EKons

@AleksiTorhamo Juste pour clarifier, la variable PATH que apt verrait est remplacée par la commande sudo ( /etc/sudoerspossède une secure_pathvariable pour éviter les problèmes de sécurité lorsque les utilisateurs modifient leur PATH). Je conviens que le fait de savoir que le binaire Dwarf Fortress a préséance dans la résolution PATH est toutefois l’information clé.
Maccam94
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.