62

我无法让 MacPorts 正常运行。我刚刚安装了OSX Lion 10.7.3我先下载安装了MacPorts,然后看了需求,从App Store下载了Xcode4.3,然后安装了。我启动了 Xcode,它看起来可以运行且功能正常。但是,当我尝试使用 MacPorts 移植时,它给了我这个错误消息(摘录):

Warning: xcodebuild exists but failed to execute
Warning: Xcode does not appear to be installed; most ports will likely fail to build.

我遵循了以下建议:

我如何在 OSX Lion 上为 Xcode 安装其他软件包以允许 MacPorts 工作

并从 Xcode 中的首选项安装 command_line_tools_for_xcode。我关闭了 Xcode,再次遇到错误:

$ sudo port install libsocketsPassword:
Warning: xcodebuild exists but failed to execute
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
--->  Computing dependencies for libsockets
--->  Dependencies to be installed: openssl zlib
--->  Extracting zlib
Error: Couldn't determine your Xcode version (from '/usr/bin/xcodebuild -version').
Error: 
Error: If you have not installed Xcode, install it now; see:
Error: http://guide.macports.org/chunked/installing.xcode.html
Error: 
Error: Target org.macports.extract returned: unable to find Xcode
Error: Failed to install zlib
Log for zlib is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_zlib/zlib/main.log
Error: The following dependencies were not installed: openssl zlib
Error: Status 1 encountered during processing.

我不确定下一步该去哪里。如何解决我的 Xcode 和 MacPort 界面问题?

4

17 回答 17

85

理论上,如果您安装了 Xcode4.3(在 /Applications 中),这应该可以工作:

$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/

(并且您已经安装了可选的命令行工具)

于 2012-02-23T20:39:31.940 回答
18

安装“Xcode 命令行工具”包后,一切都将开始正常工作。你可以从这里得到它:https ://developer.apple.com/downloads/index.action#

于 2012-02-23T13:00:44.507 回答
11

请参阅Xcode 4.3 的 MacPorts 迁移说明

这些说明非常复杂。您需要运行xcode-select以设置新的工具路径,更新developer_dirmacports.confHenk Poley所述),重新安装 MacPorts(哎哟),最后卸载并重新安装所有端口(双重哎哟)。

编辑: libpvx在上述之后仍然不会安装。需要两个额外的步骤:

  1. sudo ln -s /Developer /
  2. sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs /SDKs

如果您安装了不同的端口,则为 YMMV!

于 2012-02-17T19:01:38.317 回答
10

同样在/opt/local/etc/macports/macports.confdeveloper_dirto 指向/而不是/Developer.

于 2012-02-17T11:26:57.707 回答
5

sudo xcode-select -switch /Applications/Xcode.app

我也不得不跑

sudo xcodebuild -license

并接受许可

于 2012-10-29T22:12:26.823 回答
4

这是一个对我有用的解决方案:

  1. 为 Xcode 安装命令行工具

    Xcode -> Preferences -> Downloads
    
  2. 帮助 MacPorts 找到正确的 Xcode 文件夹

    sudo /usr/bin/xcode-select -switch /Applications/Xcode.app
    
  3. 为 clang 编译器创建符号链接,因为它们现在位于其他地方

    sudo ln -s `which clang` /Applications/Xcode.app/Contents/Developer/usr/bin/
    sudo ln -s `which clang++` /Applications/Xcode.app/Contents/Developer/usr/bin/
    
于 2012-02-23T10:18:34.890 回答
2

尝试使用主干,目前还没有支持 Xcode 4.3 的版本。

于 2012-02-17T11:16:47.340 回答
2

在 /opt/local/etc/macports.conf 中设置开发者路径对我有用,

developer_dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

因为大多数编译器现在都存储在那里,而不是 Developer 下的 /usr/bin。

于 2012-02-17T12:16:49.353 回答
2

这些都不适合我。等待macports发布正式支持XCode 4.3+的新版本

于 2012-02-23T10:49:46.403 回答
2
sudo mv /usr/bin/xcodebuild /usr/bin/xcodebuild.old
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild /usr/bin/xcodebuild 
于 2012-04-05T19:06:29.513 回答
1

从 Xcode 4.3 开始,默认不安装命令行构建工具。启动 Xcode,打开 Preferences,然后转到 Downloads 选项卡。从那里您应该可以选择安装命令行工具。

