我想安装一个非常旧的 Wine (2.18) 版本...因此,我尝试使用 PlayOnLinux 来完成此操作,而不是编译 Wine 源代码。在它的界面上,我们可以选择不同的 Wine 版本:
wine --version
然而,在我的终端上命令的结果是:
wine-6.0.3 (Ubuntu 6.0.3~repack-1)
我想访问我在 PlayOnLinux 界面上安装的 Wine 2.18 的命令行,而不是 Wine 6.0.3...我不确定我是否理解 PlayOnLinux 的工作原理...是否可以这样做使用 PlayOnLinux?或者当我使用 PlayOnLinux 时我应该只从图形界面使用 Wine ?
附加信息
我想从命令行使用 Wine,因为我将运行的 Windows 工具也是命令行。我知道在 Wine 上我们可以exe
直接从命令行执行文件,但是 playonlinux 在终端上没有太多选项,这就是为什么我假设有一种方法可以以某种方式访问它的 Wine...
答案1
是的,PlayOnLinux 是一个以 GUI 为中心的应用程序。是的,可以在 POL 之外使用 POL 的 wine 和应用程序。为什么你还需要 wine 2.18,它很旧而且很可能很坏?您使用的工具是什么?也许可以用更好的方式安装它,或者有一个 Linux 版本/好的替代方案。
您的主目录中有一个名为 的目录.PlayOnLinux
。里面有几个文件夹,但我们只需要 wine 和 wineprefix。在前缀内,找到前缀根 - 它始终包含该drive_c
文件夹,然后运行export WINEPREFIX=$PWD
.这将设置一个环境变量来指向您要操作的前缀。然后,转到~/.PlayOnLinux/wine
并找到 wine 可执行文件。它应该在一个bin
文件夹中。然后命令./wine cmd
并导航至C:
。然后它应该会带您到您的前缀,您可以在其中随心所欲地使用该工具。当你完成后,只需exit
.
答案2
萨夫琴科·德米特里的回答这里解释了如何在 Linux 终端中获取 Wine 命令 shell。然而,此解决方案的一个问题是,您没有在 PlayOnLinux 中配置的完整 wineprefix 中工作。例如,您无法访问您配置的所有 Windows 驱动器,我不知道还有什么。
你可以通过使用 PlayOnLinux 本身打开一个真正的 Wine/Windows 终端,一个命令提示符,它以 Windows 术语命名,如果我没记错的话,它会给你完整的 wineprefix 体验。为此,我配置了一个名称为“Win7x86PROGS console”的 PlayOnLinux 快捷方式,以在名为“Win7x86PROGS”的 wineprefix 中运行,如下所示:
#!/usr/bin/env playonlinux-bash
[ "$PLAYONLINUX" = "" ] && exit 0
source "$PLAYONLINUX/lib/sources"
export WINEPREFIX="/home/db-inf/.PlayOnLinux/wineprefix/Win7x86PROGS"
export WINEDEBUG="-all"
cd "/home/db-inf/.PlayOnLinux/wineprefix/Win7x86PROGS/drive_c/windows/command"
POL_Wine start.exe "$@"
路径WINEPREFIX
必须是绝对路径(我是db-inf),cd路径可以~/.PlayOnLinux/...
代替。 wine 程序start.exe
将尝试打开指定为 的文件"$@"
,根据 Windows 设置,或者当"$@"
为空或指定 DOS 或 Windows CLI 可执行文件时,它会打开一个控制台来执行该文件。因此,您可以在 wineprefix 中打开控制台,然后运行旧的 McAfee 病毒扫描,如下所示:
$ playonlinux --run "Win7x86PROGS console" 'G:\PROGRAMS\McAfee\scan'
使用 Windows 路径和路径语法(单引号以保留反斜杠),或使用 Linux 路径(使用我的 wineprefix 中配置的 Windows G:-驱动器),如下所示:
$ playonlinux --run "Win7x86PROGS console" "/opt/.win-gdrive/PROGRAMS/McAfee/scan.exe"
PlayOnLinux 将转换路径以使用 wineprefix 的配置驱动器。一旦子程序完成,start.exe
将关闭控制台。这可能会很麻烦。 shell 命令cmd.exe
本身不会打开 Windows 控制台,但您可以使用它来保持start.exe
控制台打开,如下所示:
$ playonlinux --run "Win7x86PROGS console" cmd /K "/opt/.win-gdrive/PROGRAMS/McAfee/scan.exe"
或者在 Windows 风格中,大小写不重要,并且可以省略.exe
文件扩展名:
$ playonlinux --run "Win7x86PROGS console" cmd /K 'G:\PROGRAMS\MACafee\sCaN'
它cmd
的选项/K
将使控制台保持打开状态。
我什至配置了一个与 mime type 关联的桌面文件application/x-ms-dos-executable
,以从我的 Linux 文件管理器启动 Windows 控制台程序。