1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

brew doctorで吐かれたunbrewed header filesを一括で消したい

Last updated at Posted at 2022-06-04

はじめに

HomebrewでインストールするとWarningだらけになるのが気になり調査してみました。

動作環境
PC:MacbookPro(2018)
OS: Big Sur(11.6.2)
ターミナルはzshを使用

※Windowsユーザ様へ

今回ご紹介するコマンドの中にはMacのみ搭載のものを使用しています(pbpaste)。
その為参考にならない部分があるかと思います。

まずはbrew doctor

Homebrewの問題をチェックするコマンド。
Homebrewのインストールやアップデート後に表示されるコマンド一覧にもTroubleshootingのカテゴリで紹介されています。

zsh
% brew doctor

最初に実行した際にでた問題は

  • ~/.zshrcに不要なPATHがある
    =>言われた通りのコマンドを打ってsourceで保存または.zshrcを開いてexport~を貼り付けて保存
  • phpのバージョンが争い競合している
    =>個人用のPCで切り替えて使うことは今無いので表示されたほうをアンインストール

ぐらいだったのですが、いつまでも消えないWarningが大量に残ったままでした。

zsh
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のファイルの削除

最初は手作業でやってたのですが一括で削除する方法があったのでご紹介します。

こちらの質問の答えを参考にさせていただきました。

  1. Unexpected header files: より下の文章をすべて選択してコピーします。
    やり方①:ターミナルで出力された結果をコピー
    やり方②:txtファイルとして保存したものを開いてコピー。
  2. ターミナルを開き、以下のコマンドを入力
zsh
% pbpaste > ~/hoge.sh

pbpasteとは:クリップボードの内容をターミナル内にペーストするコマンド

上記のコマンドでは、ユーザーのホームディレクトリにhoge.shを作成し、クリップボードの内容を保存しています。
3. hoge.shをテキストエディターで開き、各行の先頭にrmとつけて保存

zsh
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.実行の権限を全ユーザーに与える

zsh
chmod +x ~/hoge.sh

5.処理を実行

zsh
sudo sh ./hoge.sh

shが実行のコマンドです。今回はhoge.shに記述した内容を実行してくれます。
sudoをつけないとoverrideと表示されファイルごとに確認を求められるのでつけておきます。

sudoなしの一例
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を実行

zsh
% brew doctor

ようやくWarningがなくなりスッキリしました!

zsh
Your system is ready to brew.

まとめ

今回の処理の流れ

brew doctorの出力情報をコピー

ターミナル上でhoge.shを作成しつつコピーしたものをペースト

hoge.shを開き各行先頭にrmを付けて保存

hoge.shを全ユーザーが操作できるように設定

hoge.shに書かれたコマンドを実行

brew doctorで確認

zsh
% 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の中身に削除したいファイルやフォルダのパスを入れれば一括削除できそうなので応用が聞きそうです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?