Come verificare se il mio prefisso Wine è a 32 bit o 64 bit?


16

Ho visto tonnellate di thread che spiegano come creare un prefisso a 32 bit, ma voglio verificare se il prefisso che sto usando è a 32 bit o 64 bit. Il motivo per cui lo sto chiedendo è che sto usando PlayOnLinux e ho creato un'unità virtuale a 32 bit (ad esempio X). Ora quando apro winetricks nella cartella ~ / .PlayOnLinux / wineprefix, wineprefix mi dà il messaggio

Stai utilizzando un WINEPREFIX a 64 bit. In caso di problemi, ripetere il test in un WINEPREFIX a 32 bit pulito prima di segnalare un errore.

Ma, quando ho aperto wineprefix in ~ / .PlayOnLinux / wineprefix / X, il messaggio non è stato visualizzato.

Come posso verificare se il prefisso è 32 vs 64 bit?

Risposte:


5

Se stai usando PlayOnLinux, puoi controllare quale versione usando la GUI - apri PlayOnLinux, fai clic su "Configura" sul programma pertinente e guarda il riquadro a sinistra:

In alternativa, puoi fare ciò che fa Winetricks (nella versione 20140817, circa linea 3600) , che è controllare il wineprefix per la presenza della directory WINEPREFIX/drive_c/windows/syswow64, che dovrebbe essere trovata in windows / wineprefix a 64 bit, ma non nelle versioni a 32 bit. Questo dovrebbe funzionare con i normali wineprefix e quelli con PlayOnLinux.


5

Tutto quello che devi fare è sfogliare le unità virtuali di PlayonLinux. Vai alla cartella WINEPREFIX / drive_c / e cerca la cartella Programmi.

Se vedi solo i file di programma e nessun programma (x86) Quindi stai usando Wine Prefix a 32 bit. Se vedi entrambi, stai usando il prefisso del vino a 64 bit. Spero che sia di aiuto !!


Questo non è vero. Ho appena avuto una situazione in cui il prefisso è stato generato senza una directory x86 ma era a 64 bit, come dimostra il fatto che conteneva drive_c / windows / syswow64.
Duncan X Simpson,

4

Avevo bisogno di qualcosa di simile in uno script, quindi ho creato questo script in base alla risposta di @ wilf:

#!/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

Ed ecco alcuni output:

$ ./winearch.sh 
Prefix is 64 bit

E su un prefisso di vino a 32 bit ho:

$ WINEPREFIX=~/.wine32 ./winearch.sh 
Prefix is 32 bit

1

È possibile installare Winetrick e digitare questo nel terminale:

 sudo apt-get install winetricks

e quindi esegui winetricks e quindi puoi vederlo nelle preferenze.


1
Quando eseguo winetricks, non esiste alcuna opzione per "preferenza".
Marmo organico

Non c'è preferenza.
Karl Morrison,

1


Grazie a @ wilf's per 'WINEPREFIX / drive_c / windows / syswow64' (funziona) ..
ma ho modificato il registro del vino per trovare qualsiasi voce che rivela
quale winearch sta usando il sistema (win32 o win64), e ho trovato in:

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

Questo comando visualizza: win32 (32 bit) o win64 (64 bit)




Di seguito è un esempio di come utilizzare questo negli script:

  #!/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

Note finali: Ho testato questo su Kali Linux ..
se / .wine32 WINEPREFIX = / root poi gatto comando deve contenere tale directory
per essere in grado di leggere la cartella all'interno delle impostazioni regedit winearch.


1
Non dovresti usare il vino come radice, quindi forse usa ~/.wineinvece di/root/.wine
Olivier G
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.