Не удалось получить функциональность MacPort после установки Xcode 4.3

У меня возникают проблемы с тем, что MacPorts функционирует должным образом. Я только что установил OSX Lion 10.7.3. Сначала я загрузил и установил MacPort, а затем, прочитав требования, загрузил Xcode4.3 из App Store и установил его. Я запустил Xcode, и он выглядит работоспособным и функциональным. Однако, когда я попытался выполнить перенос с помощью MacPorts, он дал мне это сообщение об ошибке (выдержка):

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

Я последовал совету:

Как установить дополнительные пакеты для Xcode на OSX Lion, чтобы позволить MacPorts работать

и установил command_line_tools_for_xcode из настроек в 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?

Ответ 1

В теории это должно работать, если у вас установлен Xcode4.3 (в/Приложения):

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

(И вы установили необязательные инструменты командной строки)

Ответ 3

См. Инструкции по переносу MacPorts для Xcode 4.3.

Инструкции очень привлекательны. Вам нужно запустить xcode-select, чтобы установить новый путь к инструментам, обновить developer_dir в macports.conf (как описано Henk Poley), переустановить MacPorts (ouch), и, наконец, удалите и переустановите все порты (double ouch).

Изменить: libpvx по-прежнему не будет установлено после указанного выше. Требуются два дополнительных шага:

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

YMMV, если у вас установлены разные порты!

Ответ 4

Также в /opt/local/etc/macports/macports.conf измените строку с помощью developer_dir, чтобы указать на / вместо /Developer.

Ответ 5

После

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

Мне также пришлось запускать

sudo xcodebuild -license

и принять лицензию

Ответ 6

Вот решение, которое сработало для меня:

  • Установите средства командной строки для Xcode

    Xcode -> Preferences -> Downloads
    
  • Справка MacPorts находит нужную папку Xcode

    sudo /usr/bin/xcode-select -switch /Applications/Xcode.app
    
  • Создайте символические ссылки для компиляторов 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/
    

Ответ 7

Попробуйте использовать соединительную линию, там еще нет версии поддержки Xcode 4.3.

Ответ 8

Настройка пути разработчика в /opt/local/etc/macports.conf работает для меня,

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

поскольку большинство компиляторов теперь там хранятся вместо /usr/bin под Developer.

Ответ 9

Ничто из этого не работает для меня. Подождите, пока macports выпустит новую версию, которая официально поддерживает XCode 4.3 +

Ответ 10

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

Ответ 11

Начиная с Xcode 4.3, инструменты построения командной строки не установлены по умолчанию. Запустите Xcode, откройте "Настройки" и перейдите на вкладку "Загрузки". Оттуда у вас должна быть возможность установить инструменты командной строки.

Вы также можете скачать их из Интернета здесь: https://developer.apple.com/downloads/index.action

Отказ от ответственности: я еще не установил Xcode 4.3. Я только читал об этом в Интернете.

Ответ 12

По состоянию на 27/22/2012 официальное предложение от MacPorts, похоже, не должно использовать XCode 4.3 и вместо этого использовать от 4.1 до 4.2. 1, который можно загрузить с Apple.

Существует биг-код, который может быть полезен для отслеживания эволюции этого.

Кстати, и как сообщается в моем комментарии № 11 в этом отчете об ошибке, я am умею строить порты без предупреждений, используя 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

Ответ 13

У меня есть macports, установленный без прав администратора /root, поэтому я не смог проверить ответы на выбор xcode. Однако я заметил, что ответ Палла Мелстида работал, но не изначально. Я узнал, что я не принял лицензионное соглашение Xcode 4.5!

Если вы только что установили Xcode для целей macports, и вы еще не приняли лицензию Xcode, вы можете получить ошибку, представленную исходным сообщением. Когда я проверил версию Xcode с помощью /usr/bin/xcodebuild -version, мне было предложено прочитать и принять лицензию. После этого и после внесения изменений, предложенных Pall, в macports.conf developer_dir, все это работает сейчас.

Ответ 14

В качестве альтернативы: вы можете понизить версию Xcode до версии 4.2.1. DMG Xcode 4.2.1: https://developer.apple.com/downloads/index.action

После этого MacPorts стал для меня прекрасным.

Ответ 15

Это исправлено в MacPorts 2.0.4.

Для обновления:

  • Загрузите MacPorts 2.0.4 с установить сайт или запустите sudo port selfupdate.
  • Запустите миграцию MacPorts, описанную здесь, чтобы переустановить все порты. Это болезненно, но требуется вернуться в рабочее состояние.

Ответ 16

Вы должны определенно запустить sudo xcode-select -switch /Applications/Xcode.app, как говорят все здесь, что устранит многие проблемы, но, конечно, не все.

Afaik, все остальные проблемы существуют в информации конфигурации для различных пакетов. Вы можете просто переустановить MacPorts, как описано в инструкции по миграции, но я нашел другое решение.


Вы должны начать поиск всех обработанных файлов портов с помощью команд типа grep /Developer/ ..., после выполнения sudo bash и cd /opt/local, естественно.

Вы должны идентифицировать все обработанные порты, используя port provides ..., который я пропустил через sed и sort | uniq. Вы можете просто переустановить все эти порты, используя команды port -n upgrade --force ... или отдельные команды port uninstall ... и port install ....

Я рекомендую использовать одну большую команду port -n upgrade --force ..., чтобы избежать дублирования перестроек зависимостей, используя впоследствии отдельные команды удаления и установки.

Существуют, конечно, разные порты, для которых /Developer существует только внутри текстовых файлов конфигурации, то есть вы можете исправить их вручную с помощью sed -i -e 's/\/Developer//g' ..., но вы не можете сделать это с помощью двоичных файлов.

Я боюсь, что вы должны, как минимум, перестроить все свои установки на Python и Perl, сделав это обновление идеальным временем для очистки пакетов, которые зависят от более старых версий, ala python26 и perl5.8.

Есть несколько технически осуществленных портов, которые я решил не перестраивать, как fuse4x-kext, которые содержали /Developer внутри Library/Extensions/fuse4x.kext/Contents/MacOS/fuse4x, но не предотвратили корректную работу sshfs.

Ответ 17

Я изначально установил xcode 3.2.2, после чего я установил 4.3. Когда я запустил xcode-select, я все равно получил ту же ошибку, что и проект xcode в /Applications. Затем я вырыл в /usr/bin/xcodebuild script и выяснил, что он работает правильно, и запускался еще один экземпляр xcodebuild (тот, который был установлен с xcode 4.3, а не тот, который был в /usr/bin ) ошибка:

xcodebuild: error: Каталог/Приложения не содержит проект Xcode.

Кажется, что /usr/bin/xcode -select не работает для xcode 4.3 (он скомпилирован, поэтому вы не можете понять, почему он не работает). Строки не дают никаких подсказок. Хорошая вещь osx имеет strace.. о, подождите.

В любом случае, лучшее, что я мог сделать, это изменить /opt/local/etc/macports.conf и раскомментируйте строку, содержащую путь к установке xcode. Похоже, что я исправляю свою проблему по большей части.