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


16

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

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

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

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

Answers:


5

如果您使用的是PlayOnLinux,则可以使用GUI检查哪个版本-打开PlayOnLinux,在相关程序上单击“配置”,然后查看左侧窗格:

或者,您可以执行winetricks的操作(在版本中20140817,大约3600行),这是检查wineprefix中是否存在目录WINEPREFIX/drive_c/windows/syswow64,该目录应在64位Windows / wineprefix中找到,但不能在32位版本中找到。这应该适用于普通的wineprefix和PlayOnLinux下的那些。


5

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

如果仅看到程序文件而没有ProgramFiles(x86),则说明您使用的是32位Wine前缀。如果同时看到两者,则说明您使用的是64位Wine前缀。希望这可以帮助 !!


这不是真的。我只是遇到了这样一个情况,该前缀是在没有x86目录的情况下生成的,但它是64位的,这表明它包含drive_c / windows / syswow64。
邓肯X辛普森

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时,没有“ preference”选项。
有机大理石

没有偏好。
卡尔·莫里森

1


感谢@wilf“ WINEPREFIX / drive_c / windows / syswow64”(它可以工作)..
但是我一直在编辑wine注册表以查找任何揭示
系统正在使用哪种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
Olivier G
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.