Jak sprawdzić, czy mój prefiks Wine jest 32-bitowy czy 64-bitowy?

16

Widziałem mnóstwo wątków wyjaśniających, jak utworzyć 32-bitowy prefiks, ale chcę sprawdzić, czy używam prefiksu 32-bitowego czy 64-bitowego. Powodem, dla którego pytam, jest to, że korzystam z PlayOnLinux i stworzyłem 32-bitowy dysk wirtualny (na przykład X). Teraz, gdy otwieram Winetricks w folderze ~ / .PlayOnLinux / wineprefix, wineprefix daje mi wiadomość

Używasz 64-bitowego WINEPREFIX. Jeśli napotkasz problemy, przed zgłoszeniem błędu sprawdź ponownie w czystym 32-bitowym WINEPREFIX.

Ale kiedy otworzyłem wineprefix w ~ / .PlayOnLinux / wineprefix / X, komunikat nie pojawił się.

Jak mogę sprawdzić, czy prefiks to 32 czy 64-bit?

aaldilai
źródło

Odpowiedzi:

5

Jeśli korzystasz z PlayOnLinux, możesz sprawdzić, która wersja jest za pomocą GUI - otwórz PlayOnLinux, kliknij „Konfiguruj” w odpowiednim programie i spójrz na okienko po lewej stronie:

Alternatywnie możesz zrobić to, co robi Winetricks (w wersji 20140817, około linii 3600) , czyli sprawdzić prefiks wine pod kątem obecności katalogu WINEPREFIX/drive_c/windows/syswow64, który powinien znajdować się w 64-bitowym Windows / prefiksie wine, ale nie w 32-bitowych wersjach. Powinno to działać dla zwykłych prefiksów wina i tych w PlayOnLinux.

Wilf
źródło
5

Wystarczy, że przejrzysz wirtualne dyski PlayonLinux. Przejdź do folderu WINEPREFIX / drive_c / i poszukaj folderu Program Files.

Jeśli widzisz tylko pliki programu i nie ma plików programu (x86), to używasz 32-bitowego prefiksu Wine. Jeśli widzisz oba, to używasz 64-bitowego prefiksu wina. Mam nadzieję że to pomoże !!

Rajat Pandita
źródło
To nie jest prawda. Właśnie miałem sytuację, w której prefiks został wygenerowany bez katalogu x86, ale był on 64-bitowy, o czym świadczy fakt, że zawierał drive_c / windows / syswow64.
Duncan X Simpson
4

Potrzebowałem czegoś podobnego w skrypcie, dlatego stworzyłem ten skrypt w oparciu o odpowiedź @ 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

A oto niektóre dane wyjściowe:

$ ./winearch.sh 
Prefix is 64 bit

A na 32-bitowym prefiksie wina mam:

$ WINEPREFIX=~/.wine32 ./winearch.sh 
Prefix is 32 bit
Stuart Axon
źródło
1

Możesz zainstalować Winetricks i wpisać to w terminalu:

 sudo apt-get install winetricks

a następnie uruchom Winetricks, a następnie zobaczysz to w preferencjach.

Michael
źródło
1
Kiedy uruchamiam Winetricks, nie ma opcji „preferencji”.
Marmur Organiczny
Nie ma preferencji.
Karl Morrison,
1


Dzięki @ wilf's za „WINEPREFIX / drive_c / windows / syswow64” (to działa) ..
ale edytowałem rejestr wina, aby znaleźć dowolny wpis, który ujawnia,
jakiego winarcha używa system (win32 lub win64), i znalazłem to w:

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

To polecenie wyświetla: win32 (32 bity) lub win64 (64 bity)




Poniżej znajduje się jeden przykład użycia tego w skryptach:

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

Ostatnie uwagi: przetestowałem to na Kali Linux ..
jeśli WINEPREFIX = / root / .wine32, to polecenie cat musi zawierać ten katalog,
aby móc czytać w folderze dla ustawień regedit winearch.

r00t-3xp10it
źródło
1
Nie powinieneś uruchamiać wina jako korzenia, więc może ~/.winezamiast tego użyj/root/.wine
Olivier G