Невозможно получить функциональность MacPort после установки Xcode 4.3 - PullRequest
62 голосов
/ 17 февраля 2012

У меня проблемы с настройкой MacPorts для правильной работы. Я только что установил OSX Lion 10.7.3. Сначала я загрузил и установил MacPorts, а затем, ознакомившись с требованиями, загрузил 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?

Ответы [ 17 ]

1 голос
/ 17 февраля 2012

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

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

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

1 голос
/ 25 сентября 2012

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

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

1 голос
/ 27 февраля 2012

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

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

Кстати, и, как сообщалось в моем комментарии № 11 к этому сообщению об ошибке, я могу иметь возможность строить порты без предупреждений, используя 2 наиболее вменяемых предложения, найденных в этом вопросе: изменив developer_dir в /opt/local/etc/macports/macports.conf на /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

0 голосов
/ 01 июля 2012

Первоначально я установил xcode 3.2.2, после чего установил 4.3.Когда я запустил xcode-select, я все еще получал ту же ошибку об отсутствии проекта xcode в / Applications.Затем я покопался в скрипте / 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.Похоже, это решает мою проблему по большей части.

0 голосов
/ 04 апреля 2012

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

Афаик, все оставшиеся проблемы существуют в информации о конфигурации для различных пакетов.Вы можете просто переустановить 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 работать правильно.

0 голосов
/ 29 февраля 2012

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

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

  1. Загрузите MacPorts 2.0.4 с сайта установки или запустите sudo port selfupdate.
  2. Запустите миграцию MacPorts, описанную здесь , чтобы переустановить все порты. Это больно, но требуется, чтобы вернуться в рабочее состояние.
0 голосов
/ 19 февраля 2012

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

После этого MacPorts стал работать нормально для меня.

...