如何为 Flatpak 版本的 Octave 创建包装器脚本,以避免长命令 flatpak run org.octave.Octave?

如何为 Flatpak 版本的 Octave 创建包装器脚本,以避免长命令 flatpak run org.octave.Octave?

aptoctave版本中,我可以使用命令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,并将其标记为可执行文件(我已经删除了aptOctave 版本)。虽然它可以很好地运行 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

相关内容