2012-02-17 2 views
61

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

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

и установленный 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?

ответ

78

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

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

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

+0

Это тоже сработало для меня. – Scot

+0

Это также работало для меня при обновлении Xcode с 4.2 до 4.3; Я считаю, что вам нужно только переустановить mac-порты, если вы делаете основное обновление ОС –

+1

+1. Спасибо!! Принятый/наивысший рейтинг ответил очень мучительно! – Otto

1

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

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

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

+1

Я установил инструменты командной строки, в соответствии с [ссылка] (HTTP: // StackOverflow. com/questions/9323738/able-to-get-macport-functional-after-install-xcode-4-3), это не повлияло. – Jason

+2

Вы можете попробовать запустить 'xcode-select -switch/Applications/Xcode.app'. –

+1

Это работает, но теперь clang не там, где ожидается macports, т. Е. В usr/bin/clang. –

2

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

10

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

+1

Не забудьте также раскомментировать эту строку! (Закомментировано с # по умолчанию) – gmcnaughton

+0

Я использовал: 'sudo nano /opt/local/etc/macports/macports.conf', чтобы редактировать конфигурацию, и это все еще не делало этого, поэтому я последовал за дополнительными советами из @gmcnaughton, и это, наконец, сработало. Спасибо за помощь. – Jason

+0

Работал для меня с XCode 4.6 – silentser

2

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

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

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

+0

Работал для меня - спасибо. – ioquatix

11

См. MacPorts migration instructions for Xcode 4.3.

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

Редактировать:libpvx все еще не установил после вышеуказанного. были необходимы два дополнительных шага:

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

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

+2

Мне удалось заставить это работать, добавив две мягкие ссылки в мой корневой каталог (Developer и SDK, упомянутые в Edit). Не требуется миграция макросов. – plainjimbo

+0

Эта дополнительная информация помогла, и она закончила работу. Я обновил конфигурационный файл, используя: 'sudo nano/opt/local/etc/macports/macports.conf'. Большое спасибо, я успешно использую MacPorts сейчас. – Jason

+2

Эти инструкции сложнее, чем нужно. Я просто убедился, что 'xcode-select' указывает на правильный путь и что /opt/local/etc/macports.conf имеет' developer_dir/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain'. – ioquatix

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/ 
    
+1

является sudo/usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer более подходящим? Теперь я успешно создаю macports. – Matt

+0

Похоже, что «Содержание/Разработчик» автоматически добавляется. 'xcode-select -print-path' показывает'/Applications/Xcode.app/Содержание/Разработчик' –

2

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

18

Все начнет работать нормально после установки пакета «Командная строка для Xcode». Вы можете получить его здесь: https://developer.apple.com/downloads/index.action#

+0

Не знаю, почему это было проголосовано ... Работала для меня как прелесть .. спасибо Pavel –

+0

Моя переустановка macports не будет работать корректно, пока инструменты командной строки также не будут загружены с помощью настроек в xcode. Этот ответ соответствует тому, что я сделал, чтобы работать с макроблоками. – devNoise

+0

Перед попыткой любой миграции. Я загрузил «Инструменты командной строки ...» и отлично работает. Mac OS Lion + xCode 4.3.3. Не нужно мигрировать –

1

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

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

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

+0

Предполагая, что 2011 год должен быть 2012? – sblom

+0

Да, извините, отредактировано. – hmijail

0

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

Обновление:

  1. Скачать MacPorts 2.0.4 из install site или запустить sudo port selfupdate.
  2. Для переноса всех портов выполните миграцию MacPorts here. Это болезненно, но требуется вернуться в рабочее состояние.
0

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

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


Вы должны начать поиск всех файлов Effected портов с помощью команд, как 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.

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

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

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

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

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

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

+0

Хорошо, что osx имеет dtruss. –

+0

Так оно и есть, спасибо за отзыв Кен! – siesta

1

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

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

5

После

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

Я также должен был бежать

sudo xcodebuild -license 

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

Смежные вопросы