つらねの日記

プログラムの進捗やゲームをプレイした感想などを書き連ねる日記。

You may not change the shell for 'pi'.

事件

ラズパイを買ったので色々設定していたら、突然ログインシェルを変更出来なくなった。

結論

/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!!!!!!!!!!

f:id:turane_gaku:20170621221532p:plain

すまない、何を言っているのかわからないのだが。

見る人が見たらわかるかもだけど、SHELLがbashなのはコピペとかするときに記法が割と違うので怒られるのが面倒なので、bash on fishしている。

解決

色々やっていたけど、何かが突然舞い降りて、/etc/shellsから/usr/bin/fishを上書きしたのがいかないんじゃないかっていう風に思って追加したら無事変えられるようになった。