安装Xcode 4.3后无法获得MacPort功能

时间:2012-02-17 06:14:33

标签: xcode osx-lion xcode4.3 macports

我无法让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.

我遵循了以下建议:

How do i install additional packages for Xcode on OSX Lion to allow MacPorts to work

并从Xcode中的Preferences中安装了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界面问题?

17 个答案:

答案 0 :(得分:82)

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

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

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

答案 1 :(得分:18)

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

答案 2 :(得分:11)

请参阅MacPorts migration instructions for Xcode 4.3

说明非常复杂。您需要运行xcode-select来设置新工具路径,在developer_dir中更新macports.conf(如Henk Poley所述),重新安装MacPorts(ouch),最后卸载并重新安装所有端口(双ouch)。

编辑: libpvx仍然无法在上述内容后安装。需要两个额外的步骤:

  1. sudo ln -s /Developer /
  2. sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs /SDKs
  3. 如果您安装了不同的端口,则为YMMV!

答案 3 :(得分:10)

同样在/opt/local/etc/macports/macports.conf更改developer_dir的行,指向/而不是/Developer

答案 4 :(得分:5)

之后

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

我也必须跑

sudo xcodebuild -license

并接受许可

答案 5 :(得分: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/
    

答案 6 :(得分:2)

这对我来说都不适用。等待macports发布一个正式支持XCode 4.3 +

的新版本

答案 7 :(得分:2)

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

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

因为大多数编译器现在存储在那里而不是开发人员下的/ usr / bin。

答案 8 :(得分:2)

尝试使用trunk,还没有支持Xcode 4.3的版本。

答案 9 :(得分:2)

sudo mv /usr/bin/xcodebuild /usr/bin/xcodebuild.old
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild /usr/bin/xcodebuild 

答案 10 :(得分:1)

截至2012年2月27日,来自MacPorts的official suggestion似乎是不使用XCode 4.3而是使用4.1到4.2.1,可以从Apple下载。

有一个bug ticket可能对跟进此演变有用。

顺便说一句,正如我在该错误报告中的第11条评论中所报告的那样,我能够通过使用此问题中找到的2个最健全的建议来构建没有警告的端口:{{1并将/opt/local/etc/macports/macports.conf中的sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer更改为developer_dir

答案 11 :(得分:1)

我安装的macports没有admin / root权限,所以我无法测试xcode-select答案。然而,我观察到Pall Melsted的答案有效,但最初并非如此。我发现的是我没有接受Xcode 4.5许可协议

如果您刚刚为macports安装了Xcode,并且尚未接受Xcode许可证,则可能会收到原始帖子提供的错误。当我使用/usr/bin/xcodebuild -version检查我的Xcode版本时,我被提示阅读并接受许可证。完成此操作后,在将颇尔建议的更改发送到macports.conf developer_dir之后,现在一切正常。

答案 12 :(得分:1)

从Xcode 4.3开始,默认情况下不安装命令行构建工具。启动Xcode,打开“首选项”,然后转到“下载”选项卡。从那里你可以选择安装命令行工具。

您也可以在网上下载:https://developer.apple.com/downloads/index.action

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

答案 13 :(得分:0)

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

在此之后,MacPorts变得对我来说很好。

答案 14 :(得分:0)

这已在MacPorts 2.0.4中修复。

要升级:

  1. install site下载MacPorts 2.0.4或运行sudo port selfupdate
  2. 运行描述here的MacPorts迁移以重新安装所有端口。这很痛苦,但需要回到工作状态。

答案 15 :(得分:0)

你应该像所有人一样运行sudo xcode-select -switch /Applications/Xcode.app,这样可以解决很多问题,但肯定不是全部。

Afaik,各种软件包的配置信息中存在所有剩余的问题。您可以按照migration instructions中的说明重新安装MacPorts,但我找到了另一种解决方案。


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

您应该使用port provides ...标识所有受影响的端口,我通过sedsort | uniq传输了该端口。您只需使用port -n upgrade --force ...或单独的port uninstall ...port install ...命令重新安装所有这些端口。

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

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

我担心您必须至少重建所有Python和Perl安装,使此升级成为清除依赖于旧版本ala python26perl5.8的软件包的理想时间。

有几个受技术影响的端口,我决定反对重建,例如fuse4x-kext,其/Developer内包含Library/Extensions/fuse4x.kext/Contents/MacOS/fuse4x,但未阻止sshfs正常工作。

答案 16 :(得分: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有好事哦..等等。

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