我尝试使用 ppa 在 wine 1.5 上使用 winetricks 安装 d3dx9,但一直出现错误。我尝试过:
WINEARCH=win32 WINEPREFIX=~/.win32 winecfg
sudo WINEARCH=win32 WINEPREFIX=~/.win32 winetricks
仍然会出现这个错误:
wine cmd.exe /c echo '%ProgramFiles%' returned empty string
如果我wine cmd.exe /c echo '%ProgramFiles%'
在终端中输入C:\Program Files
,路径似乎正确,但当我运行 winetricks 时却不正确。
我也尝试过注册表修复没有运气。
有任何想法吗?
答案1
我看到您在其中一个命令中使用了 sudo :这可能是主要问题,因为 sudo 不应该与或winetricks
一起使用(仅在运行时);请参阅我的帖子末尾的评论。*wine
winetricks
sudo apt-get install wine
当我成功将 d3dx9 安装到单独的 wine 前缀时(我看到您也在使用该前缀),我在终端中使用了以下命令。
WINEPREFIX=$HOME/.myprefixname winetricks d3dx9
这是我使用以下命令获得的大量输出的一部分WINEPREFIX
:
Executing cabextract -q -d /home/mike/.myprefixname/dosdevices/c:/windows/system32 -L -F d3dx9*.dll /home/mike/.myprefixname/dosdevices/c:/windows/temp/_d3dx9/apr2006_d3dx9_30_x86.cab
您必须更改.myprefixname
为您自己的前缀的名称;有关 Wine 前缀及其使用的更多解释,请参阅这个问题。
您只需在创建前缀时指定WINEARCH=win32
或 64 位等效项,因为之后无法更改,如上所述在 WineHQ. 如果您指定的值与创建时的值Wine
不同,也将拒绝加载。WINEARCH
只需进入终端winetricks d3dx9
即可将 directX 安装到您的默认~/.wine
文件夹中。
*这是最重要的重要的请注意,使用winetricks
或 安装时wine
,您不需要使用 sudo,因为您不是将文件安装到系统中,而是安装到 Wine 文件夹或主文件夹中单独的 wine 前缀中。使用 sudo 可能会导致您遇到的路径问题,如实际链接给定。在葡萄酒常见问题它指出
使用 sudo 运行...还有一个额外的好处,就是在此过程中破坏了 ~/.wine 文件夹的权限。如果您使用 sudo 运行 Wine,则需要修复权限错误...然后运行 winecfg 以再次设置 Wine。
因此,我还应该检查你的权限并参考葡萄酒常见问题文章中,因为即使重新安装,您也需要重置权限wine
。如果您已使用 sudo 并且wine
现在 root 拥有某些文件,则需要通过从葡萄酒常见问题:
cd $HOME
sudo chown -R $USER:$USER .wine
.wine
如果您使用了,请用您的前缀替换;或者,如果您同时拥有文件夹和前缀,WINEPREFIX
请对该命令同时使用。.wine
答案2
我通过授予用户权限解决了这个问题:
YOURUSERNAME@nt401: ~ $ sudo chgrp -R YOURUSERNAME ~/.cache/winetricks/
YOURUSERNAME@nt401: ~ $ sudo chown -R YOURUSERNAME ~/.cache/winetricks/
希望这对其他人有帮助。
答案3
我遇到了类似的问题,我通过使用导出WINEARCH=win64
而不是export WINEARCH=win32
这是因为您的主目录中的 .wine 目录是 64 位而不是 32 位。这就是为什么之后echo %ProgramFiles%
会返回,因为它找不到适合 32 位架构的 .wine 目录。