Answers:
我猜您打算直接用wine启动exe程序,所以告诉内核用wine运行win32二进制文件,
摩binfmt FS,添加一行none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
到/ etc / fstab文件并执行mount -a
之后
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
注册二进制格式
因此,稍后,您只需使用 /path/to/XX.exe
请注意,这还会引入安全性问题。
root
帐户下执行此操作。我添加/path/to/
了$PATH
变量,可以从命令行运行XX.exe
,但仍然不能从运行dmenu
。对不起,我xmobar
在这个问题上弄错了。
请确保wine
是在您的路径,并创建包含以下内容的shell脚本:
#!/bin/sh
wine "$HOME/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe"
通过运行来授予自己执行脚本的权限chmod u+x SCRIPT_NAME
。
然后,从文件管理器运行该脚本。它将启动wine,它将运行TextAloudMP3.exe。
textaloud
在/usr/local/bin
文件夹中创建了一个脚本。第一行是#! /bin/bash
第二行wine ...
。textaloud不会出现在xmobar
启动器中。运行时,sh textaloud
它写道$ sh textaloud wine: cannot find '~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe'
sh textaloud
已经可以使用,但只能在目录中使用,/usr/local/bin
并且在xmobar启动器中仍然不可见。
$@
在程序名称后添加,以便它传递所有参数。而且我通常将这样的脚本放在〜/ bin中(当然,要确保它在您的PATH中)。
~/.bash_aliases
吗?
为您的用户设置一个二进制路径。运行mkdir ~/bin
并将此目录添加到您的PATH。
完成此操作的方式可能会因您使用的外壳和桌面环境而异。
在这里,您可以找到如何在各种shell中更改PATH的方法。
如果您的桌面环境不关心您的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保持不变。您没有运行两个进程。$@
取代有你运行脚本的参数,如果有的话。因此,这些将传递给您的酒程序。现在您可以像下面这样从shell运行程序了:
textaloud
创建一个应用程序启动器。如今,这些文件已被标准化为.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
。
完成此操作后,您的桌面环境应找到您的快捷方式文件,并能够使用脚本运行该程序。如果不是,请重新加载或重新启动它。
textaloud
在dmenu
启动器中看不到。
~/.xsession
X11进行安装?尝试export PATH="$HOME/bin:$PATH"
在用于运行dwm并重新启动X11的行之前添加该行。
~/.xsession
吗 请注意,终端的PATH可能与X11会话的PATH不相等。
$@
为了安全起见,应使用双引号。这样就变成了exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"
。
/proc/sys/fs/binfmt_misc/register
。它写道/proc/sys/fs/binfmt_misc/register E667: Fsync failed
。我也尝试在用户帐户sudo
下以及根帐户下进行编辑。两者都写入此错误。