Как проверить, является ли мой префикс Wine 32-битным или 64-битным?


16

Я видел множество потоков, объясняющих, как создать 32-битный префикс, но я хочу проверить, является ли префикс, который я использую, 32-битный или 64-битный. Причина, по которой я спрашиваю, заключается в том, что я использую PlayOnLinux и создал 32-битный виртуальный диск (например, X). Теперь, когда я открываю winetricks в папке ~ / .PlayOnLinux / wineprefix, wineprefix выдает мне сообщение

Вы используете 64-разрядную версию WINEPREFIX. Если у вас возникли проблемы, пожалуйста, протестируйте чистый 32-битный WINEPREFIX перед тем, как сообщить об ошибке.

Но когда я открыл wineprefix в ~ / .PlayOnLinux / wineprefix / X, сообщение не появилось.

Как я могу проверить, является ли префикс 32 против 64 бит?

Ответы:


5

Если вы используете PlayOnLinux, вы можете проверить, какая версия с помощью графического интерфейса - откройте PlayOnLinux, нажмите «Настроить» в соответствующей программе и посмотрите на панель слева:

В качестве альтернативы вы можете делать то, что делает winetricks (в версии 20140817около 3600) , то есть проверять wineprefix на наличие каталога WINEPREFIX/drive_c/windows/syswow64, который должен быть найден в 64-битной версии windows / wineprefix, но не в 32-битной версии. Это должно работать как для обычных префиксов Wine, так и для PlayOnLinux.


5

Все, что вам нужно сделать, это просмотреть виртуальные диски PlayonLinux. Перейдите в папку WINEPREFIX / drive_c / и найдите папку Program Files.

Если вы видите только Program Files и отсутствуют ProgramFiles (x86), тогда вы используете 32-битный префикс Wine. Если вы видите оба, то вы используете 64-битный префикс Wine. Надеюсь это поможет !!


Это неправда. У меня просто была ситуация, когда префикс был сгенерирован без каталога x86, но он был 64-битным, о чем свидетельствует тот факт, что он содержал drive_c / windows / syswow64.
Дункан Х Симпсон

4

Мне нужно было что-то похожее в скрипте, поэтому я сделал этот скрипт на основе ответа @ 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

И вот некоторый вывод:

$ ./winearch.sh 
Prefix is 64 bit

И на 32-битном винном префиксе у меня есть:

$ WINEPREFIX=~/.wine32 ./winearch.sh 
Prefix is 32 bit

1

Вы можете установить winetricks и набрать это в терминале:

 sudo apt-get install winetricks

и затем запустите winetricks, и тогда вы сможете увидеть это в настройках.


1
Когда я запускаю winetricks, у меня нет опции «предпочтения».
Органический мрамор

Там нет предпочтений.
Карл Моррисон

1


Спасибо @ wilf за 'WINEPREFIX / drive_c / windows / syswow64' (это работает) ..
но я редактировал реестр вина, чтобы найти любую запись, которая показывает,
какой Winearch система использует (win32 или win64), и я нашел это внутри:

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

Эта команда отображает: win32 (32 бит) или win64 (64 бит)




Ниже приведен один пример, как использовать это в сценариях:

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

Заключительные замечания: я проверил это на kali linux ..
если WINEPREFIX = / root / .wine32, тогда команда cat должна содержать этот каталог,
чтобы можно было читать внутри папки для настроек regedit winearch.


1
Вы не должны запускать wine как root, так что, возможно, используйте ~/.wineвместо/root/.wine
Olivier G
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.