WINEPREFIX 有什么作用?

Lin*_*eak 3 wine

操作系统:Linux Mint 18.3 Cinnamon 64 位。

我先告诉你我是如何安装Wine的,我不需要解释。

我删除了同一程序的旧包:

sudo apt-get purge wine-devel-amd64 wine-devel
Run Code Online (Sandbox Code Playgroud)

按照官方声明,我对我的形象做了一些改动:

wget -q -O - https://dl.winehq.org/wine-builds/Release.key | sudo apt-key add -
echo "deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main" | sudo tee /etc/apt/sources.list.d/wine.list
sudo apt-get update
sudo apt-get install --install-recommends winehq-stable
Run Code Online (Sandbox Code Playgroud)

现在,我想我可能会以官方方式安装 Lightshot :

wine ./setup-lightshot.exe
Run Code Online (Sandbox Code Playgroud)

但有人抱怨我使用了错误版本的 Windows

安装程序可能是 32 位的。并winetricks告诉我:

You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
Run Code Online (Sandbox Code Playgroud)

我不知道是什么WINEPREFIX,但我设法创建了一个 32 位的,如下所示:

WINEARCH=win32 WINEPREFIX=/home/vlastimil/.lightshot winecfg
Run Code Online (Sandbox Code Playgroud)

我配置为与 Windows 10 兼容。

然后我按如下方式安装了 Lightshot:

WINEPREFIX=/home/vlastimil/.lightshot wine start /unix /home/vlastimil/setup-lightshot.exe
Run Code Online (Sandbox Code Playgroud)

任何人都可以详细说明是什么WINEPREFIX,以及为什么我不能只使用:

wine ./whatever.exe
Run Code Online (Sandbox Code Playgroud)

我将感激不尽。

Ste*_*itt 6

Wine 支持并排多个“Windows 安装”;这些是“Wine 前缀”所指的内容。它的默认前缀是~/.wine,但可以使用WINEPREFIX变量指定任何其他前缀。

前缀包含一个完整的 Wine 环境,及其设置和安装的软件。设置进入各种注册表(user.reg等),安装的软件进入前缀内的驱动器(通常为drive_c)。使用多个前缀,您可以维护多个环境,每个环境都有自己的软件 - 确保设置保持隔离,并且一个软件不会干扰另一个。(这也意味着当设置被无可挽回地搞砸时,重新安装的次数就会减少!)

前缀可以支持 32 位程序、64 位程序或两者。默认情况下,两者都受支持,假设 Wine64 和 Wine32 可用。你最终得到了一个 64-bit-only ~/.wine; 大概在创建时,只有 Wine64 可用。WINEARCH可用于确定新创建的前缀的体系结构(无需在创建前缀后指定)。组合前缀存在一些问题,这会阻止许多 32 位程序在那里正常工作,因此暂时最好为它们使用 32 位前缀。

如果你没有特别关心的东西~/.wine,你可以删除它并重新开始,以避免必须设置WINEPREFIX。请注意,安装 Windows 软件时创建的桌面条目确实设置了适当的变量,因此如果您只使用桌面条目,则在初始设置后不必担心它们。

葡萄酒常见问题有许多相关的答案。