Ubuntu 如何更换旧的fish装置
问题:Ubuntu 如何更换旧的fish装置,ubuntu,apt,fish,omf,Ubuntu,Apt,Fish,Omf,问题: ⚙ ~ fish --version fish, version 2.5.0-238-ga811ae2 ⚙ ~ echo $FISH_VERSION 2.2.0 正在尝试调试: ⚙ ~ exec fish set: Invalid character “.” in variable name. Only alphanumerical characters and underscores are valid in a variable name. /usr
⚙ ~ fish --version
fish, version 2.5.0-238-ga811ae2
⚙ ~ echo $FISH_VERSION
2.2.0
正在尝试调试:
⚙ ~ exec fish
set: Invalid character “.” in variable name. Only alphanumerical characters and underscores are valid in a variable name.
/usr/local/share/fish/functions/setenv.fish (line 10): set -gx $v $$v
^
in function “setenv”
called on line 46 of file ~/.config/fish/config.fish
with parameter list “LANG en_US.UTF-8”
from sourcing file ~/.config/fish/config.fish
called during startup
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
~ echo $FISH_VERSION
2.5.0-238-ga811ae2
我从apt安装了fish 2.2,然后直接从github repo安装了fish 2.5。但它仍在使用老鱼,我不确定这里发生了什么。这里至少有两个问题: 第一个问题是,你仍然在处死这条老鱼。原因可能是您将新的fish安装到了/usr/local中(很可能是因为您使用默认为该目录的
makeinstall
安装了它),但尚未将shell设置调整为指向新的
要确认这一点,请运行键入-a fish
。它应该显示fish同时位于/usr/bin和/usr/local/bin中。要解决此问题,有两种解决方案:
- 将新的fish添加到/etc/shell并运行
(如中所述)chsh-s/usr/local/bin/fish
- 通过apt使用并安装新的fish
第二个问题是
setenv
错误。您的config.fish中可能有类似于setenv“LANG en_US.UTF-8”
(带引号)的内容。这将产生可怕的错误,并且不会像您希望的那样设置变量。解决办法是
- 使用
或至少set-gx LANG en_US.UTF-8
(不带引号)setenv LANG en_US.UTF-8
- 停止设置$LANG-fish,因为版本2.4.0将在未收到区域设置时自行设置区域设置