Como verificar se meu prefixo do Wine é de 32 ou 64 bits?

15

Vi toneladas de threads explicando como criar um prefixo de 32 bits, mas quero verificar se o prefixo que estou usando é de 32 ou 64 bits. A razão pela qual estou perguntando é que estou usando o PlayOnLinux e criei uma unidade virtual de 32 bits (por exemplo, X). Agora, quando abro winetricks na pasta ~ / .PlayOnLinux / wineprefix, o wineprefix me dá a mensagem

Você está usando um WINEPREFIX de 64 bits. Se você encontrar problemas, teste novamente em um WINEPREFIX de 32 bits limpo antes de relatar um erro.

Mas, quando abri o wineprefix em ~ / .PlayOnLinux / wineprefix / X, a mensagem não apareceu.

Como posso verificar se o prefixo é 32 vs 64 bits?

aaldilai
fonte

Respostas:

5

Tudo o que você precisa fazer é navegar pelas unidades virtuais do PlayonLinux. Vá para a pasta WINEPREFIX / drive_c / e procure a pasta Arquivos de Programas.

Se você vir apenas os Arquivos de Programas e nenhum Arquivo de Programas (x86), estará usando o Wine Prefix de 32 bits. Se você vir os dois, estará usando o Prefixo de 64 bits do vinho. Espero que isto ajude !!

Rajat Pandita
fonte
Isso não é verdade. Eu apenas tive uma situação em que o prefixo foi gerado sem um diretório x86, mas era de 64 bits, como é mostrado pelo fato de que continha drive_c / windows / syswow64.
Duncan X Simpson
4

Se você estiver usando o PlayOnLinux, poderá verificar qual versão usando a GUI - abra o PlayOnLinux, clique em 'Configurar' no programa relevante e veja o painel à esquerda:

Como alternativa, você pode fazer o que o winetricks faz (na versão 20140817, cerca da linha 3600) , que é verificar o wineprefix quanto à presença do diretório WINEPREFIX/drive_c/windows/syswow64, que deve ser encontrado nas janelas de 64 bits / wineprefix, mas não nas versões de 32 bits. Isso deve funcionar para os prefixos de vinho comuns e os do PlayOnLinux.

Wilf
fonte
4

Eu precisava de algo semelhante em um script, então fiz esse script com base na resposta 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

E aqui está uma saída:

$ ./winearch.sh 
Prefix is 64 bit

E em um prefixo de vinho de 32 bits, tenho:

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

Você pode instalar o winetricks e digite isso no terminal:

 sudo apt-get install winetricks

e, em seguida, execute winetricks, e você poderá vê-lo de preferência.

Michael
fonte
11
Quando executo winetricks, não há opção para "preferência".
Organic Marble
Não há preferência.
21416 Karl Morrison
1


Graças ao @ wilf's por 'WINEPREFIX / drive_c / windows / syswow64' (funciona) ..
mas eu editei o registro do vinho para encontrar qualquer entrada que revele
qual winearch o sistema está usando (win32 ou win64) e encontrei em:

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

Este comando exibe: win32 (32 bits) ou win64 (64 bits)




Abaixo, um exemplo de como usar isso em 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

Notas finais: eu testei isso no kali linux .
Se o WINEPREFIX = / root / .wine32 , o comando cat deve conter esse diretório
para poder ler a pasta interna para regedit as configurações do winearch.

r00t-3xp10it
fonte
11
Você não deve rodar o vinho como raiz, então talvez use-o em ~/.winevez de:/root/.wine
Olivier G