Edited at

brew doctorでのWarningを解決してみた(for Mac)

More than 1 year has passed since last update.


環境

Mac : 10.11.5(OS X El Capitan)


brew doctorコマンドとは


インストールの問題のチェックを行うコマンド


試しにやってみたら沢山のWarningが出たので一つずつ解決していこうと思います。


警告_1

Warning: Homebrew's sbin was not found in your PATH but you have installed

formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile


解決法

言われている通りのコマンドを打つだけです。

追加後、source で再読み込みを行います。

$ echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

$ source ~/.bash_profile


警告_2

ディレクトリ毎に <PATH> の部分だけが違った以下のようなエラーが複数でる場合があります。

Warning: Unbrewed dylibs were found in <PATH>.

If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

このようなエラーの後に、例えば

Unexpected dylibs:

/usr/local/lib/libopencv_calib3d.3.1.0.dylib
/usr/local/lib/libopencv_core.3.1.0.dylib
/usr/local/lib/libopencv_features2d.3.1.0.dylib
/usr/local/lib/libopencv_flann.3.1.0.dylib
/usr/local/lib/libopencv_highgui.3.1.0.dylib
/usr/local/lib/libopencv_imgcodecs.3.1.0.dylib
/usr/local/lib/libopencv_imgproc.3.1.0.dylib
/usr/local/lib/libopencv_ml.3.1.0.dylib
/usr/local/lib/libopencv_objdetect.3.1.0.dylib
/usr/local/lib/libopencv_photo.3.1.0.dylib
/usr/local/lib/libopencv_shape.3.1.0.dylib
/usr/local/lib/libopencv_stitching.3.1.0.dylib
/usr/local/lib/libopencv_superres.3.1.0.dylib
/usr/local/lib/libopencv_video.3.1.0.dylib
/usr/local/lib/libopencv_videoio.3.1.0.dylib
/usr/local/lib/libopencv_videostab.3.1.0.dylib

という感じです。


解決法

Unexpected dylibs: に続くファイル一覧を rm -fで削除してあげます。

rm は、ファイルやディレクトリを削除してあげるコマンドで、 -f は、「削除しますか?」的なメッセージを都度出さないようにするオプションです。


手順1 対象となるファイル一覧をコピーして、shファイルに貼り付ける。

全てに rm -f を手作業で貼り付けで実行するのは大変なので、Vimを使って纏めてコマンドを作ってターミナルで実行します。

shファイル は人間の命令をコンピュータ様に伝えるファイル..じゃないかな。そんな感じ

まずは新規ファイルを作ります。

$ vim ~/.del_files.sh

ネーミングセンスがないのはほっといてください。

スクリーンショット 2017-03-24 18.10.09.png

ここに先程の対象となるファイルのパス一覧を貼り付けます。

1行目には #!/bin/bash を記述します。

参考URLとして、シバン (Unix)

スクリーンショット 2017-03-24 18.22.53.png

貼り付けし終わったら、

esc キーで コマンドモード に戻り、一旦 Ctrl + w で保存をします。


手順2 各行の先頭に「rm -f 」を追加する。

点滅カーソルが #!/bin/bash の行を除く1行目、今回でいう2行目にあるのを確認した後に

CTRL + v で 矩形選択のビジュアルモード にします。

次に、カーソルを 矢印キー↓ で下まで移動して範囲を選択します。

スクリーンショット 2017-03-24 18.34.02.png

選択し終わったら、 : を押します。

すると、下のラインに既に :'<,'> が入力された状態でコマンドラインが表示されるので、続けて s/^/rm -f / と入力します。

-f の後には 半角スペース を忘れずに。

今回は既に先頭にスペースが入ってるかもしれないので不要かもしれませんが。

このように入力し終わったら

スクリーンショット 2017-03-24 18.36.49.png

.

.

.

ENTER キー

スクリーンショット 2017-03-24 18.36.58.png

このようになるので、

Ctrl + wq で保存・ファイルを閉じます。


手順3 shファイルを実行する。

これは直ぐに終わります。

もとのターミナルに戻ってきたら、

$ bash ~/.del_files.sh

を実行するだけです。

一瞬で終わります。


手順4 デッドリンクになってしまったものを削除

手順2が終わった後に、試しに brew doctor をしてみると以下のようなエラーがでる場合があります。

Warning: Broken symlinks were found. Remove them with `brew prune`:

<以下ファイルパス>

この場合、警告で言われている通り brew prune をコマンドで叩けば解決します。


警告_3

Warning: A newer Command Line Tools release is available.

Update them from Software Update in the App Store.


解決法

App StoreからCommand Line Toolsをアップデートするだけです。

スクリーンショット 2017-03-24 17.28.08.png


終わり

$ brew doctor

Your system is ready to brew.

と表示されたら Mission complete.