如何检查我的 Wine 前缀是 32 位还是 64 位?

如何检查我的 Wine 前缀是 32 位还是 64 位?

我看到很多帖子解释如何创建 32 位前缀,但我想检查我使用的前缀是 32 位还是 64 位。我问这个问题的原因是我正在使用 PlayOnLinux,并且我创建了一个 32 位虚拟驱动器(例如 X)。现在,当我在文件夹 ~/.PlayOnLinux/wineprefix 中打开 winetricks 时,wineprefix 会给我以下消息

您正在使用 64 位 WINEPREFIX。如果遇到问题,请在报告错误之前在干净的 32 位 WINEPREFIX 中重新测试。

但是,当我在 ~/.PlayOnLinux/wineprefix/X 中打开 wineprefix 时,该消息没有出现。

如何检查前缀是 32 位还是 64 位?

答案1

您所要做的就是浏览 PlayonLinux 的虚拟驱动器。转到 WINEPREFIX/drive_c/ 文件夹并查找 Program Files 文件夹。

如果您只看到 Program Files 而没有看到 ProgramFiles(x86),则表示您使用的是 32 位 Wine Prefix。如果您同时看到两者,则表示您使用的是 64 位 Wine Prefix。希望这能有所帮助!!

答案2

我在脚本中需要一些类似的内容,因此根据@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 位 Wine 前缀上我有:

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

答案3


感谢@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然后命令必须包含该目录
才能读取文件夹内部的 regedit winearch 设置。

答案4

您可以安装 winetricks,然后在终端中输入以下内容:

 sudo apt-get install winetricks

然后运行 ​​winetricks,然后您就可以在首选项中看到它。

相关内容