私はオンラインチュートリアルに従って自作を使用していくつかのPythonモジュールをインストールし、1つのステップは。を使用してgfortranをインストールすることでしたbrew install gfortran
。後で、別のサードパーティのインストールスクリプトを使用していくつかのPythonモジュールをインストールしようとしましたが、その後、スクリプトの実行の一部がhttp://r.research.att.com/tools/gcc-のダウンロードと実行であることに気付きました。 42-5666.3-darwin11.pkg。gfortranについてはあまりよくわかりませんが、gfortranのbrew式を見ると、brewはatt.comのものとは異なるバージョンを使用しているようです。それは将来問題につながるのでしょうか?私がやっbrew uninstall gfortran
たbrew install gfortran
繰り返しになりますが、これまでのところ同じように見えます(以前にコンパイルした古いコードを再コンパイルしようとしました)が、att.comのすべてのパッケージが何をしたのかわかりません。(私はOS X10.8.2とXCode4.2を持っています)。
1 に答える
これは、他のgfortranインストーラーがどこに行くかによって異なります。一般的に、いいえ、競合しません。* Homebrewは、サードパーティのインストールと互換性があるように設計されています。特定のHomebrew式gfortran
ではなく、一般的な「fortran」コンパイラへの依存関係を定義します。gfortran
Homebrewは/usr/ localの下にとどまり、メインインストールを/ usr / local / Cellarに固定し、慎重に/ usr / local/libにシンボリックリンクします。/ usr / localにインストールする他のインストーラーは、Homebrewが独自のコンパイラーをリンクするのを防ぐだけですが、Fortranコンパイラーを使用する他の式では機能します。gfortran
(ビルドオプションに互換性があると仮定します。)
/usr
リンク先の特定のgcc-42インストーラーは、。**ではなく、にインストールします/usr/local
。そのバイナリには「-4.2」という接尾辞が付いています。つまり、、、などをインストールしcpp-4.2
ます。したがって、a)Homebrew gfortranとの直接の競合はなく、b)Homebrewによってインストールされたものを直接シャドウイングすることはありません。g++-4.2
gfortran-4.2
/usr/local/bin/gfortran
これらのgfortransをインストールしてビルドしたものがどちらのコンパイラを選択するかは、ビルドの動作によって異なりますgfortran
が、AT&Tが提供するコンパイラに明示的に指示しない限り、ほとんどのコンパイラはプレーンを探しているため、Homebrewのコンパイラを見つけます。構築方法は指定しませんが、brewを使用しているので、経由brew
ツールまたはコマンドラインツールを使用していると思います。その場合、おそらくすべての人がHomebrew gfortranを見て、これを無視していると思います。ビルドプロセスからの詳細な出力を見て、確実に調べてください。
*もちろん、「競合」の意味によって異なります。
**補足:AFAIKには、パッケージまたはインストールマネージャーを見てこれを理解する簡単な方法はありません。そのインストーラーを実行するfind /usr
前後に実行しdiff
、出力に対して実行しました。
$ diff usr_before_any_installs.txt usr_after_att_install.txt | grep '^[<>]'
> /usr/bin/c++-4.2
> /usr/bin/cpp-4.2
> /usr/bin/g++-4.2
> /usr/bin/gcc-4.2
> /usr/bin/gfortran-4.2
> /usr/bin/i686-apple-darwin11-cpp-4.2.1
> /usr/bin/i686-apple-darwin11-g++-4.2.1
> /usr/bin/i686-apple-darwin11-gcc-4.2.1
> /usr/bin/i686-apple-darwin11-gfortran-4.2.1
> /usr/include/gcc
> /usr/include/gcc/darwin
> /usr/include/gcc/darwin/4.2
...