Введение / Зачем это нужно
Xcode Command Line Tools (CLT) — это официальный набор утилит от Apple, необходимый для разработки ПО на macOS без установки полноценной IDE Xcode. Он включает компиляторы (Clang/LLVM), системы контроля версий (Git, SVN), утилиты сборки (Make), отладчики и заголовочные файлы frameworks. Без CLT многие скрипты, пакеты (например, через Homebrew) и инструменты разработки не будут работать. Данный гайд поможет вам быстро установить, проверить и настроить этот критически важный компонент.
Требования / Подготовка
- macOS 10.9 (Mavericks) или новее (актуально для Sonoma/Sequoia).
- Учетная запись с правами администратора (для установки).
- Стабильное интернет-соединение (размер загрузки ~1.5–2 ГБ).
- Достаточно свободного места на системном диске (не менее 5 ГБ рекомендуется).
- Терминал (Terminal.app) или любая альтернативная оболочка (iTerm2, Hyper).
Пошаговая инструкция
Шаг 1: Проверка наличия Command Line Tools
Сначала определите, установлены ли у вас инструменты. Откройте Терминал (Finder → Программы → Утилиты → Терминал) и выполните:
xcode-select -p
- Если инструменты установлены, команда выведет путь:
/Applications/Xcode.app/Contents/Developer(если установлен Xcode) или/Library/Developer/CommandLineTools. - Если инструменты НЕ установлены, вы увидите ошибку:
xcode-select: error: tool 'xcode-select' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance.
Также можно проверить наличие конкретных утилит, например Git:
git --version
Если Git не найден, система обычно предложит установить CLT.
Шаг 2: Установка через системное диалоговое окно (самый простой способ)
Самый частый и удобный метод — реакция на попытку запуска отсутствующей команды.
- В Терминале введите любую команду из CLT, например:
илиmake --versiongcc --version - Появится стандартное диалоговое окно macOS с предложением:
"Команда «make» требует установки инструментов командной строки. Хотите установить их сейчас?" - Нажмите кнопку «Установить».
- Примите лицензионное соглашение (EULA).
- Дождитесь завершения загрузки и установки (может занять от 5 до 20 минут в зависимости от скорости сети).
⚠️ Важно: Установка происходит от имени администратора. Вам может быть предложено ввести пароль пользователя с правами админа.
Шаг 3: Установка через командную строку (для автоматизации или Apple Silicon)
Если диалоговое окно не появляется (например, при удалённом подключении по SSH) или вы хотите автоматизировать процесс, используйте утилиту softwareupdate.
Для macOS на базе Apple Silicon (M1/M2/M3):
softwareupdate --install-rosetta --agree-to-license
Эта команда установит Rosetta 2 (эмулятор x86) и, как правило, запустит установку CLT. Для чистого запуска CLT:
sudo softwareupdate --install -a
Эта команда проверит и установит все доступные системные обновления, включая «Command Line Tools for Xcode».
Для Intel- Mac:
sudo softwareupdate --install -a
После выполнения команды введите пароль администратора. Процесс загрузки и установки может быть долгим.
Шаг 4: Проверка успешной установки
После завершения установки перезапустите Терминал (или откройте новое окно) и проверьте ключевые компоненты:
# Проверка Git (система контроля версий)
git --version
# Ожидаемый вывод: git version 2.xx.x
# Проверка компилятора Clang
clang --version
# Ожидаемый вывод: Apple clang version 15.x.x (clang-1500.x.x)
# Проверка утилиты Make
make --version
# Ожидаемый вывод: GNU Make 3.x.x
# Проверка пути к инструментам
xcode-select -p
# Ожидаемый вывод: /Library/Developer/CommandLineTools
Если все команды возвращают версии, а xcode-select -p показывает путь к CommandLineTools — установка прошла успешно.
Шаг 5: Настройка пути (PATH) и выбор активной версии
Иногда, особенно при наличии нескольких версий инструментов (например, после установки полного Xcode), система может использовать не те, которые вам нужны.
- Явный выбор пути: Установите приоритет Command Line Tools, выполнив:
sudo xcode-select --switch /Library/Developer/CommandLineTools
Эта команда сообщает системе использовать именно минимальный набор CLT, а не полный Xcode (если он есть). - Проверка переменной PATH: Убедитесь, что путь к инструментам находится в начале вашей переменной
PATH. Выполните:echo $PATH
В выводе должна присутствовать строка/Library/Developer/CommandLineTools/usr/bin(обычно она добавляется автоматически). Если её нет, добавьте в файл конфигурации вашей оболочки (~/.zshrcдля Zsh,~/.bash_profileдля Bash):export PATH="/Library/Developer/CommandLineTools/usr/bin:$PATH"
После добавления выполнитеsource ~/.zshrc(илиsource ~/.bash_profile), чтобы применить изменения.
Проверка результата
Главный признак успеха — возможность запуска всех базовых утилит без ошибок. Выполните комплексную проверку:
- Создайте простой C-файл
test.c:#include <stdio.h> int main() { printf("Hello from CLT!\n"); return 0; } - Скомпилируйте его с помощью
clang:clang test.c -o test - Запустите скомпилированный файл:
Вывод:./testHello from CLT!
Если компиляция и запуск прошли успешно — ваша среда разработки готова к работе.
Возможные проблемы
- Ошибка
xcode-select: error: tool 'xcode-select' requires Xcode...после установки.- Причина: Путь не сбросился автоматически.
- Решение: Выполните
sudo xcode-select --resetили явный выбор как в Шаге 5.
- Ошибка доступа (permission denied) при запуске
softwareupdate.- Причина: Не хватает прав суперпользователя.
- Решение: Используйте команду с
sudoи введите пароль администратора.
- Установка зависла или не началась через
softwareupdate.- Причина: Конфликт с активным прокси, проблемы с сертификатами Apple или недоступен сервер обновлений.
- Решение: Попробуйте установку через диалоговое окно (Шаг 2). Если не помогает, проверьте подключение к
developer.apple.comи временно отключите корпоративный прокси.
- Команды работают, но Homebrew жалуется на отсутствие CLT.
- Причина: Homebrew проверяет наличие не только бинарников, но и заголовочных файлов (
/Library/Developer/CommandLineTools/SDKs). - Решение: Убедитесь, что установлен полный набор. Переустановите CLT через диалоговое окно. Если проблема остаётся, проверьте наличие SDK:
ls /Library/Developer/CommandLineTools/SDKs.
- Причина: Homebrew проверяет наличие не только бинарников, но и заголовочных файлов (
- После обновления macOS CLT перестали работать.
- Причина: Обновление ОС часто делает старые инструменты несовместимыми.
- Решение: Удалите старые инструменты:
sudo rm -rf /Library/Developer/CommandLineToolsи установите заново, следуя Шагу 2 или 3.