CUDA (Compute Unified Device Architecture) — это платформа параллельных вычислений от NVIDIA, которая позволяет использовать вычислительные ядра видеокарты (GPU) для решения ресурсоёмких задач: машинное обучение, научные симуляции, видеокодирование, обработка изображений. Установка CUDA на Debian включает три компонента: драйвер NVIDIA, тулкит (компилятор nvcc и библиотеки) и репозиторий. Главные сложности для новичка: нужно добавить репозитории contrib и non-free, правильно импортировать GPG-ключ NVIDIA (для Debian 13 он другой), выбрать способ установки (стабильный из Debian или свежий из репозитория NVIDIA), а также решить проблему с Secure Boot (создать MOK-пароль). На Debian 11 максимальная версия CUDA из репозитория NVIDIA — 12.6.x (из-за ограничений библиотеки glibc).
💡 В этом руководстве вы установите CUDA на Debian двумя способами: из стандартного репозитория Debian (стабильнее, но старше) и из официального репозитория NVIDIA (новее). Вы также узнаете, как настроить окружение, проверить работу на тестовой программе и решить типичные проблемы.
В этой статье вы узнаете:
- Как подготовить систему: включить
contribиnon-free, установить зависимости - Как установить CUDA из репозитория Debian (проще, стабильнее)
- Как установить CUDA из официального репозитория NVIDIA (свежее)
- Как настроить переменные окружения PATH и LD_LIBRARY_PATH
- Как проверить установку с помощью
nvidia-smiиnvcc - Как скомпилировать и запустить тестовую CUDA-программу
- Как решить типичные проблемы: конфликт драйверов, Secure Boot, ошибки GPG-ключа
Для кого: разработчики ML/AI, исследователи, энтузиасты, а также все, кому нужно использовать GPU-ускорение на Debian 11, 12 или 13.
1. 🔧 Предварительные требования
Перед установкой убедитесь, что:
- У вас установлена Debian 11, 12 или 13
- У вас есть совместимая видеокарта NVIDIA (для CUDA-вычислений)
- Подключение к интернету стабильно
- У вас есть права sudo
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.
Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
1.1 Обновление системы
sudo apt update && sudo apt upgrade -y
Что делает: Обновляет список пакетов и устанавливает последние обновления.
Зачем: Важно, чтобы ядро системы и заголовки были актуальны, так как драйвер NVIDIA компилирует модули ядра.
1.2 Включение репозиториев contrib, non-free и non-free-firmware
CUDA находится в компонентах contrib и non-free. Включите их в зависимости от версии Debian.
Для Debian 13 и 12 (новый формат DEB822):
sudo sed -i 's/Components: main/Components: main contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources
sudo apt update
Для Debian 11 (старый формат sources.list):
sudo sed -i 's/main$/main contrib non-free/' /etc/apt/sources.list
sudo apt update
1.3 Установка вспомогательных пакетов
sudo apt install ca-certificates curl gpg linux-headers-$(uname -r) build-essential dkms -y
Что делает: Устанавливает инструменты для безопасной работы с HTTPS-репозиториями, GPG-ключами, заголовки ядра и инструменты сборки модулей.
1.4 (Опционально) Удаление предыдущих установок NVIDIA и CUDA
Если вы ранее устанавливали драйверы NVIDIA или CUDA другим способом (из .run-файла или старых пакетов), удалите их.
Для пакетов APT:
sudo apt remove 'cuda*' 'nvidia*' --purge -y
sudo apt autoremove --purge -y
Для установки из .run-файла:
sudo nvidia-installer --uninstall
sudo /usr/local/cuda-X.Y/bin/cuda-uninstaller
2. 📊 Сравнение способов установки CUDA
В Debian есть два основных способа установки CUDA. Вот их сравнение:
| Метод | Debian 13 | Debian 12 | Debian 11 | Плюсы | Минусы |
|---|---|---|---|---|---|
| Debian репозиторий | CUDA 12.4 | CUDA 11.8 | CUDA 11.2 | Стабильность, проверенные пакеты, не нужно возиться с ключами | Версии старые |
| Репозиторий NVIDIA | CUDA 13.x | CUDA 13.x | CUDA 12.6.x | Свежие версии тулкита и драйверов | Нужно вручную добавлять репозиторий и GPG-ключ, возможны конфликты с Secure Boot |
💡 Рекомендация: Если вам нужна максимальная стабильность и вы не гонитесь за самой свежей версией CUDA — используйте репозиторий Debian. Если вы разрабатываете на PyTorch/TensorFlow и нужна свежая CUDA — используйте репозиторий NVIDIA.
3. 📦 Способ 1: Установка CUDA из репозитория Debian (стабильнее, но старше)
Этот способ подходит для тех, кто предпочитает проверенные пакеты от Debian.
3.1 Проверка доступной версии
apt-cache policy nvidia-cuda-toolkit nvidia-driver
✅ Ожидаемый вывод (Debian 13):
nvidia-cuda-toolkit:
Installed: (none)
Candidate: 12.4.131~12.4.1-2
nvidia-driver:
Installed: (none)
Candidate: 550.163.01-2
3.2 Установка CUDA и драйвера
sudo apt install nvidia-cuda-toolkit nvidia-driver -y
Что делает: Устанавливает CUDA Toolkit (компилятор nvcc, библиотеки) и драйвер NVIDIA.
3.3 Перезагрузка
sudo reboot
3.4 Настройка переменных окружения
Для Debian-репозитория переменные окружения обычно не нужны, так как nvcc устанавливается в /usr/bin. Но для уверенности проверьте:
which nvcc
✅ Ожидаемый вывод: /usr/bin/nvcc
4. 📦 Способ 2: Установка CUDA из официального репозитория NVIDIA (свежее)
Этот способ подходит для разработчиков, которым нужны новые функции CUDA и свежие драйверы.
⚠️ Secure Boot: Если на вашей системе включён Secure Boot, при установке драйверов NVIDIA будет создан ключ MOK (Machine Owner Key). Во время установки вам предложат задать пароль для MOK. Запомните его — он понадобится после перезагрузки на синем экране MOK management. Если вы не хотите возиться с MOK, отключите Secure Boot в BIOS перед установкой.
4.1 Очистка старых файлов репозитория
sudo rm -f /etc/apt/sources.list.d/cuda-debian*.list /etc/apt/sources.list.d/cuda-debian*.sources /etc/apt/sources.list.d/nvidia-cuda.list
4.2 Проверка архитектуры
ARCH="$(dpkg --print-architecture)"
case "$ARCH" in
amd64|arm64) echo "Архитектура $ARCH поддерживается." ;;
*) echo "Ошибка: архитектура $ARCH не поддерживается для установки CUDA через репозиторий NVIDIA." && exit 1 ;;
esac
4.3 Импорт GPG-ключа NVIDIA и добавление репозитория (автоматический скрипт)
Этот скрипт автоматически определяет вашу версию Debian и архитектуру, скачивает правильный ключ и создаёт файл репозитория.
(
set -e
. /etc/os-release
ARCH="$(dpkg --print-architecture)"
case "$ARCH" in
amd64) NVIDIA_ARCH="x86_64" ;;
arm64) NVIDIA_ARCH="sbsa" ;;
*) echo "Архитектура $ARCH не поддерживается."; exit 1 ;;
esac
case "$VERSION_ID:$NVIDIA_ARCH" in
13:x86_64|13:sbsa) NVIDIA_DISTRO="debian13"; NVIDIA_KEY="8793F200.pub" ;;
12:x86_64|12:sbsa) NVIDIA_DISTRO="debian12"; NVIDIA_KEY="3bf863cc.pub" ;;
11:x86_64) NVIDIA_DISTRO="debian11"; NVIDIA_KEY="3bf863cc.pub" ;;
11:sbsa) echo "NVIDIA не публикует репозиторий для Debian 11 SBSA."; exit 1 ;;
*) echo "Версия Debian $VERSION_ID не поддерживается."; exit 1 ;;
esac
sudo curl -fsSL "https://developer.download.nvidia.com/compute/cuda/repos/${NVIDIA_DISTRO}/${NVIDIA_ARCH}/${NVIDIA_KEY}" | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/nvidia-cuda.gpg
printf 'Types: deb\nURIs: https://developer.download.nvidia.com/compute/cuda/repos/%s/%s/\nSuites: /\nArchitectures: %s\nSigned-By: /usr/share/keyrings/nvidia-cuda.gpg\n' "$NVIDIA_DISTRO" "$NVIDIA_ARCH" "$ARCH" | sudo tee /etc/apt/sources.list.d/nvidia-cuda.sources > /dev/null
)
Что делает скрипт:
- Определяет версию Debian и архитектуру
- Выбирает правильный ключ (
8793F200.pubдля Debian 13,3bf863cc.pubдля Debian 11/12) - Скачивает и сохраняет ключ
- Создаёт файл репозитория в формате DEB822
4.4 Обновление списка пакетов
sudo apt update
4.5 Проверка доступных версий
apt-cache policy cuda cuda-toolkit nvidia-driver
✅ Ожидаемый вывод (Debian 13 amd64):
cuda:
Installed: (none)
Candidate: 13.2.1-1
cuda-toolkit:
Installed: (none)
Candidate: 13.2.1-1
nvidia-driver:
Installed: (none)
Candidate: 595.71.05-1
4.6 Установка CUDA и драйвера
sudo apt install cuda -y
Что делает: Устанавливает полный пакет CUDA (тулкит + драйвер) из официального репозитория NVIDIA.
Альтернатива (только тулкит, без драйвера):
sudo apt install cuda-toolkit -y
4.7 Перезагрузка
sudo reboot
4.8 Настройка переменных окружения (важно для репозитория NVIDIA!)
Пакет cuda устанавливается в /usr/local/cuda, а не в системные директории. Нужно добавить пути в PATH и LD_LIBRARY_PATH.
if ! grep -q 'CUDA Toolkit path' ~/.bashrc; then
printf '\n# CUDA Toolkit path\nexport PATH=/usr/local/cuda/bin:$PATH\nexport LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\n' >> ~/.bashrc
fi
source ~/.bashrc
Что делает: Добавляет команды в файл ~/.bashrc, чтобы при каждом запуске терминала переменные окружения были установлены правильно.
4.9 Проверка, что nvcc теперь виден
which nvcc
✅ Ожидаемый вывод: /usr/local/cuda/bin/nvcc
5. ✅ Проверка установки
5.1 Проверка драйвера NVIDIA
nvidia-smi
✅ Ожидаемый вывод: Таблица с информацией о видеокарте, драйвере и версии CUDA.
Что означает поле CUDA Version: Это максимальная версия CUDA, поддерживаемая драйвером. Она может отличаться от версии установленного тулкита — это нормально.
5.2 Проверка компилятора CUDA
nvcc --version
✅ Ожидаемый вывод: Информация о версии nvcc.
5.3 Компиляция и запуск тестовой программы
Создание файла hello.cu:
cat <<'EOF' > hello.cu
#include <stdio.h>
#include <cuda_runtime.h>
__global__ void helloFromGPU(void) {
printf("Hello World from GPU!\n");
}
int main(void) {
printf("Hello World from CPU!\n");
helloFromGPU<<<1, 10>>>();
cudaDeviceSynchronize();
return 0;
}
EOF
Компиляция:
nvcc hello.cu -o hello
Запуск:
./hello
✅ Ожидаемый вывод: Строка Hello World from CPU! и 10 строк Hello World from GPU!.
6. ⚠️ Решение типичных проблем
6.1 Ошибка: GPG ключ для репозитория NVIDIA не работает
Симптом: sudo apt update выдаёт ошибку GPG error или signature verification failed.
Причина: Ключ не загрузился или загрузился неправильно.
Решение: Удалите старый ключ и повторите импорт из раздела 4.3:
sudo rm -f /usr/share/keyrings/nvidia-cuda.gpg
# Затем повторите скрипт из раздела 4.3
6.2 Ошибка: nvidia-smi: command not found
Симптом: Драйвер не установлен или модули ядра не загрузились.
Пошаговое решение:
Шаг 1: Проверьте, загружены ли модули NVIDIA:
lsmod | grep nvidia
Шаг 2: Если вывода нет — проверьте логи ядра:
sudo dmesg | grep -i nvidia
Шаг 3: Перезагрузитесь (иногда после установки драйверов модули не загружаются до перезагрузки):
sudo reboot
Шаг 4: Если проблема осталась — проверьте, заблокирован ли свободный драйвер nouveau:
lsmod | grep nouveau
Если nouveau активен — создайте файл чёрного списка:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/nvidia-blacklist.conf
sudo update-initramfs -u
sudo reboot
6.3 Ошибка: nvcc: command not found (после установки из репозитория NVIDIA)
Симптом: nvcc --version не работает.
Причина: Не настроены переменные окружения (раздел 4.8).
Решение: Проверьте, есть ли файл /usr/local/cuda/bin/nvcc. Если есть — настройте PATH:
export PATH=/usr/local/cuda/bin:$PATH
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
6.4 Secure Boot: ключ MOK (Machine Owner Key)
Симптом: Во время установки драйвера появляется запрос на создание пароля MOK, а после перезагрузки — синий экран с просьбой «Enroll MOK».
Причина: Secure Boot требует подписи модулей ядра.
Решение: При запросе создайте пароль. После перезагрузки в MOK management выберите «Enroll MOK», введите пароль и подтвердите. Если не хотите возиться — отключите Secure Boot в BIOS/UEFI перед установкой.
6.5 Ошибка: Конфликт Signed-By при apt update
Симптом: apt update выдаёт ошибку о конфликте Signed-By для репозитория NVIDIA.
Причина: Остались старые файлы репозитория от предыдущих установок.
Решение: Удалите все старые файлы и оставьте только один:
sudo rm -f /etc/apt/sources.list.d/cuda-debian*.list /etc/apt/sources.list.d/cuda-debian*.sources /etc/apt/sources.list.d/nvidia-cuda.list
sudo apt update
6.6 Ошибка: APT не может найти nvidia-cuda-toolkit
Симптом: apt-cache policy nvidia-cuda-toolkit не показывает кандидата.
Причина: Не включены репозитории contrib и non-free.
Решение: Вернитесь к разделу 1.2 и включите нужные компоненты, затем выполните sudo apt update.
7. ❌ Удаление CUDA
7.1 Удаление пакетов
sudo apt remove 'cuda*' 'nvidia*' --purge -y
sudo apt autoremove --purge -y
7.2 Удаление старого пакета cuda-keyring (если был установлен)
if dpkg -s cuda-keyring >/dev/null 2>&1; then
echo "Удаление старого пакета cuda-keyring..."
sudo apt purge cuda-keyring -y
fi
7.3 Удаление репозитория NVIDIA (если добавляли)
sudo rm -f /etc/apt/sources.list.d/nvidia-cuda.sources
sudo rm -f /usr/share/keyrings/nvidia-cuda.gpg
sudo apt update
7.4 Проверка удаления
nvcc --version
✅ Ожидаемый вывод: bash: nvcc: command not found
8. 📝 Чек-лист: всё готово к работе
- [ ] Система обновлена (
sudo apt update && sudo apt upgrade -y) - [ ] Репозитории
contribиnon-freeвключены - [ ] Заголовки ядра установлены (
linux-headers-$(uname -r)) - [ ] Выбран и выполнен один из способов установки (Debian / NVIDIA)
- [ ] Драйвер NVIDIA работает (
nvidia-smiпоказывает видеокарту) - [ ] Компилятор CUDA работает (
nvcc --versionпоказывает версию) - [ ] (Для репозитория NVIDIA) Переменные
PATHиLD_LIBRARY_PATHнастроены - [ ] Тестовая программа компилируется и запускается (
./helloвыводит сообщения с GPU)
Заключение
Вы установили CUDA на Debian. Если вы выбрали репозиторий Debian — получили стабильную, проверенную версию (Debian 13: CUDA 12.4, Debian 12: 11.8, Debian 11: 11.2). Если выбрали официальный репозиторий NVIDIA — получили последнюю версию CUDA и драйверов (Debian 13/12: CUDA 13.x, Debian 11: 12.6.x). Теперь вы можете разрабатывать и запускать GPU-ускоренные приложения: фреймворки машинного обучения (PyTorch, TensorFlow), научные расчёты и многое другое.
Что дальше:
- Установите PyTorch с поддержкой CUDA или TensorFlow
- Изучите примеры из NVIDIA CUDA Samples
- Настройте CuPy для ускорения NumPy-кода на GPU
- Для глубокого обучения рассмотрите установку Anaconda для управления окружениями
Связанные статьи: