【Mac】【Homebrew】brew doctorを実行した時に「Warning: “config” scripts exist outside your system or Homebrew directories」と表示される⑤

Homebrewのインストール後、実際に運用していく前に、Homebrewに潜在的な問題がないかチェックするためのコマンド「brew doctor」を実行します。問題がない場合は「Your system is ready to brew.」というメッセージが表示されますが、問題がある場合は「Warning: ……」を冒頭に記した箇条書きで指摘されます。

私は問題点が見つかったため、Warningの箇条書きが4つ表示されました。。。今回は表示されたWarningの1つ「Warning: “config” scripts exist outside your system or Homebrew directories」の解決方法をお伝えします。

もくじ

brew boctorの実行

Homebrewのインストール手順は別の記事に書いています。インストールを初めてされる方は見てみてください。

【Mac】【Homebrew】パッケージ管理システム「Homebrew」をインストールする①

今回は、Macで動作するツールで、ソフトウェアのインストール、アンインストールをターミナルのコマンドラインだけで行えたり、インストール時にパッケージ間の依存関係を自動で解決してくれるな… [more]

brew boctorを実行してみる

Homebrewのインストールが完了したら、次はHomebrewに潜在的な問題がないかチェックしましょう。使用前に潜在的なトラブルに対応できれば、その後の大きなトラブルを回避できる可能性が高まるからです。

潜在的な問題点をチェックするためのコマンドは下記です。

$ brew doctor

「brew doctor」については別の記事にもしましたので、気になった方は見てみてくださいね。

【Mac】【Homebrew】「brew doctor」の使い方④

今回は、Homebrewのインストールか完了した後、Homebrewを使用していく上で潜在的な問題がないかチェックできるコマンド「brew doctor」の使い方をお伝えします。 br… [more]

話しを戻しましょう。

「brew doctor」を実行して何も問題がない場合は、

Your system is ready to brew.

と表示されます。問題なく使えそうですね。

もし潜在的な問題がある場合は「Warning: ……」を冒頭に記した箇条書きで指摘されます。問題の解決策も同時に示されますので、それに従えば問題解決に向かえます。

私は問題点が見つかったため、Warningの箇条書きが4つ表示されました。

「Warning: “config” scripts exist ……」が表示される

今回は表示されたWarningの1つ「Warning: “config” scripts exist outside your system or Homebrew directories」を扱います。このWarningの全文は以下です。

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 which 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:
  /Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
  /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
  /Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
  /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python3.6m-config
  /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python-config
  /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python3-config
  /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python3.6-config

(日本語訳)
configスクリプトはあなたのシステムやHomebrewディレクトリの外側に存在します。コンパイリングとリンクの時に使用される追加フラグであるソフトウェアパッケージがインストールされるならば、./configureスクリプトはしばしば*-configスクリプトを探す。

もしこのリストアップされたconfigスクリプトが、同名のシステムやHomebrewが提供されたスクリプトを無効にするなら、path内に追加スクリプトを持っていることは、Homebrewにインストールされたソフトウェアを混乱させる。私たちは以下のconfigスクリプトを見つけました:
⋯⋯configスクリプトのリストは省略⋯⋯

内容を要約すると、configスクリプトがHomebrewディレクトリの外側にあるので、path内に追加スクリプトがあるとHomebrewにインストールされたソフトウェアに悪影響があるという内容です。そう言われてみればHomebrewをインストールする前に、複数バージョンのPythonを切り替えて利用できるpyenvとPython3.6を先にインストールして使用していました。pyenvでOS標準装備のPython2.7も使用していたため、これら2バージョンのPython(2.7と3.6)のconfigスクリプトがHomebrewの管理外になってしまったようです。

「Warning: “config” scripts exist ……」の解決策

解決策としては、brewコマンドを実行するときだけリストアップされたものをPATHから外すエイリアスを「.bash_profile」内に書き込みます。PATHから取り除く対象はWarningの「We found the following “config” scripts:」以下にリストアップされています。私の場合は以下の7つでした。

  1. /Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
  2. /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
  3. /Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
  4. /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python3.6m-config
  5. /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python-config
  6. /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python3-config
  7. /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/python3.6-config

リストアップされた内容から、

  • /Library/Frameworks/Python.framework/Versions/〜
  • /Users/(⋯⋯ユーザーネーム⋯⋯)/.pyenv/shims/〜

この2つのディレクトリをbrewコマンドを実行するときだけPATHから外すようにすればいいみたいです。「.bash_profile」に移動してコードを書き込むために、以下のコマンドを実行します。

$ vim .bash_profile

これを実行すると、「.bash_profile」内に移動するので「i」を押してインサートモードに切り替え、以下のコードを書き込みます。

#The following alias are excluded only when you execute brew 
alias brew="env PATH=${PATH/\/Library\/Frameworks\/Python\.framework\/Versions:/} brew"
alias brew="env PATH=${PATH/\/Users\/(⋯⋯ユーザーネーム⋯⋯)\/\.pyenv\/shims:/} brew"

「esc」を押してコマンドモードに戻し、「:wq」を実行して保存してファイルを閉じます。

ファイルを閉じた後にコマンドラインで「$ source .bash_profile」を実行してください。

最後にPCを再起動すると、設定したコードが反映されてこのWarningは解決します。

Warningの形で箇条書きされた問題点はあと3つあります。これらは別の記事にしましたので、同様の問題を抱えている方は見てみてください。

【Mac】【Homebrew】brew doctorを実行した時に「Warning: Unbrewed dylibs were found in /usr/local/lib」と表示される⑥

私は問題点が見つかったため、Warningの箇条書きが4つ表示されました。。。今回は表示されたWarningの1つ「Warning: Unbrewed dylibs were foun… [more]

【Mac】【Homebrew】brew doctorを実行した時に「Warning: You are using macOS 10.13」と表示される⑦

私は問題点が見つかったため、Warningの箇条書きが4つ表示されました。。。今回は表示されたWarningの1つ「Warning: You are using macOS 10.13… [more]

【Mac】【Homebrew】brew doctorを実行した時に「Warning: /usr/bin occurs before /usr/local/bin in your PATH」と表示される⑧

私は問題点が見つかったため、Warningの箇条書きが4つ表示されました。。。今回は表示されたWarningの1つ「Warning: /usr/bin occurs before /u… [more]

まとめ

リストアップされた内容を分析したり「.bash_profile」にコードを書き込んだりと、コマンドラインを利用した作業が少しあるので面倒臭く感じるかもしれませんが、手順通りに進めれば解決できます。

ちなみに、このconfigに関する問題はそれほど重大ではないようで、設定できなくてもHomebrewは動作するようです。