🐟

M1 Macでfish shellの環境構築(注意点・つまづいた点等)

2022/01/03に公開

はじめに

年末年始休暇の際に、ずっと前からやりたいと思っていた「fish shell」の環境構築を行いました。
お恥ずかしいことに初歩的なところでつまづいたり、注意すべき点があったのでメモしておきます。

環境

  • Apple Silicon(M1)
  • macOS Monterey 12.0.1

導入手順

インストール

Homebrew経由でfishをインストールします。
(後に説明しますが、最終的にはHomebrew経由ではインストールしていません。)

terminal
$ brew install fish

fish shellをデフォルトシェルに設定

インストールしたfishのパスを確認します。

terminal
$ which fish
/opt/homebrew/bin/fish

/etc/shellsに確認したfishのパスを追加します。

terminal
$ sudo vi /etc/shells
terminal
# 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

デフォルトのシェルを変更します。

terminal
$ chsh -s /opt/homebrew/bin/fish

ターミナルを再起動するとshellがfishに変更されています。

👆でやってみたけど...

いくつかの技術記事を参考にしましたが、ほぼ上記手順通りで導入されていました。私も実行してみましたが、私の環境でshellを起動すると、、、

terminal
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をアンインストール

terminal
brew uninstall fish

.config/fishファイルがある場合、こちらも削除しておきます。

terminal
cd ~
rm -rf .config/fish

再度インストール

fishshell公式HPのInstallerからfishをインストール。

fish shellをデフォルトシェルに設定

そして、導入手順と同様に/etc/shellsにパスを追加します。

terminal
$ sudo vi /etc/shells

・・・
・・・
・・・
/bin/zsh
/usr/local/bin/fish

導入手順と同様にデフォルトのシェルを変更します。

terminal
$ chsh -s /usr/local/bin/fish

これで私の環境ではエラー出力されず、通常通りfish shellが使えるようになりました。

さいごに

根本的に解決されてはいませんが、同じようなエラーが出力された方は一度試してみて下さい。
何が悪さしているのかご存知の方は是非コメントでご教授頂けると嬉しいです。

引用

【環境構築】fishの環境設定手順

GitHubで編集を提案

Discussion