3

嘿,我是 macports 的新手,因为我最近切换到了 mac。当我想在我的 mac 中开发一些应用程序时,我想要所有我需要的常用 gnu 和开源工具。但我有点困惑。我正在用 macports 安装 git,我注意到它安装了很多我的机器中已经有的包,比如 Perl。所以我在想不会有任何冲突,怎么知道使用的是哪个版本。macports 一号还是苹果一号?

4

3 回答 3

9

MacPorts 将其所有端口安装到/opt/local(或您配置它的任何前缀,但/opt/local默认情况下)。它安装自己的 Perl、Python 等副本,以便 MacPorts 安装标准化,并避免冲突(Apple 提供的某些程序版本,如 Perl 和 Python,以及一些库,通常远远落后于最新版本的那些工具)。

当您安装 MacPorts 时,它会自动/opt/local/bin添加到您的$PATH变量中(您可以通过编辑 shell 配置文件来更改它),因此如果您调用perl等,您将获得 MacPorts 版本。但是,Apple 提供的版本仍然完好无损,其他依赖这些版本的程序也不会受到影响。

于 2009-11-17T22:46:54.463 回答
3

不应该有任何冲突,因为 MacPorts 将其所有程序安装在/opt/local/.

如果您安装了多个版本的软件(例如默认的 OS X Perl 和 MacPorts 的 Perl),那么它取决于您的$PATH环境变量中目录的顺序。binMacPorts 通常会在路径的前面设置其目录,因此perl在命令行中说将调用 MacPorts Perl,而不是 OS X Perl。

于 2009-11-17T22:47:11.947 回答
1

MacPorts 在树中安装自己的依赖项/opt/local(您可以在构建 MacPorts 时更改此默认值),因为它的打包程序有一个已知的数量可供测试。在某些情况下,给定依赖项的系统包可以让您使用系统安装的版本,但这实际上很少见。系统与 MacPort 版本的选择取决于PATH(对于可执行文件)或动态库的链接器路径中的先到者。使用您的标准开发工具的选项来选择要链接的适当库,您应该没问题。

于 2009-11-17T22:46:29.123 回答