当我想运行一个 wine 程序时,我必须输入例如
$ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe
可以直接运行吗TextAloudMP3
?我的意思不仅是从命令行(我可以创建别名),而且是在整个图形环境中。我正在启动程序dmenu
。
答案1
我猜你的意思是直接用 wine 启动 exe 程序,所以告诉内核用 wine 运行 win32 二进制文件,
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
挂载 binfmt fs,在 /etc/fstab 中添加一行,mount -a
然后执行echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
注册二进制格式
所以稍后,您只需运行 exe 文件即可/path/to/XX.exe
请注意,这也会带来安全问题。
答案2
确保wine
是在你的路上并创建一个包含以下内容的 shell 脚本:
#!/bin/sh
wine "$HOME/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe"
通过运行 授予您自己执行脚本的权限chmod u+x SCRIPT_NAME
。
然后,只需从文件管理器运行该脚本即可。它将启动 wine,它将运行 TextAloudMP3.exe。
答案3
步骤0
为您的用户设置二进制路径。运行mkdir ~/bin
并将该目录添加到您的 PATH 中。
完成此操作的方式可能会有所不同,具体取决于您使用的 shell 和桌面环境。
如果您的桌面环境不关心您的 shell 配置文件,并且前者可以从终端工作,但不能从桌面环境工作,请检查此已解决的问题。
步骤1
将 shell 和桌面环境设置为遵循新的 PATH 后,您可以将脚本拖放到此处并作为常规命令运行它们,而无需键入其路径。
创建一个简短的 shell 脚本来运行此目录中的 wine 程序,即~/bin/textaloud
:
#!/bin/bash
cd "~/.wine/drive_c"
exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"
并赋予其执行权限。
chmod +x ~/bin/textaloud
上述脚本需要注意三点:
- 路径
cd
是程序将要运行的位置(在哪个目录中)。某些程序可能要求您在特定目录中运行它们。如果您遇到问题,请在那里设置该目录(通常与可执行文件所在的位置相同)。在某些情况下您可能不需要这条线。 - 这些
exec
命令使用以下参数告诉 bash 转变为 wine,因此这不再是 bash 运行 wine,而是 bash 进程变成 wine。 PID 仍然存在。您没有运行两个进程。 - 将
$@
替换为您运行脚本的参数(如果有)。所以这些会被传递到你的 Wine 程序。
现在您可以从 shell 运行您的程序,例如...
textaloud
第2步
创建应用程序启动器。如今,这些文件已标准化为.desktop
文件,并且许多桌面环境提供图形工具来创建它们。
这是一个示例框架,您可以使用它自己编写。您可能需要提供一个图标(通常为 PNG、SVG 或 XPM)。
[Desktop Entry]
Type=Application
Name=TextAloud
Exec=textaloud
Icon=textaloud.png
将此文件放入~/.local/share/applications/TextAloud.desktop
.图标在 中搜索(以及其他位置)~/.local/share/icons
,因此请确保为您的应用程序找到一个可爱的图标并将其与名称一起放置在那里textaloud.png
。
完成此操作后,您的桌面环境应该找到您的快捷方式文件并能够使用脚本运行该程序。如果没有,请重新加载或重新启动它。
答案4
您考虑过尝试 PlayOnLinux 吗?它可以为您处理所有事情,甚至您可以配置一些文件类型以由 wine 程序打开。