Как заменить старую рыбную установку
Проблема:
⚙ ~ 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. Чтобы это исправить, есть два решения:
- Добавьте новую рыбу в ваш / etc / shells и запустите
chsh -s /usr/local/bin/fish
(как описано в https://github.com/fish-shell/fish-shell)
или предпочтительно
- Используйте PPA, предоставленный проектом fish-shell, и установите новую рыбу также через apt.
Вторая проблема заключается в том, что 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 сама установит локаль, если она не получена.