Wie überprüfe ich, ob mein Wine-Präfix 32-Bit oder 64-Bit ist?

15

Ich habe unzählige Threads gesehen, in denen erklärt wurde, wie ein 32-Bit-Präfix erstellt wird, aber ich möchte überprüfen, ob das verwendete Präfix 32-Bit oder 64-Bit ist. Der Grund, den ich frage, ist, dass ich PlayOnLinux verwende und ein virtuelles 32-Bit-Laufwerk (zum Beispiel X) erstellt habe. Wenn ich nun Winetricks im Ordner ~ / .PlayOnLinux / wineprefix öffne, gibt mir wineprefix die Nachricht

Sie verwenden ein 64-Bit-WINEPREFIX. Wenn Sie auf Probleme stoßen, wiederholen Sie den Test mit einem sauberen 32-Bit-WINEPREFIX, bevor Sie einen Fehler melden.

Aber als ich wineprefix in ~ / .PlayOnLinux / wineprefix / X öffnete, wurde die Meldung nicht angezeigt.

Wie kann ich überprüfen, ob das Präfix 32 vs 64 Bit ist?

Aaldilai
quelle

Antworten:

5

Sie müssen nur die virtuellen Laufwerke von PlayonLinux durchsuchen. Wechseln Sie in den Ordner WINEPREFIX / drive_c / und suchen Sie nach dem Ordner Programme.

Wenn Sie nur die Programmdateien und keine Programmdateien sehen (x86), verwenden Sie das 32-Bit-Wine-Präfix. Wenn Sie beide sehen, verwenden Sie das 64-Bit-Weinpräfix. Hoffe das hilft !!

Rajat Pandita
quelle
Das ist nicht wahr. Ich hatte gerade eine Situation, in der das Präfix ohne ein x86-Verzeichnis generiert wurde, aber es war 64-Bit, wie die Tatsache zeigt, dass es Laufwerk_c / windows / syswow64 enthielt.
Duncan X Simpson
4

Wenn Sie PlayOnLinux verwenden, können Sie über die Benutzeroberfläche überprüfen, welche Version Sie verwenden. Öffnen Sie PlayOnLinux, klicken Sie im entsprechenden Programm auf "Konfigurieren" und sehen Sie sich den linken Bereich an:

Alternativ können Sie das tun, was Winetricks tun (in der Version 20140817, ca. Zeile 3600) , indem Sie den WinePrefix auf das Vorhandensein des Verzeichnisses überprüfen WINEPREFIX/drive_c/windows/syswow64, das in 64-Bit-Windows / WinePrefix, jedoch nicht in 32-Bit-Versionen zu finden ist. Dies sollte für normale Wineprefixes und solche unter PlayOnLinux funktionieren.

Wilf
quelle
4

Ich brauchte etwas Ähnliches in einem Skript, also erstellte ich dieses Skript basierend auf @ wilfs Antwort:

#!/bin/bash

## Wine can spam stderr
ERRLOG=/tmp/dllerrlog.log

WINESYSDIR=$( winepath -u c:\\windows\\system32 2> $ERRLOG )    
if [[ ${WINESYSDIR} == *"/system32" ]]; then
  echo "Prefix is 32 bit"
  # do 32 bit stuff here...
elif [[ ${WINESYSDIR} == *"/syswow64"* ]]; then
  echo "Prefix is 64 bit"
  # do 64 bit stuff here...
else
  echo "Unknown wine architecture"
fi

Und hier ist eine Ausgabe:

$ ./winearch.sh 
Prefix is 64 bit

Und auf einem 32-Bit-Wein-Präfix habe ich:

$ WINEPREFIX=~/.wine32 ./winearch.sh 
Prefix is 32 bit
Stuart Axon
quelle
1

Sie könnten Winetricks installieren und dies in das Terminal eingeben:

 sudo apt-get install winetricks

und führen Sie dann Winetricks aus, und dann können Sie es in Präferenz sehen.

Michael
quelle
1
Wenn ich Winetricks starte, gibt es keine Option für "Präferenz".
Bio-Marmor
Es ist egal.
Karl Morrison
1


Vielen Dank an @ wilf's für 'WINEPREFIX / drive_c / windows / syswow64' (es funktioniert).
Aber ich habe die Weinregistrierung bearbeitet , um einen Eintrag zu finden, der enthüllt,
welche WinSearch das System verwendet (win32 oder win64), und ich habe gefunden es in:

cat /root/.wine/system.reg | grep -m 1 '#arch' | cut -d '=' -f2

Dieser Befehl zeigt an: win32 (32 Bit) oder win64 (64 Bit)




Unten sehen Sie ein Beispiel, wie dies in Skripten verwendet wird:

  #!/bin/sh
  HkLm=$(cat /root/.wine/system.reg | grep -m 1 '#arch' | cut -d '=' -f2) > /dev/null 2>&1 # winearch (regedit)
  if [ "$HkLm" = "win64" ]; then
    echo "[x] winearch config: $HkLm (64 bits)"
    echo "[i] Please run:$IPATH/bin/enable_x32bits_wine.sh"
    exit
  fi

Abschließende Hinweise: Ich habe dies unter Kali Linux getestet .
Wenn WINEPREFIX = / root / .wine32 ist, muss der Befehl cat dieses Verzeichnis enthalten,
damit er in den Ordnern für die Regedit-Sucheinstellungen gelesen werden kann.

r00t-3xp10it
quelle
1
Du solltest keinen Wein als root verwenden, also verwende ihn vielleicht ~/.wineanstelle von/root/.wine
Olivier G