はじめに
HomebrewでインストールするとWarningだらけになるのが気になり調査してみました。
動作環境
PC:MacbookPro(2018)
OS: Big Sur(11.6.2)
ターミナルはzshを使用
※Windowsユーザ様へ
今回ご紹介するコマンドの中にはMacのみ搭載のものを使用しています(pbpaste
)。
その為参考にならない部分があるかと思います。
まずはbrew doctor
Homebrewの問題をチェックするコマンド。
Homebrewのインストールやアップデート後に表示されるコマンド一覧にもTroubleshootingのカテゴリで紹介されています。
% brew doctor
最初に実行した際にでた問題は
-
~/.zshrc
に不要なPATHがある
=>言われた通りのコマンドを打ってsource
で保存または.zshrc
を開いてexport~を貼り付けて保存 - phpのバージョンが
争い競合している
=>個人用のPCで切り替えて使うことは今無いので表示されたほうをアンインストール
ぐらいだったのですが、いつまでも消えないWarningが大量に残ったままでした。
Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected header files:
/usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/include/internal/bn_conf.h
/usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/include/internal/dso_conf.h
/usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslconf.h
長いので省略
Unbrewed header files were foundのファイルの削除
最初は手作業でやってたのですが一括で削除する方法があったのでご紹介します。
こちらの質問の答えを参考にさせていただきました。
-
Unexpected header files: より下の文章をすべて選択してコピーします。
やり方①:ターミナルで出力された結果をコピー
やり方②:txt
ファイルとして保存したものを開いてコピー。 - ターミナルを開き、以下のコマンドを入力
% pbpaste > ~/hoge.sh
pbpasteとは:クリップボードの内容をターミナル内にペーストするコマンド
上記のコマンドでは、ユーザーのホームディレクトリにhoge.shを作成し、クリップボードの内容を保存しています。
3. hoge.shをテキストエディターで開き、各行の先頭にrm
とつけて保存
rm /usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/include/internal/bn_conf.h
rm /usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/include/internal/dso_conf.h
rm /usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslconf.h
4.実行の権限を全ユーザーに与える
chmod +x ~/hoge.sh
5.処理を実行
sudo sh ./hoge.sh
shが実行のコマンドです。今回はhoge.shに記述した内容を実行してくれます。
sudoをつけないとoverrideと表示されファイルごとに確認を求められるのでつけておきます。
override rw-r--r-- root/wheel for /usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/include/internal/bn_conf.h?
override rw-r--r-- root/wheel for /usr/local/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/include/internal/dso_conf.h?
再度brew doctorを実行
% brew doctor
ようやくWarningがなくなりスッキリしました!
Your system is ready to brew.
まとめ
今回の処理の流れ
brew doctorの出力情報をコピー
↓
ターミナル上でhoge.shを作成しつつコピーしたものをペースト
↓
hoge.shを開き各行先頭にrm
を付けて保存
↓
hoge.shを全ユーザーが操作できるように設定
↓
hoge.shに書かれたコマンドを実行
↓
brew doctorで確認
% pbpaste > ~/hoge.sh
% chmod +x ~/hoge.sh
% sh ./hoge.sh
// 一旦取り消して先頭にsudoを追加
% sudo sh ./hoge.sh
Password:
% brew doctor
Your system is ready to brew.
最後に
ちまちまと消していると時間ももったいないのでコマンド操作(とエディタ)があれば大量の不要ファイルを削除できる方法を知り、コマンドの知識が増えました。
hoge.sh
の中身に削除したいファイルやフォルダのパスを入れれば一括削除できそうなので応用が聞きそうです。