aal*_*lai 18 64-bit wine 32-bit playonlinux
我看到大量线程解释如何创建 32 位前缀,但我想检查我使用的前缀是 32 位还是 64 位。我问的原因是我正在使用 PlayOnLinux,并且我已经创建了一个 32 位虚拟驱动器(例如 X)。现在,当我在文件夹 ~/.PlayOnLinux/wineprefix 中打开 winetricks 时,wineprefix 给了我消息
您使用的是 64 位 WINEPREFIX。如果遇到问题,请在报告错误之前在干净的 32 位 WINEPREFIX 中重新测试。
但是,当我在 ~/.PlayOnLinux/wineprefix/X 中打开 wineprefix 时,该消息没有出现。
如何检查前缀是 32 位还是 64 位?
您所要做的就是浏览 PlayonLinux 的虚拟驱动器。转到 WINEPREFIX/drive_c/ 文件夹并查找 Program Files 文件夹。
如果您只看到 Program Files 而没有 ProgramFiles(x86) 那么您使用的是 32 位 Wine Prefix。如果您看到两者,那么您使用的是 64 位 Wine Prefix。希望这可以帮助 !!
感谢 @wilf 的“WINEPREFIX/drive_c/windows/syswow64”(它有效)..
但我一直在编辑wine 注册表以查找任何揭示
系统正在使用的 winearch 的条目(win32 或 win64),我发现它在:
cat /root/.wine/system.reg | grep -m 1 '#arch' | cut -d '=' -f2
Run Code Online (Sandbox Code Playgroud)
该命令显示: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
Run Code Online (Sandbox Code Playgroud)
最后注意事项:我已经在 kali linux 上对此进行了测试..
如果WINEPREFIX=/root/.wine32那么cat命令必须包含该目录
才能读取内部文件夹以进行 regedit winearch 设置。
如果您使用的是 PlayOnLinux,您可以使用 GUI 检查哪个版本 - 打开 PlayOnLinux,单击相关程序上的“配置”,然后查看左侧窗格:

或者,您可以执行 winetricks 所做的(在版本中20140817,大约在 3600 行),即检查 wineprefix 是否存在目录WINEPREFIX/drive_c/windows/syswow64,该目录应该在 64 位 windows/wineprefix 中找到,但不是 32 位版本。这应该适用于普通的 wineprefixes 和 PlayOnLinux 下的那些。
小智 5
我在脚本中需要类似的东西,所以根据@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
Run Code Online (Sandbox Code Playgroud)
这是一些输出:
$ ./winearch.sh
Prefix is 64 bit
Run Code Online (Sandbox Code Playgroud)
在 32 位葡萄酒前缀上,我有:
$ WINEPREFIX=~/.wine32 ./winearch.sh
Prefix is 32 bit
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45645 次 |
| 最近记录: |