mainvisual

macには、brewというパッケージ管理コマンドを導入することができます。 これが何をするかというと、ありとあらゆるプログラミング言語であったり、ツール類を一括して管理することのできるソフトです。
これを使うことで、バージョンの更新や、アンインストール、設定の編集なども簡単に行えたりするようになりますし、複数のmacがあり、全てに同じツールをインストールしないといけない時などに、半自動的に作業を行なうことのできます。

まぁ、自分はまるっきり前者で使っています。

それでは、始めていきます。

brew doctor コマンド

brew には、brew doctorというコマンドがあって、これ実行することでシステムのあらゆるファイルなどのバージョンや、不自然な配置などを精査してくれます。

自分の環境では、こんなログが出ました。

$ brew doctor                                                                                                               1 ↵
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: A newer Command Line Tools release is available.
Update them from Software Update in the App Store.

Warning: Python is installed at /Library/Frameworks/Python.framework

Homebrew only supports building against the System-provided Python or a
brewed Python. In particular, Pythons installed to /Library can interfere
with other software installs.

Warning: Unbrewed dylibs were found in /usr/local/lib.
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/libtcl8.6.dylib
    /usr/local/lib/libtk8.6.dylib

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/fakemysql.h
    /usr/local/include/fakepq.h
    /usr/local/include/fakesql.h
    /usr/local/include/itcl.h
    /usr/local/include/itcl2TclOO.h
    /usr/local/include/itclDecls.h
    /usr/local/include/itclInt.h
    /usr/local/include/itclIntDecls.h
    /usr/local/include/itclMigrate2TclCore.h
    /usr/local/include/itclTclIntStubsFcn.h
    /usr/local/include/mysqlStubs.h
    /usr/local/include/odbcStubs.h
    /usr/local/include/pqStubs.h
    /usr/local/include/tcl.h
    /usr/local/include/tclDecls.h
    /usr/local/include/tclOO.h
    /usr/local/include/tclOODecls.h
    /usr/local/include/tclPlatDecls.h
    /usr/local/include/tclThread.h
    /usr/local/include/tclTomMath.h
    /usr/local/include/tclTomMathDecls.h
    /usr/local/include/tdbc.h
    /usr/local/include/tdbcDecls.h
    /usr/local/include/tdbcInt.h
    /usr/local/include/tk.h
    /usr/local/include/tkDecls.h
    /usr/local/include/tkPlatDecls.h

Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected .pc files:
    /usr/local/lib/pkgconfig/tcl.pc
    /usr/local/lib/pkgconfig/tk.pc

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
    ruby

Warning: Broken symlinks were found. Remove them with `brew prune`:
    /usr/local/bin/cordova
    /usr/local/lib/node_modules/cordova

Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours. This is a long time in brewland!
To update Homebrew, run `brew update`.

上から順番にしなければいけないことを書いていきます。

  • apple store でアップデートをしなさい
  • python が /Library/Frameworks/Python.framework にインストールされています
  • /usr/local/lib/libtcl8.6.dylib /usr/local/lib/libtk8.6.dylib の2つのファイルを消去しなさい
  • リストにあるファイルを消去しなさい
  • リストにある .pc ファイルを消去しなさい
  • リンクが切れているので、brew prune を実行しなさい。
  • brew update を実行しなさい

というわけで、実行していきます。

ファイルの消去と再リンクは簡単です。
以下のスクリプトを動かしました。

rm -fr /usr/local/include/fakemysql.h
rm -fr /usr/local/include/fakepq.h
rm -fr /usr/local/include/fakesql.h
rm -fr /usr/local/include/itcl.h
rm -fr /usr/local/include/itcl2TclOO.h
rm -fr /usr/local/include/itclDecls.h
rm -fr /usr/local/include/itclInt.h
rm -fr /usr/local/include/itclIntDecls.h
rm -fr /usr/local/include/itclMigrate2TclCore.h
rm -fr /usr/local/include/itclTclIntStubsFcn.h
rm -fr /usr/local/include/mysqlStubs.h
rm -fr /usr/local/include/odbcStubs.h
rm -fr /usr/local/include/pqStubs.h
rm -fr /usr/local/include/tcl.h
rm -fr /usr/local/include/tclDecls.h
rm -fr /usr/local/include/tclOO.h
rm -fr /usr/local/include/tclOODecls.h
rm -fr /usr/local/include/tclPlatDecls.h
rm -fr /usr/local/include/tclThread.h
rm -fr /usr/local/include/tclTomMath.h
rm -fr /usr/local/include/tclTomMathDecls.h
rm -fr /usr/local/include/tdbc.h
rm -fr /usr/local/include/tdbcDecls.h
rm -fr /usr/local/include/tdbcInt.h
rm -fr /usr/local/include/tk.h
rm -fr /usr/local/include/tkDecls.h
rm -fr /usr/local/include/tkPlatDecls.h

rm -fr /usr/local/lib/pkgconfig/tcl.pc
rm -fr /usr/local/lib/pkgconfig/tk.pc

brew link ruby

brew prune

あとは、できない理由があるので、飛ばしました。 以上です。