Bagaimana cara memeriksa apakah awalan Wine saya 32 bit atau 64 bit?

16

Saya melihat banyak utas menjelaskan cara membuat awalan 32 bit, tapi saya ingin memeriksa apakah awalan yang saya gunakan adalah 32 bit atau 64 bit. Alasan saya bertanya adalah bahwa saya menggunakan PlayOnLinux, dan saya telah membuat drive virtual 32 bit (misalnya X). Sekarang ketika saya membuka winetricks di folder ~ / .PlayOnLinux / wineprefix, wineprefix memberi saya pesan

Anda menggunakan WINEPREFIX 64-bit. Jika Anda mengalami masalah, silakan uji ulang WINEPREFIX 32-bit yang bersih sebelum melaporkan bug.

Tapi, ketika saya membuka wineprefix di ~ / .PlayOnLinux / wineprefix / X, pesan itu tidak muncul.

Bagaimana saya bisa memeriksa apakah awalannya 32 vs 64 bit?

aaldilai
sumber

Jawaban:

5

Jika Anda menggunakan PlayOnLinux, Anda dapat memeriksa versi mana yang menggunakan GUI - buka PlayOnLinux, klik 'Konfigurasikan' pada program yang relevan, dan lihat panel di sebelah kiri:

Atau, Anda dapat melakukan apa yang winetricks lakukan (dalam versi 20140817, sekitar garis 3600) , yaitu memeriksa wineprefix untuk keberadaan direktori WINEPREFIX/drive_c/windows/syswow64, yang harus ditemukan di windows 64bit / wineprefix, tetapi bukan versi 32bit. Ini harus bekerja untuk perbaikan winep biasa dan yang di bawah PlayOnLinux.

Wilf
sumber
5

Yang harus Anda lakukan adalah, Telusuri Drive Virtual PlayonLinux. Buka folder WINEPREFIX / drive_c / dan cari folder Program Files.

Jika Anda hanya melihat File Program dan tanpa ProgramFiles (x86), maka Anda menggunakan Prefiks Wine 32 bit. Jika Anda melihat keduanya maka Anda menggunakan Awalan Wine 64 Bit. Semoga ini membantu !!

Rajat Pandita
sumber
Ini tidak benar. Saya baru saja mengalami situasi di mana awalan dihasilkan tanpa direktori x86 tapi itu 64-bit seperti yang ditunjukkan oleh fakta bahwa itu berisi drive_c / windows / syswow64.
Duncan X Simpson
4

Saya membutuhkan sesuatu yang serupa dalam sebuah skrip sehingga membuat skrip ini berdasarkan jawaban @ 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

Dan inilah beberapa output:

$ ./winearch.sh 
Prefix is 64 bit

Dan pada awalan anggur 32 bit saya punya:

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

Anda dapat menginstal winetricks, dan ketik ini di terminal:

 sudo apt-get install winetricks

dan kemudian jalankan winetricks, dan kemudian Anda bisa melihatnya di preferensi.

Michael
sumber
1
Ketika saya menjalankan winetricks, tidak ada opsi untuk "preferensi".
Marmer Organik
Tidak ada preferensi.
Karl Morrison
1


Terima kasih kepada @ wilf untuk 'WINEPREFIX / drive_c / windows / syswow64' (berfungsi) ..
tetapi saya telah mengedit registri anggur untuk menemukan entri yang mengungkapkan
apa yang winearch gunakan sistem (win32 atau win64), dan saya telah menemukan itu di:

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

Perintah ini menampilkan: win32 (32 bit) atau win64 (64 bit)




Di bawah ini adalah satu contoh bagaimana menggunakan ini dalam skrip:

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

Catatan akhir: saya telah menguji ini pada kali linux ..
jika WINEPREFIX = / root / .wine32 maka perintah cat harus berisi direktori itu
untuk dapat membaca di dalam folder untuk pengaturan winearch regedit.

r00t-3xp10it
sumber
1
Anda tidak harus menjalankan anggur sebagai root jadi mungkin gunakan ~/.winesebagai gantinya/root/.wine
Olivier G