Home About
macOS , Bash

macOS Sonoma, ログインシェルを Bash 5.2 へ変更する(備忘録)

諸事情により 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 に設定していますが、これはなしでもよいかも。

macOS のログインシェルを変更する

ここにオフィシャルのログインシェル変更手順の説明 https://support.apple.com/en-us/102360 があるのですが、 問題は、シェルのパスを設定する部分です。

setup login shell path

結局このようにインストールした Bash 5.2 へのパスをここに設定すればよいのですが、 以前は確か直接パスをタイプして記述できたはず。 しかし、今回やってみたところ、直接タイプすることはできず Choose... ボタンから Finder の File Chooser を使って指定するしかないようです。

右クリックするとか何かパスを直接記述する方法がある可能性もあります。(わかりません)

ただ、Finder の File Chooser から /opt/bash-5.2/bin/bash を選択するのが難しかったです。 なんやかんやして結局設定できましたが。

ここまで設定したらあとは、macOS をログアウトしてログインしなおせばシェルが Bash に変わっています。 ただし、あといくつかやるべきことが残っています。

~/.bash_profile を設定

通常 ~/.bashrc に初期設定を書くのですが、それが機能するように ~/.bash_prfile を次のように記述しておきます。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

そして ~/.bashrc に個人用の設定を書いておきます。たとえば、次のように。

export PS1='\[\e[1;32m\]\W $ \[\e[00m\]'

これで再起動するなり(ログアウトしてログインするなり)したあと、環境変数を調べて、シェルが Bash になったことを確認しておきましょう。

$ echo $SHELL
$ echo $BASH_VERSION

まとめ

ログインシェルの変更、もっと簡単にできるようにしてほしい。

Liked some of this entry? Buy me a coffee, please.