Установка SQLite на Debian 13, 12, 11: подробное руководство

SQLite — это легковесная встраиваемая реляционная база данных, которая не требует отдельного сервера. Вся база данных хранится в одном файле, а для работы с ней не нужны настройки доступа, пользователи или порты. SQLite идеально подходит для локальных приложений, разработки, тестирования и небольших веб-проектов. Debian не устанавливает SQLite по умолчанию, но он доступен в стандартных репозиториях. Главные сложности для новичка: версия в репозиториях может быть старой (на Debian 11 — SQLite 3.34), а для сборки из исходников нужно установить зависимости и правильно настроить PATH, чтобы новая версия имела приоритет.

💡 В этом руководстве вы установите SQLite на Debian двумя способами: через APT (рекомендованный для большинства) и сборкой из исходников (если нужна самая свежая версия). Вы также узнаете, как проверить работу SQLite на тестовой базе, обновлять source-сборку и решать типичные проблемы.

В этой статье вы узнаете:

  • Как установить SQLite через APT (проще всего)
  • Как собрать SQLite из исходников (актуальная версия)
  • Как проверить установку на тестовой базе данных
  • Как создать скрипт для обновления source-сборки
  • Как решить типичные проблемы: sqlite3: command not found, конфликт версий, ошибки сборки

Для кого: разработчики, администраторы, а также все, кому нужна лёгкая база данных для локального использования на Debian 11, 12 или 13.

Оглавление

1. 🔧 Предварительные требования

Перед установкой убедитесь, что:

  • У вас установлена Debian 11, 12 или 13
  • Подключение к интернету стабильно
  • У вас есть права sudo

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.

Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

1.1 Обновление системы

Перед установкой всегда обновляйте список пакетов.

sudo apt update && sudo apt upgrade -y

Что делает:

  • sudo — права суперпользователя
  • apt update — обновляет список доступных пакетов из репозиториев
  • && — выполняет следующую команду только если предыдущая успешна
  • apt upgrade -y — обновляет все установленные пакеты до последних версий

Зачем: Это стандартная практика безопасности перед установкой нового ПО.

2. 📊 Сравнение способов установки SQLite

В Debian есть два основных способа установки SQLite. Вот их сравнение:

МетодКаналВерсияОбновленияПлюсыМинусы
APTРепозитории
Debian
Debian 13: 3.46,
Debian 12: 3.40,
Debian 11: 3.34
Автоматически
через
apt upgrade
Простота,
безопасность,
минимум
усилий
Версия может
быть старой,
особенно на
Debian 11
Сборка из
исходников
SQLite
upstream
(sqlite.org)
Самая свежаяВручную
(пересборка)
Максимальная
свежесть
Требует
установки
инструментов
сборки,
ручное
обновление

💡 Рекомендация: Для большинства пользователей подойдёт APT. Сборку из исходников выбирайте, если вам нужна функция, которая появилась в новой версии SQLite, а в вашем Debian её ещё нет.

3. 📦 Способ 1: Установка SQLite через APT (рекомендованный)

Этот способ подходит для большинства пользователей. Вы получаете версию SQLite, которая протестирована для вашего выпуска Debian.

3.1 Установка пакета

sudo apt install sqlite3 -y

Что делает: Устанавливает SQLite (клиент командной строки) из официальных репозиториев Debian.

3.2 Проверка установки

sqlite3 --version

Ожидаемый вывод в терминале (Debian 13):

3.46.1 2024-08-13 09:16:08 ...

Какие версии в разных Debian:

Версия DebianВерсия SQLite
Debian 13 (Trixie)3.46.x
Debian 12 (Bookworm)3.40.x
Debian 11 (Bullseye)3.34.x

3.3 (Опционально) Установка заголовочных файлов для разработки

Если вы планируете компилировать программы, использующие SQLite, установите также пакет разработчика:

sudo apt install libsqlite3-dev -y

Что делает: Устанавливает заголовочные файлы и библиотеки для компиляции приложений с поддержкой SQLite.

4. 🔧 Способ 2: Сборка SQLite из исходников (актуальная версия)

Этот способ подходит, если вам нужна самая свежая версия SQLite, которая ещё не попала в репозитории Debian.

4.1 Установка инструментов сборки и зависимостей

sudo apt install build-essential libreadline-dev zlib1g-dev curl wget -y

Что делает:

  • build-essential — компилятор gcc, make и заголовочные файлы
  • libreadline-dev — библиотека readline (для удобной работы с историей команд в интерактивном режиме)
  • zlib1g-dev — библиотека сжатия zlib (нужна для поддержки сжатых баз данных)
  • curl wget — инструменты для скачивания исходников

4.2 Определение последней версии и скачивание исходников

