Probleme beim Bereinigen von WINE nach dem Upgrade (17.10 auf 18.04 LTS)

Probleme beim Bereinigen von WINE nach dem Upgrade (17.10 auf 18.04 LTS)

Nach dem Upgrade einer Maschine von 17.10 auf 18.04LTS scheint die zuvor erfolgreiche Installation von Wine zu scheitern. Angesichts der vielen gemeldeten Probleme (und derinteressante Kommentare von Clembei Linux Mint-Entdeckungen), dachte ich, ich würde einfach das alte Wine wegblasen und von Grund auf neu installieren, nach dem"kanonische" Anweisungenhier auf Askubuntu.

Leider komme ich nicht sehr weit. Als Antwort auf

sudo apt purge wine*

Ich erhalte die Fehlermeldung:

[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package winehq.key
E: Couldn't find any package by glob 'winehq.key'
E: Couldn't find any package by regex 'winehq.key'

Doch, denn which wineich bekomme /usr/bin/wine, und dpkges gibt mir Folgendes:

$ dpkg -l | grep wine
ii  fonts-wine              3.0-1ubuntu1  all          Windows API implementation - fonts
ii  libwine:amd64           3.0-1ubuntu1  amd64        Windows API implementation - library
ii  wine-stable             3.0-1ubuntu1  all          Windows API implementation - standard suite
ii  wine-stable-amd64       4.0.1~bionic  amd64        WINE Is Not An Emulator - runs MS Windows programs
ii  wine64                  3.0-1ubuntu1  amd64        Windows API implementation - 64-bit binary loader
ii  winetricks              0.0+20180217-1all          package manager for Wine to install software easily

Ich weiß wirklich nicht, was ich als nächstes tun soll. Ich habe alle mir eingefallenen Suchen zu meinen Fehlermeldungen durchgeführt, bin aber nicht schlauer geworden. Und ich glaube nicht, dass ich mit einer Neuinstallation von Wine fortfahren sollte, bevor ich die aktuelle (kaputte!) gelöscht habe.

Wie kann ich diesen Wine dann loswerden? Wenn es andere Diagnosen gibt, die ich ausführen sollte/könnte, lassen Sie es mich bitte wissen und ich werde diese Frage aktualisieren.

Antwort1

Der Grund dafür, dass es nicht funktioniert hat, liegt darin, dass sich im aktuellen Verzeichnis eine Datei befand, die dem Muster entsprach, das Sie übergeben wollten apt.

Wenn Bash in der Befehlszeile ein (nicht in Anführungszeichen gesetztes und nicht maskiertes) Sternchen, Fragezeichen oder ein anderes Glob-Zeichen sieht, prüft es die Dateien im aktuellen Verzeichnis und wenn eine davon dem Muster entspricht, wird das Wort, das die Sonderzeichen enthält, durch eine durch Leerzeichen getrennte Liste der übereinstimmenden Dateien ersetzt. Sie können dies in Ihrem Terminal sehen, wenn Sie Folgendes eingeben:

echo *

wo eine Liste der Dateien/Verzeichnisse im aktuellen Verzeichnis gedruckt wird. In Ihrem Fall wine*stimmte das Muster mit der Datei überein winehq.key, die sich im aktuellen Verzeichnis befand, sodass Ihr Befehl in

sudo apt purge winehq.key

was natürlich zu einer Fehlermeldung führte, da im Repository keine Pakete mit diesem Namen vorhanden sind.

In diesem Fall möchten wir, dass das Glob-Muster nicht von Bash interpretiert, sondern wörtlich an weitergegeben wird apt. Dies erreichen wir, indem wir die Sonderzeichen maskieren oder in Anführungszeichen setzen, wie folgt:

sudo apt purge wine\*

oder gleichwertig:

sudo apt purge 'wine*'

Der Grund, warum es in einem anderen Verzeichnis funktionieren könnte, ist, dass der Glob unverändert bleibt, z. B. mit dem wörtlichen Sternchen, wenn keine Dateien dem Muster entsprechen. Wenn Sie Ihren Befehl also in einem anderen Verzeichnis ausführen, würde er wahrscheinlich funktionieren. Um auf Nummer sicher zu gehen, ist es jedoch immer eine gute Idee, alle speziellen Bash-Zeichen in Anführungszeichen zu setzen/zu maskieren, wenn Sie möchten, dass sie an den ausgeführten Befehl weitergegeben werden.

Dieses Verhalten kann durch Setzen der nullglobBash-Option mit dem Befehl vermieden werden

shopt -s nullglob

Wenn diese Option aktiviert ist, wird jedes Muster, das nicht mit Dateien übereinstimmt, auf null gesetzt, anstatt seinen Anfangswert beizubehalten. Dadurch ist es viel einfacher, solche Fehler zu erkennen. Es ist wirklich bedauerlich, dass diese Option nicht standardmäßig aktiviert ist. Dadurch würden zahllose unberechenbare Fehler vermieden, die nur dann auftreten, wenn die richtigen Dateien im aktuellen Verzeichnis vorhanden sind.

verwandte Informationen