web-dev-qa-db-fra.com

Comment vérifier si mon préfixe Wine est 32 bits ou 64 bits?

J'ai vu des tonnes de threads expliquer comment créer un préfixe 32 bits, mais je veux vérifier si le préfixe utilisé est 32 bits ou 64 bits. La raison pour laquelle je pose la question est que j'utilise PlayOnLinux et que j'ai créé un lecteur virtuel 32 bits (par exemple X). Maintenant, lorsque j'ouvre winetricks dans le dossier ~/.PlayOnLinux/wineprefix, wineprefix me donne le message

Vous utilisez un WINEPREFIX 64 bits. Si vous rencontrez des problèmes, renouvelez l’essai dans un fichier WINEPREFIX 32 bits vierge avant de signaler un bogue.

Mais, lorsque j'ai ouvert wineprefix dans ~/.PlayOnLinux/wineprefix/X, le message ne s'est pas affiché.

Comment puis-je vérifier si le préfixe est 32 vs 64 bit?

15
aaldilai

Tout ce que vous avez à faire est de parcourir les lecteurs virtuels de PlayonLinux. Accédez au dossier WINEPREFIX/drive_c/et recherchez le dossier Program Files.

Si vous ne voyez que les fichiers de programme et aucuns ProgramFiles (x86), vous utilisez le préfixe Wine 32 bits. Si vous voyez les deux, vous utilisez le préfixe de vin 64 bits. J'espère que cela t'aides !!

5
Rajat Pandita

J'avais besoin de quelque chose de similaire dans un script, alors ce script est basé sur la réponse de @ 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

Et voici quelques résultats:

$ ./winearch.sh 
Prefix is 64 bit

Et sur un préfixe de vin 32 bits, j'ai:

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

Si vous utilisez PlayOnLinux, vous pouvez vérifier la version à l'aide de l'interface graphique - ouvrez PlayOnLinux, cliquez sur "Configurer" dans le programme correspondant, puis consultez le volet de gauche:

Alternativement, vous pouvez faire ce que fait winetricks (dans la version 20140817, environ 3600), qui vérifie le préfixe wine pour la présence du répertoire WINEPREFIX/drive_c/windows/syswow64, qui devrait se trouver dans le répertoire windows/wineprefix 64 bits, mais pas Versions 32bit. Cela devrait fonctionner pour les préfixes de vin ordinaires et ceux sous PlayOnLinux.

4
Wilf

Vous pouvez installer winetricks et taper ceci dans le terminal:

 Sudo apt-get install winetricks

puis lancez winetricks et vous pourrez le voir de préférence.

1
Michael


Merci à @ wilf pour 'WINEPREFIX/drive_c/windows/syswow64' (ça marche) ..
mais j’ai édité le registre du vin pour trouver une entrée révélant
quel winearch le système utilise (win32 ou win64), et je l’ai trouvé dans:

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

Cette commande affiche: win32 (32 bits) ou win64 (64 bits)




Voici un exemple d'utilisation de ce script dans les scripts:

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

Notes finales: j'ai testé cela sur kali linux ..
if WINEPREFIX =/root/.wine32 alors cat la commande doit contenir ce répertoire
pour pouvoir lire le dossier intérieur des paramètres de regedit winearch.

1
r00t-3xp10it