我正在关注在线教程,以使用自制软件安装一些Python模块,而第一步是使用brew install gfortran
安装gfortran。后来,我尝试使用另一个第三方安装脚本来安装一些Python模块,之后我意识到该脚本所做的部分是下载并运行http://r.research.att.com/tools/gcc-42-5666.3-darwin11.pkg。我对gfortran不太了解,但查看the brew formula for gfortran,看来brew使用的是与att.com不同的版本。将来会导致问题吗?我再次做了brew uninstall gfortran
和brew install gfortran
,到目前为止看起来好像是一样的(我尝试重新编译以前编译的旧代码),但是我不确定att.com pkg的全部功能。 (如果有的话,我有OS X 10.8.2和XCode 4.2)。
最佳答案
这取决于其他gfortran安装程序的安装位置。一般而言,不会冲突。 * Homebrew旨在与第三方gfortran
安装兼容-它定义对通用“fortran”编译器的依赖,而不是对特定gfortran
Homebrew公式的依赖。自制软件位于/ usr / local下,将主要安装置于/ usr / local / Cellar中,并明智地符号链接至/ usr / local / lib。其他安装到/ usr / local的安装程序将仅阻止Homebrew链接其自身的编译器,但将与使用fortran编译器的其他公式一起使用。 (假设gfortran
构建选项兼容。)
您链接到的特定gcc-42安装程序将安装到/usr
而不是/usr/local
。**并且其二进制文件后缀为“-4.2”;也就是说,它将安装cpp-4.2
,g++-4.2
,gfortran-4.2
等。因此,a)与Homebrew gfortran没有直接冲突,b)它不会直接遮盖Homebrew安装的/usr/local/bin/gfortran
。
在安装了这两种gfortrans的情况下,编译时会选择哪种编译器取决于编译的方式,但是大多数编译器会寻找纯gfortran
,因此会找到Homebrew,除非您明确将其定向到AT&T提供的代码。 。您没有指定构建方式,但是由于您使用的是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
...
关于osx-mountain-lion - 使用 Homebrew 软件和安装程序安装gfortran是否会产生冲突?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14222930/