在apt
octave版本中,我可以使用命令octave script.m
来执行文件script.m
。同样flatpak run org.octave.Octave script.m
也可以。
但是,为了避免使用长命令flatpak run org.octave.Octave
,我创建了一个~.local/bin/octave
包含内容的文件flatpak run org.octave.Octave
,并将其标记为可执行文件(我已经删除了apt
Octave 版本)。虽然它可以很好地运行 Octave,但octave script.m
不再起作用,它只会打开 Octave 的命令行版本。
我知道我可以打开 Octave 并从内部运行脚本,但我感兴趣的是,是否可以使用 Octave 的 flatpak 版本直接从终端运行该脚本。
答案1
显然,诀窍是取消设置环境变量SESSION_MANAGER
[来源]。
为了不干扰您的常规环境,最好仅使用以下命令取消设置当前命令的环境env
:
env -u SESSION_MANAGER flatpak run org.octave.Octave script.m
当然,您可以通过定义别名等方式让您的生活变得更加轻松:
alias octave='env -u SESSION_MANAGER flatpak run org.octave.Octave'
从现在开始,你可以像以前一样运行八度脚本:
octave script.m
将别名定义包含在您的~/.bashrc
配置文件中,以便它在交互式终端中始终可用。
答案2
我刚刚安装Flatpak 的 Octave 6.4.0在我的 Ubuntu 20.04.3 LTS 系统上,然后重新启动,我就可以script.m
从 MATE 和 GNOME 的终端执行我的文件,非常简单:
flatpak run org.octave.Octave script.m
或者通过以下方式创建包装脚本
cat <<'EOF' | tee ~/.local/bin/octave
#!/bin/bash
flatpak run org.octave.Octave "$@"
EOF
chmod +x ~/.local/bin/octave
并通过执行 从 Flatpak 调用 Octave octave script.m
。确保~/.local/bin
在变量中定义了$PATH
。
注意:请确保您没有同时拥有 Octave 的 deb 和 Flatpak 版本。sudo apt-get autopurge octave
如果您更喜欢 Flatpak,请删除第一个。
如果你的系统上 Flatpak 失败,你可以从一些 PPA通过执行以下命令:
sudo add-apt-repository ppa:devacom/science
sudo apt-get update
sudo apt-get install octave