Где устанавливаются инструменты командной строки xcode при использовании загруженного файла pkg?

У меня установлен Xcode на моем компьютере. Первоначально я установил инструменты командной строки xcode по приглашению при открытии Xcode. В моих настройках Xcode в разделе местоположений инструменты командной строки читают Xcode 12.0 (12A7209), а под ним путь /Applications/Xcode.app. Однако, как задокументировано НЕСКОЛЬКО раз при переполнении стека, Homebrew не распознавал мои инструменты командной строки xcode (CLT: N/A). Поэтому я загрузил файл pkg с сайта Apple Developer и переустановил инструменты командной строки с помощью этого файла pkg, поскольку установка из командной строки xcode-select --install не работала. Установщик графического интерфейса завершился без ошибок. Теперь Homebrew распознает мой CLT.

Вопрос: если Xcode уже установил инструменты командной строки, то в каком месте загруженный файл pkg от разработчика Apple также установил инструменты командной строки? Оставило ли это меня с двумя версиями инструментов командной строки xcode в моей системе?

Запуск xcode-select -p выводит следующее, как уже заметили многие люди: /Applications/Xcode.app/Contents/Developer

Дополнительно which -a xcode-select также возвращает только /usr/bin/xcode-select.

Что сделала дополнительная установка pkg на моем компьютере?

Какой смысл в том, чтобы Xcode устанавливал инструменты командной строки xcode при открытии, если нам все равно придется переустанавливать их из pkg, чтобы программы командной строки могли его прочитать?


person Jason    schedule 24.09.2020    source источник


Ответы (1)


если Xcode уже установил инструменты командной строки, то в каком месте загруженный файл pkg от разработчика Apple также установил инструменты командной строки?

/Library/Developer/CommandLineTools

Оставило ли это меня с двумя версиями инструментов командной строки xcode в моей системе?

Не совсем инструменты командной строки xcode, но два CLT, да. В идеале доморощенный должен использовать xcrun, чтобы найти их и использовать все доступные.

Запуск xcode-select -p выводит следующее, как уже заметили многие: /Applications/Xcode.app/Contents/Developer.

Это правильно и ожидаемо. Если у вас есть Xcode, следует использовать CLT Xcode. Если вы удалите Xcode, он должен вывести:

/Library/Developer/

Вы можете вручную изменить этот путь,

xcode-select -s <path>

Что сделала дополнительная установка pkg на моем компьютере?

Он просто сидит там, чтобы кто-нибудь мог его использовать.

Какой смысл в том, чтобы Xcode устанавливал инструменты командной строки xcode при открытии, если нам все равно придется переустанавливать их из pkg, чтобы программы командной строки могли его прочитать?

Плохо не использовать уже существующие Xcode CLT.

person puio    schedule 25.09.2020
comment
Знаете ли вы, как заставить Brew распознавать и использовать Xcode CLT? Кроме того, есть ли отдельная команда для использования CLT, установленных pkg? Когда я запускаю xcrun --show-sdk-path, он по-прежнему выводит путь Xcode CLT /Applications/Xcode.app/Content/..... - person Jason; 30.09.2020
comment
Вы можете создать символическую ссылку из папки разработчика Xcode в папку /Library/Developer. Вы пытались установить путь вручную, используя опцию -s? - person puio; 30.09.2020
comment
Зачем мне символически связывать XCLTS с CLT, установленными pkg? Или вы имели в виду наоборот? Я попробую, но есть ли конкретный исполняемый файл для символической ссылки? Кроме того, что изменение пути вручную делает с другими программами (если они есть), которые в настоящее время используют XCLT? - person Jason; 02.10.2020