我应该在哪里找到 fish_add_path 命令?

我应该在哪里找到 fish_add_path 命令?

系统更新后,我的 fish shell 提示不再起作用。每当我打开终端时,都会收到此错误:

/usr/share/fish/vendor_conf.d/snapd.fish (line 3): 
fish_add_path -aP $snap_bin_path
^
from sourcing file /usr/share/fish/vendor_conf.d/snapd.fish
    called on line 294 of file /usr/share/fish/config.fish
from sourcing file /usr/share/fish/config.fish
    called during startup
Welcome to fish, the friendly interactive shell
Type `help` for instructions on how to use fish

我已经确认fish_add_path无法从命令行调用它,这让我很惊讶,因为这是 fish 中包含的基本辅助功能之一

其他相关细节:

~> snap --version
snap    2.54.2+20.04ubuntu2
snapd   2.54.2+20.04ubuntu2
series  16
ubuntu  20.04
kernel  5.13.0-28-generic
~> fish --version
fish, version 3.1.0
~> which fish
/usr/bin/fish
~> echo $PATH
/home/user/.amplify/bin /home/user/.local/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin /home/user/.local/bin

...所以 /snap/bin 无论如何都在$PATH

我假设对 fish 和/或 snap 的更新触发了此错误。假设在 Ubuntu 上全新安装 fish,其中应该我发现fish_add_path工具?

答案1

您可能会想到set -U fish_user_paths早期版本的鱼。fish_add_path 在 fish 3.2.0 中添加但您正在运行 fish 3.1.0。

您可以从 PPA 升级到最新版本的 fish (3.3.1),如下所示:

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt upgrade

这是从官方鱼类主页链接的 PPA。根据3.x 发布系列页面,这应该适用于 Ubuntu 的 bionic、focal、groovy、hirsute 和 xenial 版本。

运行这些命令可以在我下次打开 fish shell 时解决此问题。


或者,您可以注释掉相关行/usr/share/fish/vendor_conf.d/snapd.fish。看起来snap 假定你正在运行较新版本的 fish

相关内容