Clang — это компилятор для языков C, C++ и Objective-C, разрабатываемый проектом LLVM. Он известен быстрой компиляцией, понятными сообщениями об ошибках и отличной совместимостью с современными стандартами C++. Clang используется во многих проектах (Chrome, Firefox, FreeBSD) и является отличной альтернативой GCC.
В этом руководстве я покажу два способа установки Clang на Debian:
- Из официальных репозиториев Debian (просто, но версия зависит от релиза)
- Из репозитория LLVM (apt.llvm.org) (свежая версия 20.x)
| Метод | Версия | Обновления | Для кого |
|---|---|---|---|
| Debian APT | Debian 13: 19.1.x; Debian 12: 14.0.x; Debian 11: 11.0.x | Через apt upgrade | Большинство пользователей |
| LLVM APT- репозиторий | 20.x (через clang-20) | Через apt upgrade | Те, кому нужна свежая версия |
⚠️ Важно: Репозиторий LLVM устанавливает версионный бинарный файл (clang-20), а не заменяет стандартный clang. Оба могут сосуществовать.
Предварительные требования
Перед установкой убедитесь, что:
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Способ 1: Установка Clang из репозиториев Debian
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Шаг 2: Установите Clang
sudo apt install -y clang
Шаг 3: Проверьте установку
clang --version
✅ Ожидаемый вывод (зависит от версии Debian):
- Debian 13:
Debian clang version 19.1.7 - Debian 12:
Debian clang version 14.0.6 - Debian 11:
Debian clang version 11.0.1
Способ 2: Установка Clang 20 из репозитория LLVM (apt.llvm.org)
Этот способ даёт более свежую версию Clang (20.x) на любой версии Debian.
Шаг 1: Установите зависимости
sudo apt install -y ca-certificates curl gpg
Шаг 2: Добавьте GPG-ключ репозитория LLVM
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | sudo gpg --dearmor --yes -o /usr/share/keyrings/apt-llvm-org.gpg
Шаг 3: Добавьте репозиторий LLVM
. /etc/os-release
printf '%s\n' \
"Types: deb" \
"URIs: https://apt.llvm.org/${VERSION_CODENAME}/" \
"Suites: llvm-toolchain-${VERSION_CODENAME}-20" \
"Components: main" \
"Signed-By: /usr/share/keyrings/apt-llvm-org.gpg" | sudo tee /etc/apt/sources.list.d/apt-llvm-org.sources > /dev/null
Шаг 4: Обновите список пакетов
sudo apt update
Шаг 5: Проверьте, что пакет clang-20 виден
apt-cache policy clang-20
✅ Ожидаемый вывод: Должна быть строка с apt.llvm.org.
Шаг 6: Установите Clang 20
sudo apt install -y clang-20
Шаг 7: Проверьте установку
clang-20 --version
✅ Ожидаемый вывод: Debian clang version 20.1.8 (или новее).
command -v clang-20
✅ Ожидаемый вывод: /usr/bin/clang-20
Тестовый пример
Шаг 1: Создайте тестовую программу
cat <<'EOF' > hello-clang.c
#include <stdio.h>
int main(void) {
puts("Clang works on Debian.");
return 0;
}
EOF
Шаг 2: Скомпилируйте и запустите
Для APT-версии:
clang hello-clang.c -o hello-clang
./hello-clang
Для LLVM-версии:
clang-20 hello-clang.c -o hello-clang-20
./hello-clang-20
✅ Ожидаемый вывод: Clang works on Debian.
Обновление Clang
Обновление APT-версии
Debian 13:
sudo apt update && sudo apt install --only-upgrade clang clang-19 -y
Debian 12:
sudo apt update && sudo apt install --only-upgrade clang clang-14 -y
Debian 11:
sudo apt update && sudo apt install --only-upgrade clang clang-11 -y
Обновление LLVM-версии
sudo apt update && sudo apt install --only-upgrade clang-20 -y
Решение типичных проблем
8.1 Ошибка: clang: command not found после установки LLVM-версии
Симптом: clang --version не работает, хотя clang-20 установлен.
Причина: LLVM-репозиторий устанавливает только версионный бинарный файл (clang-20), а не симлинк clang.
Пошаговое решение:
Используйте clang-20 вместо clang или установите APT-пакет clang для создания симлинка.
8.2 Ошибка: GPG key error при apt update
Симптом: sudo apt update выдаёт ошибку ключа.
Причина: Проблемы с GPG-ключом репозитория LLVM.
Пошаговое решение:
Переустановите ключ:
sudo rm -f /usr/share/keyrings/apt-llvm-org.gpg
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | sudo gpg --dearmor --yes -o /usr/share/keyrings/apt-llvm-org.gpg
sudo apt update
8.3 Ошибка: Неправильная версия Clang активна
Симптом: clang --version показывает не ту версию (например, 14 вместо 20).
Причина: Установлены обе версии, и APT-версия находится в PATH раньше.
Пошаговое решение:
Используйте полный путь или явно вызывайте нужную версию:
clang-20 --version
Или удалите старую версию:
sudo apt remove clang clang-14
8.4 Ошибка: Не найден заголовочный файл при компиляции
Симптом: fatal error: 'stdio.h' file not found.
Причина: Не установлены заголовочные файлы стандартной библиотеки.
Пошаговое решение:
Установите пакеты разработки:
sudo apt install -y build-essential
8.5 Ошибка: Несовместимость версий Clang и LLVM
Симптом: При компиляции ошибки линковки или несовместимости ABI.
Причина: Установлены разные версии Clang и LLVM.
Пошаговое решение:
Устанавливайте Clang из одного источника (только APT или только LLVM-репозиторий). Не смешивайте.
Чек-лист: что проверить после установки
- [ ] Clang установлен:
clang --version(APT) илиclang-20 --version(LLVM) показывает версию - [ ] Компиляция работает:
clang hello-clang.c -o test && ./test→Clang works on Debian. - [ ] Для LLVM-версии:
command -v clang-20→/usr/bin/clang-20 - [ ] GPG-ключ настроен (для LLVM):
ls /usr/share/keyrings/apt-llvm-org.gpg
Удаление Clang
Удаление APT-версии
Debian 13:
sudo apt remove clang clang-19
sudo apt autoremove
Debian 12:
sudo apt remove clang clang-14
sudo apt autoremove
Debian 11:
sudo apt remove clang clang-11
sudo apt autoremove
Удаление LLVM-версии
sudo apt remove clang-20
sudo apt autoremove
sudo rm -f /etc/apt/sources.list.d/apt-llvm-org.sources
sudo rm -f /usr/share/keyrings/apt-llvm-org.gpg
sudo apt update
Часто задаваемые вопросы (FAQ)
Вопрос: Какая версия Clang в Debian 13 по умолчанию?
Ответ: Debian 13 (Trixie) содержит Clang 19.1.x в официальных репозиториях.
Вопрос: Нужно ли удалять GCC перед установкой Clang?
Ответ: Нет, они прекрасно сосуществуют.
Вопрос: Clang быстрее GCC?
Ответ: Clang обычно быстрее компилирует, но GCC часто генерирует более оптимизированный код. Выбор зависит от проекта.
Вопрос: Могу ли я использовать Clang для компиляции ядра Linux?
Ответ: Да, начиная с ядра 5.18, Clang является полноценной альтернативой GCC для сборки ядра.
Вопрос: Как переключиться между Clang и GCC по умолчанию?
Ответ: Используйте update-alternatives --config cc.
Заключение
Теперь Clang установлен на вашем Debian. Вы можете компилировать C/C++ проекты с современным компилятором и наслаждаться понятными сообщениями об ошибках.
Что дальше?
- Установите CMake для управления сборкой
- Установите Git для контроля версий
- Установите Visual Studio Code с расширениями для C++