mkdir -p ~/sqlite-build && cd ~/sqlite-build
SQLITE_PATH=$(curl -fsSL https://www.sqlite.org/download.html | awk -F, '$3 ~ /sqlite-autoconf-[0-9]+\.tar\.gz/ {print $3; exit}')
TARBALL="${SQLITE_PATH##*/}"
curl -fL --progress-bar -o "$TARBALL" "https://www.sqlite.org/$SQLITE_PATH"

Что делает: Запрашивает страницу загрузки SQLite, извлекает ссылку на последний sqlite-autoconf tarball и скачивает его.

4.3 Распаковка, конфигурация и сборка

tar -xzf "$TARBALL"
SOURCE_DIR="${TARBALL%.tar.gz}"
cd "$SOURCE_DIR"
./configure --prefix=/usr/local
make -j$(nproc)

Что делает:

  • tar -xzf — распаковывает архив
  • ./configure --prefix=/usr/local — настраивает сборку для установки в /usr/local
  • make -j$(nproc) — компилирует SQLite, используя все ядра процессора для ускорения

4.4 Установка

sudo make install
sudo ldconfig

Что делает: Устанавливает собранный SQLite в систему (/usr/local/bin/sqlite3) и обновляет кэш разделяемых библиотек.

4.5 Проверка установки

/usr/local/bin/sqlite3 --version

Ожидаемый вывод в терминале:

3.52.0 2025-01-15 ...

4.6 (Важно!) Проверка, какая версия используется по умолчанию

command -v sqlite3

Что вы увидите:

  • Если /usr/local/bin/sqlite3 — используется свежая сборка (хорошо)
  • Если /usr/bin/sqlite3 — используется старая APT-версия (нужно настроить PATH)

На Debian 13, 12 и 11 директория /usr/local/bin обычно идёт раньше /usr/bin в PATH, поэтому новая версия должна иметь приоритет. Но если это не так, добавьте в ~/.bashrc:

echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

5. 🧪 Проверка установки: тестовая база данных

После установки SQLite (любым способом) стоит убедиться, что он работает.

sqlite3 ~/test.db

Что делает: Открывает (или создаёт) базу данных test.db в домашней директории и запускает интерактивную оболочку SQLite.

Внутри оболочки SQLite выполните:

CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
.headers on
.mode column
SELECT id, name, email FROM users;
.quit

Что делает: Создаёт таблицу, вставляет две строки, выводит их.

Ожидаемый вывод:

id  name   email
--  -----  -----------------
1   Alice  alice@example.com
2   Bob    bob@example.com

Удаление тестовой базы данных:

rm ~/test.db

6. 🔄 Обновление source-сборки (скрипт)

Если вы собрали SQLite из исходников, обновлять его нужно вручную. Вот скрипт, который автоматически скачивает последнюю версию, собирает и устанавливает её.

Создание скрипта:

mkdir -p ~/sqlite-build
cat <<'EOF' > ~/sqlite-build/update-sqlite.sh
#!/usr/bin/env bash
set -euo pipefail

BUILD_DIR="$HOME/sqlite-build"
INSTALL_PREFIX="/usr/local"

mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

echo "Проверка последней версии SQLite..."
SQLITE_META="$(curl -fsSL https://www.sqlite.org/download.html | awk -F, '$3 ~ /sqlite-autoconf-[0-9]+\.tar\.gz/ {print $2 "|" $3; exit}')"
LATEST_VERSION="${SQLITE_META%%|*}"
SQLITE_PATH="${SQLITE_META#*|}"
CURRENT_VERSION="$($INSTALL_PREFIX/bin/sqlite3 --version 2>/dev/null | awk '{print $1}' || echo none)"

printf "Текущая версия: %s\n" "$CURRENT_VERSION"
printf "Последняя версия: %s\n" "$LATEST_VERSION"

if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
  echo "SQLite уже последней версии."
  exit 0
fi

TARBALL="${SQLITE_PATH##*/}"
SOURCE_DIR="${TARBALL%.tar.gz}"

echo "Скачивание $TARBALL..."
rm -rf "$BUILD_DIR"/sqlite-autoconf-* "$BUILD_DIR"/sqlite-autoconf-*.tar.gz
curl -fL --progress-bar -o "$TARBALL" "https://www.sqlite.org/$SQLITE_PATH"

echo "Распаковка и сборка SQLite..."
tar -xzf "$TARBALL"
cd "$SOURCE_DIR"
./configure --prefix="$INSTALL_PREFIX"
make -j"$(nproc)"

echo "Установка SQLite в $INSTALL_PREFIX..."
sudo make install
sudo ldconfig

NEW_VERSION="$($INSTALL_PREFIX/bin/sqlite3 --version | awk '{print $1}')"
echo "SQLite успешно обновлён до $NEW_VERSION"
EOF

chmod +x ~/sqlite-build/update-sqlite.sh

Запуск обновления:

~/sqlite-build/update-sqlite.sh

Что делает скрипт: Сравнивает текущую версию SQLite (из /usr/local/bin) с последней на sqlite.org. Если версии отличаются — скачивает, собирает и устанавливает новую.

⚠️ Важно: Не автоматизируйте этот скрипт через cron. Сборка из исходников может завершиться ошибкой из-за отсутствия зависимостей или проблем с сетью. Запускайте его вручную и проверяйте вывод.

7. ⚠️ Решение типичных проблем

7.1 Ошибка: sqlite3: command not found

Симптом: sqlite3 --version выдаёт bash: sqlite3: command not found.

Причина: SQLite не установлен, или установлен только пакет разработчика (libsqlite3-dev), но не сам клиент.

Пошаговое решение:

Шаг 1: Установите клиент SQLite:

sudo apt install sqlite3 -y

Шаг 2: Если вы собирали из исходников, проверьте, что бинарный файл существует:

ls /usr/local/bin/sqlite3

Если файл есть, но команда не работает — добавьте /usr/local/bin в PATH (см. раздел 4.6).

7.2 Source-сборка: всё ещё показывает старую версию

Симптом: Вы собрали и установили SQLite из исходников, но sqlite3 --version показывает старую версию (из APT).

Причина: Ваш shell находит бинарный файл в /usr/bin (APT-версия) раньше, чем в /usr/local/bin (source-сборка).

Пошаговое решение:

Шаг 1: Проверьте, какой бинарный файл используется:

command -v sqlite3

Шаг 2: Если выводит /usr/bin/sqlite3, измените порядок PATH:

export PATH=/usr/local/bin:$PATH
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Шаг 3: Проверьте снова:

command -v sqlite3

Ожидаемый вывод: /usr/local/bin/sqlite3

7.3 Ошибка сборки: configure не может найти readline

Симптом: ./configure выдаёт ошибку, связанную с readline.

Причина: Отсутствует пакет libreadline-dev.

Решение:

sudo apt install libreadline-dev -y

Затем повторите ./configure.

7.4 Ошибка: не удаётся скачать исходники

Симптом: curl не может скачать tarball, ошибка 404 или timeout.

Причина: Проблемы с сетью или SQLite.org изменил структуру страницы загрузки.

Решение:

Шаг 1: Проверьте интернет-соединение:

ping -c 4 sqlite.org

Шаг 2: Скачайте последнюю версию вручную с официального сайта SQLite. Найдите файл sqlite-autoconf-XXXXXXX.tar.gz.

Шаг 3: Вручную распакуйте и соберите:

tar -xzf sqlite-autoconf-*.tar.gz
cd sqlite-autoconf-*
./configure --prefix=/usr/local
make -j$(nproc)
sudo make install

8. ❌ Удаление SQLite

Удаление APT-версии

sudo apt remove --purge sqlite3 -y
sudo apt autoremove -y

Удаление source-сборки (из /usr/local)

sudo rm -f /usr/local/bin/sqlite3
sudo rm -f /usr/local/lib/libsqlite3.so*
sudo rm -f /usr/local/include/sqlite3.h /usr/local/include/sqlite3ext.h
sudo rm -f /usr/local/lib/pkgconfig/sqlite3.pc
sudo ldconfig
rm -rf ~/sqlite-build

Проверка удаления

command -v sqlite3

Ожидаемый вывод: Пустая строка (если SQLite больше не установлен) или путь к другой версии, если она осталась.

9. 📝 Чек-лист: всё готово к работе

  • [ ] Система обновлена (sudo apt update && sudo apt upgrade -y)
  • [ ] Выбран и выполнен один из способов установки (APT / Source)
  • [ ] sqlite3 --version показывает ожидаемую версию
  • [ ] Тестовая база данных создаётся и работает (запросы SELECT/INSERT)
  • [ ] (Для source-сборки) command -v sqlite3 показывает /usr/local/bin/sqlite3
  • [ ] (Для source-сборки) Скрипт обновления работает (~/sqlite-build/update-sqlite.sh)

Заключение

Вы установили SQLite на Debian. Если вы выбрали APT — получили стабильную, проверенную версию, которая будет обновляться вместе с системой. Если собрали из исходников — получили абсолютно последнюю версию, которую можно обновлять скриптом из раздела 6. SQLite — это отличный выбор для локального хранения данных, разработки и тестирования, когда не нужен полноценный сервер баз данных.

Что дальше:

  • Изучите официальную документацию SQLite — особенно разделы про индексы, транзакции и встроенные функции
  • Попробуйте использовать SQLite в ваших скриптах на Python (import sqlite3) или Bash
  • Если ваш проект вырастет, рассмотрите переход на PostgreSQL или MariaDB
  • Настройте автоматическое резервное копирование важных .db файлов через cron