Як перевірити, чи мій префікс 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, ви можете перевірити, яку версію використовуєте GUI - відкрийте PlayOnLinux, натисніть "Налаштувати" у відповідній програмі та подивіться на панель зліва:

Крім того, ви можете робити те, що робить winetricks (у версії 20140817, біля лінії 3600) , яка перевіряє винну виправлення на наявність каталогу WINEPREFIX/drive_c/windows/syswow64, який слід знайти у 64-бітових windows / wineprefix, але не у 32-бітовій версії. Це має працювати як для звичайних винних виправлень, так і для тих, що знаходяться під PlayOnLinux.


5

Все, що вам потрібно зробити - це переглянути віртуальні диски PlayonLinux. Перейдіть до папки WINEPREFIX / drive_c / і знайдіть папку Program Files.

Якщо ви бачите лише файли програми, а програмні файли відсутні (x86), тоді ви використовуєте 32-бітний префікс вина. Якщо ви бачите обидва, то ви використовуєте 64-бітний префікс вина. Сподіваюся, це допомагає !!


Це не правда. У мене просто була ситуація, коли префікс генерувався без каталогу x86, але він був 64-розрядним, як свідчить той факт, що він містив drive_c / windows / syswow64.
Duncan X Simpson

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


Завдяки @ Уілф це за «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

Підсумкові зауваження: я перевірив це на lli kali ..
якщо WINEPREFIX = / root / .wine32, то команда cat повинна містити цей каталог,
щоб мати можливість читати всередині папки для регулювання параметрів winearch.


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