为什么Macports需要FOREVER来构建简单的包?

时间:2009-08-29 21:25:06

标签: macos installation macports

从macports以外的源码构建是一件轻而易举的事。使用macports构建需要永远,并且似乎每隔一段时间就冻结os。这是典型的行为吗?虽然它似乎是一个很好的os x包装工具,但如果我每次安装时都要经历这种痛苦,我想我会没有它。

4 个答案:

答案 0 :(得分:35)

如果您使用的是英特尔酷睿2双核处理器,则可以通过更改位于此处的Macports配置选项,将构建速度提高一倍:

/opt/local/etc/macports/macports.conf

# Number of simultaneous make jobs (commands) to use when building ports
buildmakejobs       2

当我在重建gcc之后发现这个时,我正在踢自己;)

此选项允许您使用两个cpu来构建包。

答案 1 :(得分:8)

“冻结操作系统”?你可以说得更详细点吗?你试图在哪台机器上构建什么版本的OS X?

根据我的经验,MacPorts构建通常可以在几乎任何支持的配置上正常工作,在我的情况下,从256MB Pismo G3(2000年)运行10.4到最近的双核Intel iMac 10.5。但是你必须要有耐心:它可能需要很长时间,特别是如果有很多依赖包,这是使用像MacPorts或Fink这样的包管理器的缺点之一。好处是你通常拥有一个更加可控,一个希望,经过测试的环境,而不是你自己从源代码单独安装包。而且,如果你还没有,请确保你更新到最新的MacPorts:1.8.0刚刚发布并有一些重要的改进,包括更好地支持通用版本。

答案 2 :(得分:5)

MacPorts过去只从源代码构建,与获取二进制文件的软件包系统相比,这可能会导致几个数量级的差异。 以某个大包装的情况为例,需要花费几个小时来构建,并将其与将其下载为具有几十MB大小的存档的时间进行比较。

MacPorts使用Apple的工具进行构建,它只会在MacPorts之外的相同构建时间上增加可忽略的开销,包越大,差异就越小。如果您在MP之外构建程序时遇到巨大差异,则应在issue tracker上提交详细信息。

那说我看到这个问题很老了,因为2.0支持二进制存档-cf。 Changelog - 有一个macosforge支持的存储库,其中buildbots可以生成签名存档,默认情况下是获取这些二进制存档而不是从源构建(可以强制使用-s标志)。 当前的用户体验更像是apt-get之类的二元管理器,能够非常轻松地更改配置和构建选项。

答案 3 :(得分:4)

我不介意等待Mac Ports在最新的软件包上构建源代码。但是为什么不利用所有这些处理能力并为用户提供选项,让构建能够自动上传回MacPorts,或者更好地进行散列,并提供给可以选择“turbo”选项的其他MacPorts用户点对点。