諸事情により macOS を初期化して再設定することになった。 デフォルトのログインシェルは Zsh なので、これを Bash へ変更した。 これは 以前にも書いたのですが、 基本的にこのページ https://ed.com/bash-from-source/ の通りにセットアップするだけです。 ただ、macOS Sonoma でやってみたところ、いくつか躓いた点があったので備忘録として書き残します。
https://ftp.gnu.org/gnu/bash/などからソースを入手します。 今回は bash-5.2.tar.gz を使用しました。
よく見たら最新版は bash-5.2.21.tar.gz でした。
$ tar xf bash-5.2.tar.gz
$ cd bash-5.2
$ ./configure --prefix=/opt/bash-5.2
しかし、ここで:
configure: error: C compiler cannot create executables
と言われた。ビルドするには開発ツールを入れる必要がある。
そこで xcode-select を実行。
$ xcode-select --install
インストールが完了したら、再度 configure して make , make install するだけです。
$ ./configure --prefix=/opt/bash-5.2
$ make
$ sudo make install
$ sudo ln -s /opt/bash-5.2 /opt/bash
シンボリックリンクを /opt/bash に設定していますが、これはなしでもよいかも。
ここにオフィシャルのログインシェル変更手順の説明 https://support.apple.com/en-us/102360 があるのですが、 問題は、シェルのパスを設定する部分です。
結局このようにインストールした Bash 5.2 へのパスをここに設定すればよいのですが、 以前は確か直接パスをタイプして記述できたはず。 しかし、今回やってみたところ、直接タイプすることはできず Choose... ボタンから Finder の File Chooser を使って指定するしかないようです。
右クリックするとか何かパスを直接記述する方法がある可能性もあります。(わかりません)
ただ、Finder の File Chooser から /opt/bash-5.2/bin/bash を選択するのが難しかったです。 なんやかんやして結局設定できましたが。
ここまで設定したらあとは、macOS をログアウトしてログインしなおせばシェルが Bash に変わっています。 ただし、あといくつかやるべきことが残っています。
通常 ~/.bashrc に初期設定を書くのですが、それが機能するように ~/.bash_prfile を次のように記述しておきます。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
そして ~/.bashrc に個人用の設定を書いておきます。たとえば、次のように。
export PS1='\[\e[1;32m\]\W $ \[\e[00m\]'
これで再起動するなり(ログアウトしてログインするなり)したあと、環境変数を調べて、シェルが Bash になったことを確認しておきましょう。
$ echo $SHELL
$ echo $BASH_VERSION
ログインシェルの変更、もっと簡単にできるようにしてほしい。