事件
ラズパイを買ったので色々設定していたら、突然ログインシェルを変更出来なくなった。
結論
/etc/shells
から現在のシェルを消すと何も出来なくなる
発端
最近fishがお気に入りなので、ラズパイにも入れようと思った。 ここに書いてある通りに入れてchshしてみたら、最新2.6に対してinstallされたのが、2.1だった。(chshして再ログインする前に動作させろという話もある。ついでに言うと割と時間がかかったので先にapt showで確認すれば良かった感が強い。)
しょうがないので手動で入れようという話になった。
進展
github.com 入れ方が全部README.mdに書いてあって、完全に神という感じ。 昔読まずにやっていたので、無いプログラムとか一杯あってくろうした記憶がある。 公式はちゃんと読もう。 どうせ編集とかはしないので、autoconfも入らなくなるし、Releaseの方をやれば良かった感は強い。
sudo apt-get install build-essential ncurses-dev libncurses5-dev gettext autoconf autoreconf --no-recursive ./configure make sudo make install
事件
install出来たし、chshするぞと思ったが、その前に/etc/shells
を書き換えないといけないのだった。と言って/usr/bin/fish
を/usr/local/bin/fish
に変えた。
いざ、chsh -s /usr/local/bin/fish
!!!!!!!!!!
すまない、何を言っているのかわからないのだが。
見る人が見たらわかるかもだけど、SHELLがbashなのはコピペとかするときに記法が割と違うので怒られるのが面倒なので、bash on fishしている。
解決
色々やっていたけど、何かが突然舞い降りて、/etc/shells
から/usr/bin/fish
を上書きしたのがいかないんじゃないかっていう風に思って追加したら無事変えられるようになった。