macOS Catalina bashからzshをデフォルトシェルとしたため移行について

macOS Catalina bashからzshへ移行IT

2019/10/08にリリースされたmacOS Catalina。
Apple Arcade(サブスクリプション)
iTunesがMusic、TV、Podcastに3分割
Sidecar(iPadをMac Bookの拡張画面として利用)
が出たりとしましたが、他にも微妙な変化がありました。

タイトルの通りですが、
macOS CatalinaからMacはzshをデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。

私は半年くらいアップデートを見送っていましたが、そろそろアップデートしようかなと試みたところ以下のような文面がコンソールに初期表示されるようになりました。

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

shellがzshに変わるからchsh -s /bin/zshを実行してくれ。

んっ?となりましたが、まずはサポートページがあるので確認しました。

スポンサーリンク

移行は簡単

2種類対応方法があるようです。

システム環境設定の「ユーザとグループ」パネルから

  1. Apple メニュー  >「システム環境設定」の順に選択し、「ユーザとグループ」をクリックします。 
  2. 鍵のアイコン  をクリックし、アカウント名とパスワードを入力します。
  3. 左側にあるユーザのリストで自分のユーザ名を「control」キーを押しながらクリックし、「詳細オプション」を選択します。 
  4. 「ログインシェル」メニューからシェルを選択し、「OK」をクリックして変更内容を保存します。

コマンドラインから

ターミナルで、「$ chsh -s path」と入力します。

$chsh -s /bin/zsh

環境変数の移行をしないとPATHが通っていない(プロファイルが反映されていない)

bash プロファイルを使って、環境変数、エイリアス、パス変数の設定などをしている場合(つまり、.bachrcや.bash_profileといったファイルを使用し環境変数、エイリアス、パス変数等の設定を独自に行っている場合)はzshプロファイルも同じように設定してあげないといけません。

サポートページに記載内容のままではここは上手くいかないと思いますので、少しだけ詳細に書きます。以下のファイル以外にもあるかと思いますが、使ったことはないので割愛。

.bash_profile ログイン時に実行されます。
→だから “source ~/.bash_profile”を実行して再度読み込ませる必要がある。

.bachrc ターミナル起動時に実行されます。


zshプロファイルの場合、上記2ファイルに該当するのが以下のファイルです。

.zprofile ログイン時に実行されます。
→だから “source ~/.zprofile”を実行して再度読み込ませる必要がある。

.zshrc ターミナル起動時に実行されます。

サポートページには以下が.zprofileに追加してくださいと記載されている。

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

実際には以下のような内容が必要。

[[ -e ~/.bash_profile ]] && emulate sh -c 'source ~/.bash_profile'

これはbashプロファイルの内容をzsh側から実行しているので、今まで使っていた内容をそのまま使用できます。
以下でもいけるはず。※試してない。

[[ -e ~/.bachrc ]] && emulate sh -c 'source ~/.bachrc'

これでnodebrewとかのPath問題は解決ですね。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

$xcode-select --install

上記で解消されます。

コメント