はじめに
久々にMSYS2の更新を行ったところ、どうやらexe
経由での起動方法に変更されたようだ。
参考: pacman -Syu で更新したら msys2 や mingw32/64 が起動しなくなった…(震え声
cmd
経由での起動であればMSYS2でWindowsにzsh環境を導入するやMSYS2でデフォルトシェルをzshにするにある方法でログインシェルの変更が出来たが、exe
経由となったためこれらの方法は使えなくなってしまった。
調べてみると割と簡単に変更できたので、変更方法を共有したい。
情報元
elieux/msys2-launcherのIssueを見てみると、以下のような投稿が見つかった。
You can either set the login shell of everyone using your MSYS2 installation using nsswitch.conf or use mkpasswd -c to create an /etc/passwd entry that you can modify.
(引用元: Add an ability to configure default shell #3)
方法1: /etc/nsswitch.conf
を修正する
/etc/nsswitch.conf
を何かしらのエディタで開き、下記のようになっているところを、
db_shell: cygwin desc
こう変える。
#db_shell: cygwin desc
db_shell: /usr/bin/zsh
変更後にexe
を再度起動すると、zsh
が立ち上がる。
方法2: /etc/passwd
を作成して修正する
デフォルトでは/etc/passwd
がないため、mkpasswd -c
でファイルを作る。
$ mkpasswd -c > /etc/passwd
その後、行末の/usr/bin/bash
を/usr/bin/zsh
に修正すればよい。
蛇足: /etc/nsswitch.conf
と/etc/passwd
ではどちらが優先される?
試してみたところ、/etc/passwd
に書いたほうが立ち上がるようだ。