Я хотел бы написать скрипт установки инструментов командной строки Xcode.
На Маверикс,
xcode-select --install
откроет диалоговое окно, предлагающее пользователю установить, но я бы хотел запустить установку без диалогового окна, например, используя softwareupdate
команда.
Есть ли способ сделать это?
Редактировать:
В частности, xcode-select --install
запускает приложение, которое загружает и устанавливает инструменты, не требуя, чтобы пользователь загружал их вручную или имел учетную запись Apple Developer. Похоже, использовать /System/Library/CoreServices/Install Command Line Developer Tools.app
сделать это.
Я хотел бы использовать тот же механизм, что и Apple, но без графического интерфейса. Я не хочу вручную загружать .dmg, содержащий инструменты, так как это кажется хрупким. Apple предоставляет несколько других инструментов командной строки, таких как softwareupdate
а также install
которые загружают или устанавливают программное обеспечение непосредственно из Apple, и я ищу то же самое для этого типа распространения.
Ответы:
Хотел бы я претендовать на кредит на этот, но я нашел его похороненным в https://github.com/chcokr/osx-init/blob/master/install.sh
Это работало на моей 10.10 безголовой виртуальной машине без входа в систему. Обновления применены для совместимости не менее 10.9-10.14
Это предполагает, что у вас есть только 1 результат для
softwareupdate -l | grep "\*.*Command Line"
- если это возвращает несколько версий, вам может потребоваться более конкретная логика. (У меня нет дела с репро)один вариант, который, кажется, работает (ограниченное тестирование) 10.10-10.14 (10.9 не возвращает номер версии osx в названии инструментов cli .. так что там это не работает):
несколько примеров результатов:
источник
rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
после запускаsoftwareupdate -i ...
в противном случае последующие вызовыsoftwareupdate -l
дисплейCommand Line Tools ...
как доступное обновление. Это (предполагаемое) обновление не отображается в App Store, возможно, из-заsoftwareupdate -l
перечисляет только «системные» обновления, а не обновления приложений.Загрузите пакет инструментов командной строки с Сайт разработчика Apple ,
Смонтировать скачанный 1 DMG:
Запустите установщик из командной строки:
Когда закончите, размонтируйте DMG и удалите загрузку.
Извлечь DMG 2 ,
Удалить DMG.
1 На момент написания, загруженный DMG и имя пакета являются точными, однако в будущем имя может измениться. Не забудьте изменить команду (или использовать табуляцию), чтобы заполнить соответствующую часть команды.
2 Если команда не работает, убедитесь, что диск соответствует имени монтирования (согласно
mount
).источник
Альтернативой является использование этого appleScript, который я написал:
https://gist.github.com/brysgo/9007731
источник
Попытка очистить стиль и логику принятого ответа, сделав его максимально независимым от версии, используя
softwareupdate
на полную мощность и введение многоразового использованияos
переменная:источник
Это то, что я использую, частично основываясь на ответе brysgo
источник
Еще пару альтернатив можно найти в этих ответах:
Скачать инструменты командной строки XCode
Вы можете скачать пакеты XCode 4.x CLTools со своего официального сайта загрузки по прямым ссылкам.
Вот скрипт это автоматизирует процесс установки для вас 1 ,
Чтобы найти обновленные ссылки для инструментов, вы можете использовать эту команду:
[1] Пожалуйста, не злоупотребляйте и не перегружайте свои серверы.
Вы можете обнаружить, что проще сначала войти в Сайт для разработчиков Apple Developer и загрузите последние доступные инструменты командной строки. Затем вы можете разместить
.dmg
на вашем собственном сервере репозитория пакетов и сможете надежно установить.dmg
на многих машинах сhdiutil
без необходимости входить на developer.apple.com.По состоянию на 10.06.2015, ссылка на последние инструменты командной строки
dmg
является:http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_OS_X_10.10_for_Xcode_6.3.2/commandlinetoolsosx10.10forxcode6.3.2.dmg
источник
dmg
и скопировал необходимые части ответа локально на этот ответ.Я обнаружил, что если вы установите Home Brew, он автоматически установит инструменты командной строки.
Я проверил это с помощью это бродячее изображение ,
Запустите следующую команду для установки Homebrew и при этом установите инструменты командной строки.
источник