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将在未收到区域设置时自行设置区域设置