系统更新后,我的 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。