当前位置:  开发笔记 > 前端 > 正文

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

如何解决《为什么Macports需要FOREVER来构建简单的包?》经验,为你挑选了3个好方法。

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



1> galaxywatche..:

如果您使用的是Intel Core 2 Duo,则可以通过更改位于此处的Macports配置选项将构建速度提高一倍:

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

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

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

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


谁能证实这一点?对此字段的评论说:"此#值可以设置为0,因此同时创建作业的数量将设置为#自动检测到的CPU核心数,或物理内存的GB数加1 ,无论哪个更少."......所以,除非CPU检测被破坏或者你有<2演出的ram,它应该已经做了正确的事情.
自己测试一下.就像我做的那样.打开活动监视器,单击CPU并在制作期间更改选项时观察每个核心的活动差异.
根据http://guide.macports.org/chunked/internals.configuration-files.html,默认值为0,这会导致运行时自动检测使用所有可用的处理器核心.
默认值为0.这意味着**根据@Trenton注释自动检测**.在编译期间正在使用我的CPU的所有(4)个核心.检查了MacPorts 2.3.3的全新安装.

2> Ned Deily..:

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

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


好吧,是的:如果您将已安装的预先构建的二进制包与从源代码构建包进行比较 - 确定它会变慢!如果MacPorts确实提供预构建的软件包会很好,但基础架构和测试要做的更复杂,而不是端口的精神.Fink*尝试*这样做 - 本着Debian apt-get的精神 - 但他们真的没有资源去做它所以他们有一个只有源和二进制包的混合系统,大多数二进制包没有经常更新.

3> anddam..:

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

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

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

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有