MacでHomebrewを通常ユーザで使いたくてやったこと

PC環境

初めてHomebrewが必要になった

Homebrewの存在と何をするものかは知っていたのですが、今までHomebrew経由で何かをインストールしないといけない状況にならなかったので、Homebrew自体をインストールしていませんでした。

ところが、rbenv + ruby-buildでRuby3.2.xをインストールしようとしたのですが、Ruby3.2.xからlibyamlが同梱されなくなったことでインストールに失敗してしまいました。
Ruby3.2.xをインストールするにはlibyamlを何かしらの方法でインストールしないといけなくなり、調べてみるとHomebrewからインストールできると分かりました。
なので、これを機にHomebrewをインストールすることにしました。

通常ユーザーではHomebrewのインストールに失敗した

Homebrewの公式ページを見ると「シェルにこのスクリプトをコピペして実行してね」とあるので、素直に従って実行したのですが途中でエラー終了してしまいます。

brew.sh

エラーの理由はsudo権限が通常ユーザーには無いからでした。
普段はセキュリティを考えて通常ユーザーでMacを使っているので「管理者権限に昇格はできれば避けたい、何かないかな?」とHomebrewのインストールマニュアルを見てみたところ、別のディレクトリにインストールする方法はあるみたいなのですが、公式としてはあまりオススメではない模様でした。
ただ、「sudo権限は最初のインストール時だけに必要だよ。その後は要らないよ!」とも書いてあったので、いつも使っているアカウントを管理者ユーザーに昇格させてHomebrewをインストールし、完了したら通常ユーザーに戻す作戦でいくことにしました。

管理者ユーザーに昇格したらHomebrewをインストールできた

手順は以下の通りです。

  1. 既存の管理者ユーザーでログインし直して、いつも使っているアカウントをシステム設定から管理者ユーザーに変更
  2. Mac再起動後、管理者ユーザーに昇格したアカウントでMacにログイン
  3. Homebrewの公式ページからインストールスクリプトzshにコピペして実行
  4. 画面の指示に従ってインストール
  5. 「~/.zprofileにeval $(/opt/homebrew〜を追記してね」とメッセージが出たが、手元の環境だと~/.zprofileは無いので~/.zshrcに追記
  6. zshを再起動
  7. brew helpを実行→ヘルプが表示されたのでインストールOK
  8. Macからログアウトして既存の管理者ユーザーでログインし、システム設定からいつものアカウントを通常ユーザーに変更
  9. Mac再起動後、いつものアカウントでログイン
  10. ashでbrew helpを実行→ヘルプが表示されたので通常ユーザーでも使えそう

通常ユーザーに戻した後でもHomebrewを使用できた

さっそく、libyamlをインストールしてみます。

$ brew install libyaml
 ==> Downloading 
 ################################ 100.0%
 ==> Pouring libyaml--0.2.5.arm64_ventura.bottle.tar.gz
 🍺  /opt/homebrew/Cellar/libyaml/0.2.5: 10 files, 351.3KB
 ==> Running `brew cleanup libyaml`...
 Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
 Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
$ 

エラーも無く、ぱっと見、インストールに成功したようです。

そして、Ruby 3.2.xをインストールします。

$ rbenv install 3.2.1
 Downloading ruby-3.2.1.tar.gz...
   -> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz
 Installing ruby-3.2.1...
 ruby-build: using libyaml from homebrew
 Installed ruby-3.2.1
$ rbenv versions
 system
 3.2.1

これでRuby 3.2.xをインストールできました。