Wine 1.5 %ProgramFiles% 错误

elc*_*nrs 4 wine winetricks 12.10

我正在尝试在 ppa 的 wine 1.5 上安装带有 winetricks 的 d3dx9,但我不断收到错误消息。我试过:

WINEARCH=win32 WINEPREFIX=~/.win32 winecfg 
sudo WINEARCH=win32 WINEPREFIX=~/.win32 winetricks
Run Code Online (Sandbox Code Playgroud)

并且仍然收到此错误:

wine cmd.exe /c echo '%ProgramFiles%' returned empty string
Run Code Online (Sandbox Code Playgroud)

如果我输入wine cmd.exe /c echo '%ProgramFiles%'终端,我得到C:\Program Files的路径似乎是正确的,但在我运行 winetricks 时却不是。

我也尝试过这个regedit 修复,但没有运气。

有任何想法吗?

小智 6

我看到您在其中一个winetricks命令中使用了 sudo :这可能是主要问题,因为 sudo 不应该与wineor一起使用winetricks(仅在运行时sudo apt-get install wine);在我的帖子末尾看到我的评论。*

当我成功地将 d3dx9 安装到一个单独的 wine 前缀时,我看到你也在使用它,我在终端中使用了以下命令。

WINEPREFIX=$HOME/.myprefixname winetricks d3dx9
Run Code Online (Sandbox Code Playgroud)

这是我使用以下命令从命令中获得的大量输出的一部分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
Run Code Online (Sandbox Code Playgroud)

必须改成.myprefixname自己前缀的名字;有关葡萄酒前缀及其用途的更多解释,请参阅此问题

您只需要WINEARCH=win32在创建前缀时指定或 64 位等效项,因为之后无法更改,如WineHQ 所述Wine如果您指定WINEARCH与创建它时使用的不同,也将拒绝加载。

只需在终端中输入winetricks d3dx9就会将 directX 安装到您的默认~/.wine文件夹中。

*最重要的是要注意,使用winetricks或安装东西时wine,您不需要使用 sudo,因为您不是将文件安装到系统,而是安装到 Wine 文件夹或主文件夹中的单独 wine 前缀。使用 sudo 可能会导致您遇到路径问题,如给出的实际链接中所述。在WineFAQ 中,它指出

与 sudo 一起运行...有一个额外的好处,就是在这个过程中破坏了你的 ~/.wine 文件夹的权限。如果您使用 sudo 运行 Wine,您需要修复权限错误……然后运行 ​​winecfg 以再次设置 Wine。

因此,我还应该检查您的权限并参考WineFAQ文章,因为即使您重新安装wine. 如果您使用了 sudowine并且现在 root 拥有一些文件,您将需要通过从WineFAQ运行以下命令来更改权限:

cd $HOME  
sudo chown -R $USER:$USER .wine 
Run Code Online (Sandbox Code Playgroud)

.wine如果您使用 a ,请替换为您的前缀,WINEPREFIX或者.wine如果您有文件夹和前缀,则使用该命令。

  • 谢谢,`sudo` 是问题所在。我清除并重新安装了 Wine,然后相应地设置了权限,`winetricks` 现在可以在没有 `sudo` 的情况下正常工作并且没有错误。 (2认同)