Как заменить старую рыбную установку

Проблема:

 ⚙  ~  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

Я установил рыбу 2.2 от apt. Затем позже установили 2.5 рыбы непосредственно из репозитория github. Но он все еще использует более старую рыбу, я не уверен, что здесь происходит.

1 ответ

Здесь есть как минимум две проблемы:

Во-первых, вы все еще выполняете старую рыбу. Причина этого, вероятно, в том, что вы установили новую рыбку в / usr / local (скорее всего потому, что вы установили ее с make install(по умолчанию это тот каталог), но не изменил настройки вашей оболочки так, чтобы они указывали на новый.

Чтобы подтвердить это, запустите type -a fish, Это должно показать, что fish находится в / usr / bin и / usr / local / bin. Чтобы это исправить, есть два решения:

или предпочтительно


Вторая проблема заключается в том, что setenv ошибка. У тебя наверное что то типа setenv "LANG en_US.UTF-8" (с кавычками) в вашем config.fish. Это выдаст эту ужасную ошибку и не установит переменную так, как вы хотите. Решение заключается либо в

  • использование set -gx LANG en_US.UTF-8 или по крайней мере setenv LANG en_US.UTF-8 (без кавычек)

или же

  • Прекратите установку $LANG - fish, поскольку версия 2.4.0 сама установит локаль, если она не получена.
Другие вопросы по тегам