ITで遊ぶ

Mac zshのpathとhomebrew アンインストール

前のiMacで取ったタイムマシーンのバックアップからM1 iMacにファイルを復元するとWindowsのようにいちいち新たにプログラムのインストールをやりなおさなくていいのはとてもいいのだけれど、古いデータもそのまま引き継がれるわけで、それがトラブルの元になったりします。

私の場合、homebrewです。
大昔、Macのパッケージ管理ソフトはportsとhomebrewがあり、私はなんとなくportsを使っていたのですが、homebrewが主流となってhomebrewを使い始めたのでした。
ほとんど忘れていますが、使いはじめたころいろいろ間違いもやらかしていたわけで、M1チップの世界にhomebrewは完全には対応していないので、トラブルが出てきました。

私の場合はcurlを動かすとどこぞのphp5を呼ぶのです。
curlが使えないってことはhomebrewのFAQにあるhomebrewのアンインストールができないってことです。

しかも知らないうちにすごいたくさんPATH定義がなされてる。

いったい誰がこんなに追加しているのだろう、とpathの追加をしているところを探しました。

シェルはAppleさんが推奨しているzshを使っています。

zshは設定ファイルを大量に読みます。

  1. /etc/zshenv
  2. ~/.zshenv
  3. /etc/zprofile
  4. ~/.zprofile
  5. /etc/zshrc
  6. ~/.zshrc
  7. /etc/zlogin
  8. ~/.zlogin

 

中でも/etc/zprofileの中でこんなことしています。

if [ -x /usr/libexec/path_helper ]; then
   eval `/usr/libexec/path_helper -s` 
fi

このpath_helperってのが曲者で”man path_helper”ってコマンドプロンプトで叩くと、

DESCRIPTION 
The path_helper utility reads the contents of the files in the directories 
/etc/paths.d and /etc/manpaths.d and appends their contents to the PATH 
and MANPATH environment variables respectively. 
(The MANPATH environment variable will not be modified unless it is already 
set in the environment.) Files in these directories should contain one path 
element per line. Prior to reading these directories, default PATH and MANPATH
 values are obtained from the files /etc/paths and /etc/manpaths respectively.

要するに/etc/paths.dと/et/manpaths.dのディレクトリーにあるファイルを読んでPATHとMANPATHに追加していくものらしい。
ここにだけあって存在しないファイルをどんどん消した。

次にhomebrewをもう一度、インストールしてみました。

この時にもcurlは使えないのですが、OSXオリジナルのcurlを指定してインストールします。

これがオリジナルのhomebrewで推奨されているスクリプト

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ここに/usr/binをを追加

/bin/bash -c "$(/usr/bin/curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

いったんインストールして、それからアンインストールしました。

すると案の定、スクリプトで消しきれないフォルダーがぞろぞろ。
手作業で全部消して、すっきり。

M1 iMacではしばらくhomebrewを使いません。

当面、これでゴミは消えたとしておきましょう。

ホント、Rubyのバージョン管理rbenvとか、Pythonのバージョン管理pyenvとか、言語のバージョンを切り替えるなんて簡便してほしい。
あちこちで、さもそれが当たり前であるかのごとくやってるけど、インストールするバージョン決めたらそれでいいという自由がなぜないのか、理解に苦しみます。
RubyならV3, PythonもV3でよくて古いものなんか使いたくもないのに。
ジジイのせいかなぁ。。。

関連記事

  1. mac mini(Late2014)にUbuntu Serverをイン…

  2. OSX El CapitanoでGoogle Chrome使っていると…

  3. mac OSXで唯一やらなくてはならないメンテナンス

  4. Macのメンテナンス

  5. OSXとBluetoothとapt-x

  6. MacとWindowsでディスクを共有するには

  7. Macユーザーにはapple homepod がやっぱり便利

  8. クロネコヤマトB2ウェブをMacで使う