macOS 10.15.2 (Catalina) に bash 5.x をインストールする手順をメモしておきます。
bash 5.x のインストール
私の環境では bash 3.2.57 がインストールされていました。
% bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19) Copyright (C) 2007 Free Software Foundation, Inc.
Homebrew に bash 5.0.11 がありました。
% brew info bash bash: stable 5.0.11 (bottled), HEAD Bourne-Again SHell, a UNIX command interpreter https://www.gnu.org/software/bash/ Not installed From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/bash.rb ==> Options --HEAD Install HEAD version ==> Analytics install: 18,398 (30 days), 62,368 (90 days), 316,823 (365 days) install-on-request: 15,364 (30 days), 51,766 (90 days), 255,867 (365 days) build-error: 0 (30 days)
インストールします。
brew install bash
シェルの変更が出来るように、「変更可能なシェル一覧」(/etc/shells
) へ brew で追加インストールした bash 5.x を追加します。
sudo bash -c 'echo /usr/local/bin/bash >> /etc/shells'
chsh
でログインシェルを変更します。 chsh
を実行するとログイン中ユーザのパスワードを入力するよう促されますので、パスワードを入力してシェルの変更を完了します。
chsh -s /usr/local/bin/bash
これで新たにシェルを起動すると bash 5.0.11 が起動するようになりました。
$ bash --version GNU bash, バージョン 5.0.11(1)-release (x86_64-apple-darwin19.0.0) Copyright (C) 2019 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
補完出来るようにする
bash で補完が出来るよう、パッケージを追加インストールします。 Homebrew には補完用パッケージとして bash 3.2 と互換のある bash-completion と bash 4.1 以上と互換のある bash-completion@2 があるようです。
% brew info bash-completion bash-completion: stable 1.3 (bottled) Programmable completion for Bash 3.2 https://salsa.debian.org/debian/bash-completion Conflicts with: bash-completion@2 (because Differing version of same formula) Not installed From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/bash-completion.rb ==> Caveats Add the following line to your ~/.bash_profile: [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" ==> Analytics install: 14,157 (30 days), 43,678 (90 days), 183,138 (365 days) install-on-request: 13,167 (30 days), 40,548 (90 days), 167,932 (365 days) build-error: 0 (30 days)
% brew info bash-completion@2 bash-completion@2: stable 2.10 (bottled), HEAD Programmable completion for Bash 4.1+ https://github.com/scop/bash-completion Conflicts with: bash-completion (because Differing version of same formula) Not installed From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/bash-completion@2.rb ==> Dependencies Required: bash ✘ ==> Options --HEAD Install HEAD version ==> Caveats Add the following to your ~/.bash_profile: [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" If you'd like to use existing homebrew v1 completions, add the following before the previous line: export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d" ==> Analytics install: 4,328 (30 days), 8,812 (90 days), 28,014 (365 days) install-on-request: 4,239 (30 days), 8,703 (90 days), 27,776 (365 days) build-error: 0 (30 days)
今回は bash 5.x を使っている為、bash-completion@2 をインストールします。
brew install bash-completion@2
インストールが完了したら、~/.bash_profile
へ必要な設定を実施します。
echo '[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"' >> ~/.bash_profile
これで bash 5.x でも補完が効くようになりました。