ま た か (bobthefishでstring関係のエラーが出た - in neuro)
軽い気持ちでapt-get update && apt-get upgrade
したところ、fishが2.7.0になった。その後、argparse
がないとかなんとかのエラーが出る。
bobthefishが内部で使っているコマンドなのでテーマを描画しようとする度に大量のエラーが出て、コンソールが使い物にならない。
aptレポジトリは既にfishが用意しているものなので乗り換え先もない。仕方がないのでapt版は捨てて自前ビルドすることにした。 しばし懐かしのbashに戻ることになる。補完が効かなくなるので少しストレスフルだ。
purge
は設定ファイルも消した気がするので、config/fish/config.fish
も消えたりしないよなと少し怖くなったのでremove
にする。
$ sudo apt-get remove fish
fish公式からtarballを持ってきて、解凍し、ビルドする。
$ wget https://fishshell.com/files/2.7.0/fish-2.7.0.tar.gz $ tar xvf fish-2.7.0.tar.gz $ cd fish-2.7.0 $ ./configure $ make $ sudo make install
これで/usr/local/
にfishが入った。とりあえず起動してみる。これで直らないなら仕方ない、fishのgitレポジトリから最新版を取ってきて、それでもダメならissueを立てるしかない。
$ /usr/local/bin/fish ~>
よろしい。テーマも元通り表示され(設定がそのまま使えている可能性が高い)、エラーメッセージも出ていない。
とりあえずこのままfishを使い続けることとして、pathがaptの頃と変わってしまったので(/usr/bin/fish -> /usr/local/bin/fish)、いくつかの設定を変えておかないと死ぬ危険性がある。
まずはchshだ。
$ chsh -s /usr/local/bin/fish [username] you may not change the shell for [username]
は? ちょっとよくわからないですね……
紆余曲折あり、/etc/shells
を変えていないことに気付いた。
$ sudo su # vim /etc/shells (/usr/local/bin/fishを書き足す)
これでchsh
は通った。
次はtmux
だ。実を言うと、そのままtmux
に入った後新規ウインドウを作れなかったので気付いた。
.tmux.conf
に以下のような部分があったので直す。
# default shell
set-option -g default-shell /usr/local/bin/fish
set-option -g default-command /usr/local/bin/fish
なぜだかよくわからないが一度tmux
のセッションを全て閉じないと解決しなかった。
というわけでとりあえずfishは動くようになった。