¿Cómo verificar si mi prefijo Wine es de 32 bits o de 64 bits?

16

Vi toneladas de hilos explicando cómo crear un prefijo de 32 bits, pero quiero verificar si el prefijo que estoy usando es de 32 o 64 bits. La razón por la que pregunto es que estoy usando PlayOnLinux y he creado una unidad virtual de 32 bits (por ejemplo, X). Ahora, cuando abro winetricks en la carpeta ~ / .PlayOnLinux / wineprefix, wineprefix me da el mensaje

Estás utilizando un WINEPREFIX de 64 bits. Si encuentra problemas, vuelva a probar en un WINEPREFIX limpio de 32 bits antes de informar un error.

Pero, cuando abrí wineprefix en ~ / .PlayOnLinux / wineprefix / X, el mensaje no apareció.

¿Cómo puedo verificar si el prefijo es 32 vs 64 bit?

aaldilai
fuente

Respuestas:

5

Si está utilizando PlayOnLinux, puede verificar qué versión utilizando la GUI: abra PlayOnLinux, haga clic en 'Configurar' en el programa correspondiente y mire el panel de la izquierda:

Alternativamente, puede hacer lo que hace winetricks (en la versión 20140817, alrededor de la línea 3600) , que es verificar el wineprefix para la presencia del directorio WINEPREFIX/drive_c/windows/syswow64, que se debe encontrar en las ventanas de 64 bits / wineprefix, pero no en las versiones de 32 bits. Esto debería funcionar para los prefijos de vino ordinarios y aquellos bajo PlayOnLinux.

Wilf
fuente
5

Todo lo que tiene que hacer es navegar por las unidades virtuales de PlayonLinux. Vaya a la carpeta WINEPREFIX / drive_c / y busque la carpeta Archivos de programa.

Si solo ve los Archivos de programa y no los Archivos de programa (x86), entonces está utilizando Wine Prefix de 32 bits. Si ve ambos, entonces está utilizando 64 Bit Wine Prefix. Espero que esto ayude !!

Rajat Pandita
fuente
Esto no es verdad. Acabo de tener una situación en la que el prefijo se generó sin un directorio x86 pero era de 64 bits, como lo demuestra el hecho de que contenía drive_c / windows / syswow64.
Duncan X Simpson
4

Necesitaba algo similar en un script, así que hice este script basado en la respuesta 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

Y aquí hay algo de salida:

$ ./winearch.sh 
Prefix is 64 bit

Y en un prefijo de vino de 32 bits tengo:

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

Puedes instalar winetricks y escribir esto en la terminal:

 sudo apt-get install winetricks

y luego ejecuta winetricks, y luego puedes verlo con preferencia.

Miguel
fuente
1
Cuando ejecuto winetricks, no hay opción para "preferencia".
Mármol orgánico
No hay preferencia
Karl Morrison
1


Gracias a @ wilf's por 'WINEPREFIX / drive_c / windows / syswow64' (funciona) ...
pero he estado editando el registro de vinos para encontrar cualquier entrada que revele
qué Winearch está usando el sistema (win32 o win64), y he encontrado en:

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

Este comando muestra: win32 (32 bit) o win64 (64 bit)




A continuación se muestra un ejemplo de cómo usar esto en las secuencias de comandos:

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

Notas finales: he probado esto en kali linux ..
si WINEPREFIX = / root / .wine32, entonces el comando cat debe contener ese directorio
para poder leer dentro de la carpeta para la configuración regedit winearch.

r00t-3xp10it
fuente
1
No debe ejecutar el vino como raíz, así que tal vez use en ~/.winelugar de/root/.wine
Olivier G