Homebrewのbrew docterで出てきたwarningをひたすら潰していく

<h2>はじめに</h2>
homebrewを使ってmysqlインストールをしようとしたらうまくできず、そのまま大量のwarningに悩まされたのでその時の覚書です。

(追記 2020/8/9）
一部内容を追記しました。

<h2>warning祭りの"brew doctor"</h2>
実は数年前に一度homebrewをダウンロードしていたのですが、しばらく放置していたら色々まずいことになっていました。installもuninstallもできない。そこでhomebrewで困ったら「brew doctor」を掛け声にターミナル上で実行。

```
$ brew doctor
````
そして大量のwarningが出てきたので、それを虱潰しに解決していきました。
あくまで自分なりの解決方法ですので、間違っていたらご指摘頂ければと思います。


<h2>権限の変更</h2>
macのOSをアップグレードするなどによって、ownershipとpermissionsが変わってしまっている状態にこのwarningが出るようです。

```
Warning: /usr/local/Cellar isn't writable.
You should probably change the ownership and permissions of /usr/local/Cellar
back to your user account.
  sudo chown -R $(whoami) /usr/local/Cellar
```

（ざっと訳）
あなたは「usr/local/Cellar」のオーナと権限情報を、あなたのユーザアカウントに変更する必要があるかもしれません。

解決策としては、brer doctorが最後に提示している通り、権限をwhoamiにすることです。
`$ whoami`
でユーザを確認後
`sudo chown -R $(whoami) /usr/local/Cellar`
で権限を設定できます。

<h2>homebrew管理外のconfigファイルがある</h2>
configファイルが、Homebrewの管理下以外にある場合、干渉してしまう可能性があるため、このwarningが出るようです。私の場合、Pythonをダウンロードする際にAnacondaを使ったため、これが出たようです。

```
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
  /Users/Username/anaconda3/bin/icu-config
  ....
```


（ざっと訳）
"Config"スクリプトがhomebrewのディレクトリないしあなたのシステムの外に存在しています。`./configure`スクリプトは、パッケージがインストールされているかや、コンパイルや紐付けの際にどんな追加要素が必要かを確認するため、頻繁に*-configスクリプトを読みにいきます。
パスに下記のようなファイルがあることで、同名のスクリプトファイルからconfigスクリプトがシステムやhomebrewでオーバーライドする際に、ソフトウェアがhomebrewを通してインストールされていると勘違いする可能性があります。



解決策としては、出てきたconfigファイルを持つアプリの削除。
という訳でAnadondaをアンインストールしました。
参考にさせていただいたサイト：
[Anaconda3をmacOSから完全にアンインストールする方法](url:https://weblabo.oscasierra.net/python-anaconda-uninstall-macos/)



<h2>ディベロッパーツールがインストールされていない</h2>

こちらもOSをアップデートする際に発生する事象のようです。旧版のツールは削除されてしまうので再インストールが必要とのこと。

```
Warning: No developer tools installed.
Install the Command Line Tools:
  xcode-select --install
```

（ざっと訳）
ディロッパーツールがインストールされていません（そのまま）


解決策としては、brewが示している通り
`$ xcode-select --install`
の実行で、Xcodeをインストールすることで解決します。


<h2>GitへのPATHがみつからない</h2>

こちらは先ほどのXcodeの紐づいたwarningのようです。

```
Warning: Git could not be found in your PATH.
Homebrew uses Git for several internal functions, and some formulae use Git
checkouts instead of stable tarballs. You may want to install Git:
  brew install git
```

（ざっと訳）
GitはPATHを見つけられませんでした。
HomebrewはGitを様々な機能で用いています。またいくつかのformulaではtarファイルではなくGitのチェックアウト機能を用いています。
※どうでもいいんですが、tarballs＝圧縮したtarファイルのことというのを初めて知りました。



解決策は、Xcodeがインストールされた後に自動的にwarningが消えたのでOKなのかな？
もしXcodeのwarningが出ていない状態で、このwarningが出た場合は、
`$ brew install git`でOKだと思います。


<h2>Unbrewed header filesがある</h2>

```
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/access/amapi.h
  ....
```

（ざっと訳：超訳ですすみません）
Unbrewed header fileが/usr/local/includeに見つかりました。意図的に置いていない限り、homebrewに問題がおきる可能性があるので、削除する必要があります。


すみません、これは未解決です。
表示された各ファイルを削除する必要があるようですが、かなりの数のファイルが対象となっており、その中のどれが必要なファイルか判断ができませんでした。
削除しなくても一応brewはできたので、今回はパスしました。

（追記 2020/8/9）
Macの容量が逼迫していることを考慮し、削除することにしました。
解決策としては、warningが出ているファイル名を全てtxtファイルに貼り付けて、headers.txtとします。
その後、ターミナルで以下の操作をすると一気に削除することができます。
`sudo xargs rm -v < headers.txt`
参考サイト：
[Homebrew Community Discussion](url:https://discourse.brew.sh/t/unbrewed-header-files/2607)



<h2>プレリリース版はサポートしていない</h2>

現在のMacOSに対応していないとの旨がでました。

```
Warning: You are using macOS 10.15.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
```

ひとまず、homebrewをアップデートしてみました。
`$ brew update`
出なくなったようなので一応解決、かな？

試しにやってみただけなので、これであってるかはわからなかったのですが、
Git issuesの解決策一覧の中にあったので、対応策としては正しいようです。
他にも対処方法がのっています。
[brew doctor reports macOS 10.15 is a pre-release version](url:https://github.com/Homebrew/brew/issues/6557)


<h2>最後にもうひと躓いたところ</h2>
warningに出ていた内容は一通り潰して、本来やりたかったbrew installをしてみると、通りそうな気配はするも、permission deniedで通らず・・・。以下の記事を参考にどうにか通るようになりました。
[mac osのbrew install がうまくいかない](url:https://qiita.com/aves/items/1195e64fa30402b7e1f6)

ここまでくるのに2〜3時間かかりました・・長かった。


<h2>参考にさせていただいたサイト・記事</h2>
大変参考になりました・・・ありがとうございました！

[Web エンジニアが macOS Sierra にアップグレードしてやったこと](url:https://blog.manabusakai.com/2016/09/macos-sierra-upgrade/)
[Macでbrew installをしたらPermissionで怒られた時の対処（簡易的に）](url:https://qiita.com/HIROSHI-1403/items/c90699c1a3f3bd9d63f9)
[Homebrewでbrew doctorしたらWarning: "config" scripts exist outside your system or Homebrew directories.となった時の解決方法](url:https://qiita.com/nemui_/items/df8bc3884398f93778c5)
[Homebrewのエラー「Git must be installed and in your PATH!」の解決方法](https://weblabo.oscasierra.net/homebrew-error-git-must-be-installed/)