如何创建一个32位的WINE前缀?

如何在Ubuntu 12.04 64位系统上创建一个32位的Wine前缀?
7个回答

要在64位的Ubuntu系统上创建一个32位的WINE前缀,你需要打开终端并运行以下命令:
WINEPREFIX="$HOME/prefix32" WINEARCH=win32 wine wineboot
  • WINEPREFIX是该前缀目录的路径
  • 此目录不能事先存在,否则您将会遇到错误!请勿在Nautilus中手动创建或使用mkdir命令来创建。

谢谢!这个问题我已经苦恼了一个星期 :( ,希望提示能更具体一些。 - Aquarius Power
你可以在任何地方使用双引号,不需要单引号 :) - Smile4ever
2当我运行这个命令时,Wine要求输入绝对路径(例如/home/username/prefix32而不是~/prefix32)。 - shea
@shea根据要求修改了原始帖子。 - Shelvacu
1另外,你可以完全省略引号。 - Smile4ever
修复中:存储共享模式未实现。 错误:mscoree:LoadLibraryShim 读取注册表键 installroot 时出错。 错误:mscoree:LoadLibraryShim 读取注册表键 installroot 时出错。 错误:mscoree:LoadLibraryShim 读取注册表键 installroot 时出错。 错误:mscoree:LoadLibraryShim 读取注册表键 installroot 时出错。 修复中:存储共享模式未实现。 修复中:iphlpapi:NotifyAddrChange (句柄 0x10ee8a0,重叠 0x10ee8ac):存根 Wine:配置文件 '/home/test/.wine' 已更新。 - Bonn
这个命令可以吗:"sudo apt-get install wine32"? - haytham-med haytham
我试图执行这个操作,使用sudo -i和我的密码来获取一个32位的Wine前缀,但是... Ubuntu系统告诉我:“wine: '/home/jjpg' 不属于你,拒绝在那里创建配置目录”。如果我是唯一的超级用户,怎么会这样呢? - Juan

这是我做的方式。对我来说,上面的答案没有起作用。

首先,我用以下命令删除了Wine文件夹:

rm -r ~/.wine

如果它告诉你目录不为空,只需添加-f(强制)标志。请注意,这将删除安装在此前缀中的任何Windows应用程序!
您的命令应该类似于这样:
rm -r -f ~/.wine

然后使用以下命令创建一个32位前缀:
WINEARCH=win32 WINEPREFIX=~/.wine wine wineboot

25首先,你不需要在前面写sudo。此外,这将删除整个虚拟Windows驱动器。 - Shelvacu
17这个回答不正确,因为你删除了64位版本。你只需要创建另一个前缀,这样就可以两者都有了。 - Alexander Kim
7在你写"在前面写sudo"的地方,正确的解决方案是添加-f,如rm -rf ~/.wine。添加sudo不会有任何作用。另外,WINEPREFIX=~/.wine是多余的,因为那是默认位置。 - Brendan Long
5为什么不直接创建一个.wine32目录呢? - Mateen Ulhaq
@Levan 你到底怎么会不行呢?你的命令删除了整个现有的wine目录,而你只需要创建一个单独的wine32前缀就可以了 - 没必要删除现有的前缀。 - numbermaniac
这是唯一对我有效的解决方案! - Gilberto Albino

只创建一个wine32前缀/目录(没有wine64前缀/目录)是行不通的。如上所建议(但没有完全写出来)-如果你想避免使用winecfg(在自动化中很烦人-你需要以某种方式关闭它),这里是完整的解决方案:先创建一个wine64,然后再创建一个wine32目录。如果你使用winetricks来检查它(它对wine64目录给出警告),它将正确报告两者(wine64会给出警告,因为它是64位的,而wine32不会,因为它是32位的)。解决方案如下;
rm -Rf ./wine   # carefull, this deletes your entire wine config (fine if you want to start afresh)

WINEPREFIX=~/.wine wineboot

...等一下...

WINEPREFIX=~/.wine32 WINEARCH=win32 wineboot

完成这个之后,你可以:
WINEPREFIX=~/.wine32 WINEARCH=win32 your_32bit_executable.exe

WINEPREFIX=~/.wine WINEARCH=win64 your_64bit_executable.exe

似乎在我的Ubuntu Trusty 14.04上,我不需要删除amd64(win64)的"./wine"文件夹。我之前安装了3个程序,它们继续正常工作。 我只创建了一个特定的win32目录"./wine32" 接下来,我使用以下命令安装了.NET 4.0: $ WINEPREFIX=~/.wine32 winetricks dotnet40,并且它完美地工作。 - Antonio

测试是否已启用多架构:

dpkg --print-foreign-architectures | grep -q i386 && sudo dpkg --add-architecture i386

然后安装wine32:

sudo apt-get update && sudo apt-get install wine32

最后,不要删除您的64位wine安装。只需将其重命名为.wine64,然后为您的32位应用程序创建一个新的.wine文件夹:

mv ~/.wine ~/.wine64 && WINEARCH=win32 wineboot


我遇到了同样的问题。
输入 WINEARCH=win32 WINEPREFIX=~/.wine winecfg 它应该开始下载所需的驱动程序。我认为这个问题是在正常下载过程中出现的问题。对我来说,当它最初下载驱动程序时,我的互联网断开了连接。

12您永远不需要以root权限运行Wine! - user877329

在删除了.wine32后,使用命令$ WINEPREFIX =〜/ .wine32 winetricks dotnet40安装.NET 4.0对我有用。
向Antonio致敬。

方便的shell .rc代码片段
alias wine32='WINEARCH=win32 WINEPREFIX=~/.win32 wine'
alias wine64='WINEARCH=win64 WINEPREFIX=~/.win64 wine'
win32() {
    export WINEARCH=win32
    export WINEPREFIX=~/.win32
}
win64() {
    export WINEARCH=win64
    export WINEPREFIX=~/.win64
}