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

16

J'ai vu des tonnes de threads expliquant comment créer un préfixe 32 bits, mais je veux vérifier si le préfixe que j'utilise est 32 bits ou 64 bits. La raison pour laquelle je demande, c'est que j'utilise PlayOnLinux, et j'ai créé un lecteur virtuel 32 bits (par exemple X). Maintenant, quand 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, veuillez retester dans un WINEPREFIX 32 bits propre 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 bits?

aaldilai
la source

Réponses:

5

Si vous utilisez PlayOnLinux, vous pouvez vérifier quelle version à l'aide de l'interface graphique - ouvrez PlayOnLinux, cliquez sur 'Configurer' sur le programme approprié et regardez le volet à gauche:

Alternativement, vous pouvez faire ce que fait winetricks (dans la version 20140817, vers la ligne 3600) , qui est de vérifier la présence du répertoire wineprefix WINEPREFIX/drive_c/windows/syswow64, qui devrait être trouvé dans les fenêtres 64 bits / wineprefix, mais pas dans les versions 32 bits. Cela devrait fonctionner pour les préfixes de vin ordinaires et ceux sous PlayOnLinux.

Wilf
la source
5

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

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

Rajat Pandita
la source
Ce n'est pas vrai. Je viens d'avoir une situation où le préfixe a été généré sans répertoire x86 mais il était de 64 bits comme le montre le fait qu'il contenait drive_c / windows / syswow64.
Duncan X Simpson
4

J'avais besoin de quelque chose de similaire dans un script, alors j'ai fait ce script 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 une sortie:

$ ./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
Stuart Axon
la source
1

Vous pouvez installer winetricks et taper ceci dans le terminal:

 sudo apt-get install winetricks

puis exécutez winetricks, puis vous pouvez le voir de préférence.

Michael
la source
1
Quand je lance winetricks, il n'y a pas d'option pour "préférence".
Marbre organique du
Il n'y a aucune préférence.
Karl Morrison
1


Merci à @ Wilf est pour « WINEPREFIX / drive_c / windows / syswow64 » (cela fonctionne) ..
mais j'ai été l' édition du registre de vin pour trouver une entrée qui révèle
ce qui 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)




Ci-dessous son seul exemple comment utiliser cela 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 ..
si WINEPREFIX = / root / .wine32 alors la commande cat doit contenir ce répertoire
pour pouvoir lire dans le dossier pour les paramètres de regedit winearch.

r00t-3xp10it
la source
1
Vous ne devriez pas utiliser wine comme root, alors peut-être utiliser à la ~/.wineplace de/root/.wine
Olivier G