M1 Macでfish shellの環境構築(注意点・つまづいた点等)
はじめに
年末年始休暇の際に、ずっと前からやりたいと思っていた「fish shell」の環境構築を行いました。
お恥ずかしいことに初歩的なところでつまづいたり、注意すべき点があったのでメモしておきます。
環境
- Apple Silicon(M1)
- macOS Monterey 12.0.1
導入手順
インストール
Homebrew経由でfishをインストールします。
(後に説明しますが、最終的にはHomebrew経由ではインストールしていません。)
$ brew install fish
fish shellをデフォルトシェルに設定
インストールしたfishのパスを確認します。
$ which fish
/opt/homebrew/bin/fish
/etc/shellsに確認したfishのパスを追加します。
$ sudo vi /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/opt/homebrew/bin/fish
デフォルトのシェルを変更します。
$ chsh -s /opt/homebrew/bin/fish
ターミナルを再起動するとshellがfishに変更されています。
👆でやってみたけど...
いくつかの技術記事を参考にしましたが、ほぼ上記手順通りで導入されていました。私も実行してみましたが、私の環境でshellを起動すると、、、
error: Unable to open universal variable file '/': Permission denied
error: Unable to open universal variable file '/': Permission denied
error: Unable to open universal variable file '/': Permission denied
ターミナルを立ち上げると上記のようにエラーが複数行出てしまう結果に...。
因みにfishは普通に使えるのですが、コマンドを入力する度に上記のエラー文が2行くらい出てきてしまうので出力が見え辛い...。
解決策を探し、いくつかヒットした中で、私が試して一応解決した手順をメモしておきます。
<E> fish: Unable to open universal variable file '...': Permission denied #3988
Fish Shell: "error: Unable to open universal variable file '/': Permission denied" [closed]
一応の解決策
公式HPのInstallerからインストールすることで一応解決
Homebrew経由でインストールしていたfishをアンインストールして、fishshell公式HPのInstallerからインストールするとエラーが出力されなくなりました。
一度fishをアンインストール
以下でHomebrewからfishをアンインストール
brew uninstall fish
.config/fishファイルがある場合、こちらも削除しておきます。
cd ~
rm -rf .config/fish
再度インストール
fishshell公式HPのInstallerからfishをインストール。
fish shellをデフォルトシェルに設定
そして、導入手順と同様に/etc/shellsにパスを追加します。
$ sudo vi /etc/shells
・・・
・・・
・・・
/bin/zsh
/usr/local/bin/fish
導入手順と同様にデフォルトのシェルを変更します。
$ chsh -s /usr/local/bin/fish
これで私の環境ではエラー出力されず、通常通りfish shellが使えるようになりました。
さいごに
根本的に解決されてはいませんが、同じようなエラーが出力された方は一度試してみて下さい。
何が悪さしているのかご存知の方は是非コメントでご教授頂けると嬉しいです。
Discussion