您也可以在此处从网上下载它们:https ://developer.apple.com/downloads/index.action

免责声明:我还没有安装 Xcode 4.3。我只在网上读过它。

于 2012-02-17T06:20:11.660 回答
1

截至 27/2/2012,MacPorts 的官方建议似乎是不要使用 XCode 4.3,而是使用 4.1 到 4.2.1,可以从 Apple 下载。

有一个错误票可能有助于跟踪它的演变。

顺便说一句,正如我在该错误报告中的评论 #11 中所报告的,我可以通过使用在这个问题中找到的 2 个看起来最理智的建议来构建端口而不发出警告:sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer并更改developer_dir/opt/local/etc/macports/macports .conf 到/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

于 2012-02-27T09:49:26.520 回答
1

我在没有管理员/root 权限的情况下安装了 macport,因此无法测试 xcode-select 答案。但是,我观察到 Pall Melsted 的回答有效,但最初并非如此。我发现我没有接受 Xcode 4.5 许可协议

如果您刚刚为 macports 安装了 Xcode,并且您还没有接受 Xcode 许可证,您可能会收到原始帖子中出现的错误。当我使用 来检查我的 Xcode 版本/usr/bin/xcodebuild -version时,系统提示我阅读并接受许可证。这样做之后,并在对 Pall 建议的更改进行了更改之后macports.conf developer_dir,现在一切正常。

于 2012-09-25T00:15:12.897 回答
0

作为替代方案:您可以将 Xcode 降级到 4.2.1 版本。Xcode 4.2.1 的 DMG 放在这里:https ://developer.apple.com/downloads/index.action

在这之后 MacPorts 对我来说很好用。

于 2012-02-19T07:30:56.630 回答
0

这在 MacPorts 2.0.4 中已修复。

升级:

  1. 安装站点下载 MacPorts 2.0.4或运行sudo port selfupdate.
  2. 运行此处描述的 MacPorts 迁移以重新安装所有端口。这很痛苦,但需要回到工作状态。
于 2012-02-28T21:44:57.250 回答
0

你绝对应该sudo xcode-select -switch /Applications/Xcode.app像这里的每个人所说的那样跑步,这会解决很多问题,但肯定不是全部。

Afaik,所有剩余的问题都存在于各种包的配置信息中。您可能只需按照迁移说明中的说明重新安装 MacPorts ,但我找到了另一种解决方案。


您应该grep /Developer/ ...在执行后自然而然地使用 ,sudo bashcd /opt/local命令开始查找所有受影响的端口文件。

您应该使用 来识别所有受影响的端口port provides ...,我通过管道sedsort | uniq. 您可以使用port -n upgrade --force ...或单独port uninstall ...的 andport install ...命令简单地重新安装所有这些端口。

我建议使用一个大port -n upgrade --force ...命令来避免重复重建依赖项,然后使用单独的卸载和安装命令。

当然,有各种端口/Developer仅存在于文本配置文件中,这意味着您可以使用 手动修复它们sed -i -e 's/\/Developer//g' ...,但显然不能使用二进制文件来修复它们。

恐怕您至少必须重建所有 Python 和 Perl 安装,使这次升级成为清理依赖旧版本、alapython26perl5.8.

有几个受技术影响的端口我决定不重建 like fuse4x-kext,它们包含/Developer在内部Library/Extensions/fuse4x.kext/Contents/MacOS/fuse4x但并未阻止其sshfs正常工作。

于 2012-04-04T15:18:44.397 回答
0

我最初安装了 xcode 3.2.2,之后我安装了 4.3。当我运行 xcode-select 时,我仍然收到关于 /Applications 中没有 xcode 项目的相同错误。然后我深入研究了 /usr/bin/xcodebuild 脚本,发现它工作正常,并且 xcodebuild 的另一个实例(使用 xcode 4.3 安装的那个,而不是 /usr/bin 中的那个)正在运行并返回错误:

xcodebuild:错误:目录 /Applications 不包含 Xcode 项目。

似乎 /usr/bin/xcode-select 不适用于 xcode 4.3,(它已编译,因此您无法真正看到它为什么不起作用)。字符串没有提供任何线索。好东西 osx 有 strace .. 哦等等。

无论如何,我能做的最好的就是修改 /opt/local/etc/macports.conf 并取消注释包含 xcode 安装路径的行。这似乎在很大程度上解决了我的问题。

于 2012-07-01T09:52:54.320 回答