llama.cpp в Linux: сборка, запуск GGUF-моделей и llama-server
llama.cpp в Linux проще всего собрать из исходников одной парой команд cmake, добавив флаг нужного бэкенда: GGML_CUDA для NVIDIA, GGML_HIP или GGML_VULKAN для AMD и Intel. Затем модель в формате GGUF запускается через llama-cli в терминале или через llama-server, который отдаёт веб-чат и OpenAI-совместимый API.

Содержание
Что такое llama.cpp и чем он отличается от Ollama
llama.cpp - движок на C/C++ от проекта ggml-org, который запускает языковые модели в формате GGUF на процессоре и видеокарте. На нём построены Ollama и LM Studio. Ставя его напрямую, вы сами выбираете бэкенд, квантизацию, контекст и число слоёв на GPU, а поддержка новых моделей приходит без задержки.
Ollama удобнее ради каталога моделей по имени. llama.cpp выигрывает, когда:
- нужна свежая модель, которую обёртки ещё не подхватили;
- видеокарта AMD или Intel, и проще всего завести её через Vulkan;
- нужен лёгкий сервер с OpenAI-совместимым API без лишних демонов.
Для сравнения: Ollama в Linux и графический LM Studio используют тот же формат, скачанные GGUF-файлы подойдут всем.
Три способа поставить llama.cpp в Linux
Сборки выходят по несколько раз в день, версия выглядит как b10068. Пакеты дистрибутивов поэтому отстают.
Пакет из репозитория
В Arch Linux пакет llama-cpp лежит в extra, летом 2026 года там была сборка b10068. В Fedora есть пакет llama-cpp, в Debian 13 и Ubuntu 26.04 наличие и свежесть пакета проверяйте командой apt policy llama.cpp. Репозиторные сборки обычно собраны только для CPU или для Vulkan, CUDA туда не попадает из-за лицензии.
sudo pacman -S llama-cpp
sudo dnf install llama-cpp
brew install llama.cpp # Homebrew на Linux, сборка под CPU
Готовый архив с GitHub
На странице релизов github.com/ggml-org/llama.cpp/releases есть архивы для Ubuntu x64, в том числе вариант с Vulkan. Распакуйте его в ~/opt/llama.cpp и запускайте бинарники без установки.
В 2026 году у проекта появился установщик с сайта llama.app (команда curl -LsSf https://llama.app/install.sh | sh), он ставит единую утилиту llama с подкомандами llama cli и llama serve. Скрипт перед запуском лучше открыть и прочитать.
Сборка из исходников
Самый гибкий вариант: бинарник под вашу видеокарту и свежий код. Сборка идёт от пары минут на CPU до получаса с CUDA.
Зависимости и сборка для процессора
Нужны компилятор, CMake и git. libcurl ставится, чтобы работал флаг -hf для загрузки моделей с Hugging Face.
# Debian 13, Ubuntu 26.04
sudo apt install build-essential cmake git libcurl4-openssl-dev
# Fedora 44
sudo dnf install gcc-c++ cmake git libcurl-devel
# Arch Linux
sudo pacman -S base-devel cmake git curl
Клонируем и собираем. Флаг -j без числа задействует все ядра.
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release -j
Готовые программы лягут в build/bin/: llama-cli, llama-server, llama-bench, llama-quantize и другие. Чтобы вызывать их из любого каталога, добавьте путь в PATH:
echo 'export PATH="$HOME/llama.cpp/build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
llama-server --version
Обновление: git pull и те же две команды cmake. При странных ошибках удалите build и соберите заново.
Сборка с CUDA, ROCm и Vulkan
Бэкенд выбирается флагом CMake, несколько бэкендов можно собрать сразу. Полный список опций есть в официальном руководстве по сборке.
| Бэкенд | Видеокарты | Флаг CMake | Что поставить заранее |
|---|---|---|---|
| CPU | любой x86_64 или ARM | без флагов | компилятор, cmake |
| CUDA | NVIDIA | -DGGML_CUDA=ON | драйвер NVIDIA и CUDA Toolkit с nvcc |
| HIP (ROCm) | AMD Radeon RX 6000/7000/9000, Instinct | -DGGML_HIP=ON -DGPU_TARGETS=gfx... | ROCm: hipcc, hipBLAS, rocBLAS |
| Vulkan | AMD, Intel, NVIDIA | -DGGML_VULKAN=ON | Vulkan-заголовки, glslc, SPIRV-Headers |
NVIDIA и CUDA
Сначала драйвер и CUDA Toolkit: nvidia-smi должен видеть карту, а nvcc --version печатать версию. Подробно это разобрано в статье про установку CUDA в Ubuntu и Debian.
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j
# сборка под конкретные архитектуры, быстрее компилируется:
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="86;89"
86 соответствует RTX 30xx, 89 - RTX 40xx. Если cmake не находит nvcc, укажите путь явно: -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc.
AMD и ROCm
Для HIP нужен установленный ROCm. Цель GPU_TARGETS узнайте командой rocminfo | grep gfx: например, gfx1030 у RX 6800, gfx1100 у RX 7900. Без этого параметра код соберётся под все карты, найденные в системе.
HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \
cmake -S . -B build -DGGML_HIP=ON -DGPU_TARGETS=gfx1100 -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j
Пользователь должен быть в группах render и video: sudo usermod -aG render,video $USER, затем перелогиньтесь.
Vulkan для AMD, Intel и всего остального
Vulkan не требует ROCm и работает на открытых драйверах Mesa (RADV, ANV). По скорости он часто близок к ROCm, а ставится за минуту. Проверьте, что vulkaninfo --summary видит карту.
# Debian, Ubuntu
sudo apt install libvulkan-dev glslc spirv-headers vulkan-tools
# Fedora
sudo dnf install vulkan-headers vulkan-loader-devel glslc spirv-headers-devel vulkan-tools
# Arch
sudo pacman -S vulkan-headers vulkan-icd-loader shaderc spirv-headers vulkan-tools
cmake -B build -DGGML_VULKAN=ON
cmake --build build --config Release -j
Какие устройства увидел llama.cpp, показывает llama-cli --list-devices. Про выбор между NVIDIA и AMD для нейросетей есть отдельный разбор: видеокарта для локальных нейросетей.
Где взять GGUF и какую квантизацию выбрать
GGUF - единый файл с весами, токенизатором и шаблоном чата. Основной источник - Hugging Face: ищите репозитории с суффиксом -GGUF, у официальной организации ggml-org и у крупных квантовщиков есть готовые файлы для популярных моделей.
Квантизация определяет, сколько бит приходится на вес. Ориентиры:
- Q4_K_M - выбор по умолчанию, хороший баланс качества и размера. Модель на 8 млрд параметров занимает около 5 ГБ.
- Q5_K_M, Q6_K - чуть точнее, файл на 20-40% больше.
- Q8_0 - почти без потерь, но вдвое тяжелее Q4.
- IQ2, IQ3, Q3_K - когда большая модель иначе не помещается; качество заметно падает.
Грубое правило: файл модели плюс 1-2 ГБ на контекст должны влезть в видеопамять, иначе часть слоёв останется на процессоре и скорость упадёт.
Скачать можно браузером, через hf download из пакета huggingface_hub или прямо флагом -hf: он берёт квантизацию Q4_K_M, если она есть в репозитории, а другую можно указать после двоеточия.
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF
llama-server -hf ggml-org/gemma-3-1b-it-GGUF:Q8_0
llama-cli -cl # список скачанных в кэш моделейПервый запуск в терминале и проверка, что работает GPU
Самая простая проверка - чат в терминале. Путь к локальному файлу передаётся через -m:
llama-cli -m ~/models/Qwen3-8B-Q4_K_M.gguf
# одно сообщение и выход:
llama-cli -m ~/models/Qwen3-8B-Q4_K_M.gguf -p "Объясни, что делает chmod 755" -st
В свежих сборках число слоёв на GPU (-ngl) по умолчанию равно auto, а опция --fit включена: llama.cpp сам подбирает слои и контекст под свободную память. Вручную задают, когда нужно оставить видеопамять другим программам:
llama-cli -m model.gguf -ngl 20 -c 8192
llama-cli -m model.gguf --device none # принудительно только CPU
Видеокарта задействована, если в логе запуска есть устройство CUDA0, ROCm0 или Vulkan0 с выгруженными слоями, а nvidia-smi или amdgpu_top показывают занятую процессом память.
Скорость на своей машине меряет llama-bench -m model.gguf (токены в секунду).
llama-server: веб-интерфейс и OpenAI-совместимый API
llama-server поднимает HTTP-сервер со встроенным веб-чатом и API в формате OpenAI. По умолчанию он слушает только 127.0.0.1. Порт по умолчанию в новых версиях 9931 (раньше был 8080), поэтому удобнее задавать его явно.
llama-server -m ~/models/Qwen3-8B-Q4_K_M.gguf --port 8080 -c 16384
Откройте http://127.0.0.1:8080 в браузере, там чат. Проверка API из терминала:
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Привет! Ответь одним словом."}]}'
/health отвечает кодом 503, пока модель грузится, и 200, когда сервер готов. Шаблоны чата через Jinja включены по умолчанию, поэтому вызов инструментов (tool calling) у современных моделей работает без дополнительных флагов.
Подключение клиентов
Любой клиент OpenAI принимает адрес http://127.0.0.1:8080/v1 и произвольный ключ: плагины IDE, скрипты, Open WebUI.
Доступ из сети
Чтобы открыть сервер в локальной сети, укажите --host 0.0.0.0 и обязательно ключ: --api-key или --api-key-file. Клиент тогда передаёт заголовок Authorization: Bearer ключ. Наружу в интернет такой сервер без обратного прокси с TLS не выставляйте.
Несколько моделей
llama-server --models-dir ~/models без -m включает режим роутера: модель грузится по полю model запроса, в памяти держится до четырёх (--models-max).
Автозапуск llama-server через systemd
Пользовательский юнит systemd запустит сервер при входе и перезапустит при падении. Файл ~/.config/systemd/user/llama-server.service:
[Unit]
Description=llama.cpp server
After=network.target
[Service]
ExecStart=%h/llama.cpp/build/bin/llama-server -m %h/models/Qwen3-8B-Q4_K_M.gguf --port 8080 -c 16384
Restart=on-failure
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now llama-server
journalctl --user -u llama-server -f
# чтобы служба работала и без входа в систему:
sudo loginctl enable-linger $USER
Остальные команды управления службами собраны в шпаргалке по systemctl.
Модель грузится в память при старте сервера, а не при первом запросе. Если на машине одна видеокарта и вы ещё играете или монтируете видео, не включайте автозапуск: проще стартовать службу вручную через systemctl --user start llama-server, когда она нужна.
Частые ошибки и как их исправить
- cmake: Could not find nvcc - не установлен CUDA Toolkit или его нет в PATH. Проверьте
ls /usr/local/cuda/bin/nvccи передайте путь через-DCMAKE_CUDA_COMPILER. - ROCm: cannot find ROCm device library - задайте переменную
HIP_DEVICE_LIB_PATHна каталог с файломoclc_abi_version_400.bc. - Vulkan-бэкенд не видит карту - запустите
vulkaninfo --summary. Если там только llvmpipe, нет драйвера Mesa Vulkan:mesa-vulkan-driversв Debian, Ubuntu и Fedora,vulkan-radeonилиvulkan-intelв Arch. - failed to load model - файл скачан не полностью или формат не GGUF. Файлы .safetensors llama.cpp не читает, их сначала конвертируют скриптом
convert_hf_to_gguf.py. - unknown model architecture - модель новее вашей сборки. Обновите llama.cpp через
git pullи пересоберите. - Out of memory на GPU - уменьшите контекст
-c, число слоёв-nglили возьмите квантизацию поменьше. Кэш контекста можно сжать:-ctk q8_0 -ctv q8_0.
Частые вопросы
Чем llama.cpp лучше Ollama?
Это тот же движок без обёртки: новые модели и оптимизации появляются в нём раньше, все параметры доступны напрямую, а Vulkan позволяет запустить модель на AMD и Intel без ROCm. Ollama удобнее, если нужен каталог моделей по имени и минимум настроек.
Можно ли запускать llama.cpp без видеокарты?
Да, сборка для CPU работает на любом современном процессоре. Модели до 8 млрд параметров в квантизации Q4_K_M дают приемлемую скорость для чата, крупнее заметно медленнее. Важнее всего объём и скорость оперативной памяти.
Какой порт у llama-server по умолчанию?
В свежих сборках 9931, в старых и в примерах с Docker 8080. Чтобы не путаться, задавайте порт явно флагом --port.
Как открыть llama-server для других компьютеров в сети?
Запустите сервер с --host 0.0.0.0 и ключом --api-key, разрешите порт в файрволе только для локальной сети. Клиенты передают ключ в заголовке Authorization: Bearer.
Что лучше для AMD: ROCm или Vulkan?
Vulkan ставится проще и работает на любой карте с драйвером Mesa. ROCm поддерживает не все модели Radeon и требует больше пакетов, зато на поддерживаемых картах иногда быстрее при обработке длинного промпта. Проверьте оба варианта через llama-bench на своей модели.
Как обновить llama.cpp, собранный из исходников?
В каталоге проекта выполните git pull, затем cmake -B build с теми же флагами и cmake --build build --config Release -j. При ошибках удалите каталог build и соберите заново.
Документация и источники
- Build llama.cpp locally (docs/build.md), ggml-org, GitHub, 2026
- llama.cpp HTTP Server (tools/server/README.md), ggml-org, GitHub, 2026
- Install pre-built version of llama.cpp (docs/install.md), ggml-org, GitHub, 2026
- llama-cpp package, Arch Linux, 2026
Читайте также
- Локальные нейросети с Ollama в Linux: установка и выбор модели
- LM Studio в Linux: как установить и запустить локальную нейросеть без интернета
- Установка CUDA в Ubuntu и Debian: драйвер NVIDIA, CUDA Toolkit, cuDNN и проверка GPU
- Видеокарта для локальных нейросетей в Linux: выбираем между NVIDIA и AMD
- Open WebUI: свой локальный ChatGPT на Linux с Ollama и Docker
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.