Как переключаться между несколькими установками инструментов командной строки в Mac OS X (без установки XCode)

Можно ли установить и переключаться между несколькими версиями инструментов командной строки в Mac OS X? Мне было интересно, если это возможно использовать xcode-select но установщик инструментов командной строки не имеет возможности выбрать место установки. Я пытался создать несколько установок вручную, переименовав Library/Developer/CommandLineTools а затем передать его xcode-select, Команда успешно выполняется, но когда я пытаюсь получить доступ к gcc, я получаю:

gcc: error: unable to find Xcode installation from active developer path "/Library/Developer/CommandLineTools_9.0.0", use xcode-select to change

Кажется, это возможно при установке всего XCode, но мне не нужен XCode и я предпочитаю не устанавливать его. Все, что мне нужно, это инструменты командной строки.

3 ответа

Я попытался сделать то же самое и после некоторых экспериментов нашел следующее решение. Да, это возможно, но вам нужно скопировать / переименовать весь /Library/Developer папка. Например:

1) сначала я просто показываю свою версию macOS:

$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G65

2) скачать и установить инструменты командной строки для Xcode, например, версия 10b5

3) создавать папки для хранения разных версий инструментов:

$ mkdir ~/Project/tools
$ mkdir ~/Projects/tools/Developer10b5
$ mkdir ~/Projects/tools/Developer9.4.1

4) скопировать всю папку разработчика:

$ cp -R /Library/Developer/ ~/Project/tools/Developer10b5/

5) затем загрузите и установите инструменты командной строки для Xcode, например, 9.4.1 версии

6) скопировать всю папку разработчика:

$ cp -R /Library/Developer/ ~/Project/tools/Developer9.4.1/

7) переключиться на версию инструментов 9.4.1 и проверить версию clang:

$ sudo xcode-select -s ~/Project/tools/Developer9.4.1/
$ clang --version

Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Users/<username>/Projects/tools/Developer9.4.1/CommandLineTools/usr/bin

8) переключиться на версию 10b5 инструментов и проверить версию clang:

$ clang --version
Apple LLVM version 10.0.0 (clang-1000.10.40.1)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Users/<username>/Projects/tools/Developer10b5/CommandLineTools/usr/bin

Для тех, у кого есть такая проблема, как @PaulMasri-Stone, я обнаружил, что после удаления ранее установленного Xcode (установка нескольких версий Xcode не была возможна на моем компьютере из-за места), указанный выше метод также дал мне `` недопустимый разработчик каталог 'ошибка.

Я решил эту проблему, набрав sudo xcode-select -r для сброса к инструментам командной строки по умолчанию (и сброса любого другого базового состояния, которое система использует для отслеживания местоположения SDK - и отсутствия Xcode), а затем sudo xcode-select -s /Library/Developer/CommandLineTools10.13_Xcode9.4.1. Обратите внимание, чтоsudo xcode-select -s /Library/Developerбы не работать для меня, так же как и проблема, что @PaulMasri-камень.

В противном случае вы захотите следовать инструкциям, указанным @Ilirium, но вам нужно только скопировать / переименовать CommandLineTools каталог.

Эти инструкции сработали для меня. @PaulMasri-Stone - вместо того, чтобы указывать xcode на корневой каталог, мне пришлось указать его на каталог CommandLineTools следующим образом:

sudo xcode-select -s ~/projects/tools/llvm1131/CommandLineTools/

Другие вопросы по тегам