我最近升级到了 Snow Leopard,为了避免很多问题,我以 32 位模式运行它。尽管如此,由于几乎所有 SL 原生应用程序都是 64 位的,它似乎在某种混合模式(64 位应用程序与 32 位应用程序并行运行)。
但我的问题出在 MacPorts 上。当我运行 Snow Leopard 时,我认为它会将所有端口编译为 64 位版本。如果我不必安装一些使用库来编译本机扩展的 Ruby Gems,那就没问题了。所有问题的发生都是因为 Apple 决定在 Snow Leopard 中安装 32 位版本的 Ruby。
这样,当我尝试安装 Cairo 时,MacPorts 会安装 64 位版本,但当 Ruby Gems 尝试编译 RCairo gem(Ruby 的 Cairo 绑定)的本机扩展时,我自然会收到错误。那么,有没有办法在 Snow Leopard 上安装 32 位版本的 MacPorts 端口?顺便问一下,我如何才能知道某个端口是 32 位还是 64 位?
PS:请不要告诉我安装 Ruby 的 64 位版本。我已经安装了很多 gem,不想全部重新安装(尤其是 32/64 位版本的问题)。
答案1
您应该编辑macports.conf
文件(在 中/opt/local/etc/macports/
)。激活该build_arch
行,并将其设置为:
build_arch i386
这将强制使用 i386(32 位)构建,而不是适合您的架构的默认构建,即 x86_64(64 位)。