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

Darktable — это мощное приложение с открытым исходным кодом для обработки RAW-изображений (фотографий в «сыром» формате). Его часто сравнивают с Adobe Lightroom, но Darktable бесплатен, не требует подписки и даёт полный контроль над вашими фотографиями.

В этом руководстве я покажу три способа установки Darktable на Debian:

  1. APT — из официальных репозиториев Debian (проще всего, но версия зависит от релиза)
  2. Flatpak — из Flathub (более новая версия на любом Debian)
  3. Сборка из исходников — самая свежая версия (только для Debian 13 и 12)
Релиз DebianВерсия в APTВерсия в FlatpakСборка из исходников
Debian 13 (Trixie)5.0.x5.4.x (актуальная)✅ Да (5.5.x)
Debian 12 (Bookworm)4.2.x5.4.x (актуальная)✅ Да (5.5.x)
Debian 11 (Bullseye)3.4.x5.4.x (актуальная)❌ Нет (слишком
старые инструменты)

⚠️ Важно: Выберите один способ установки. Открытие одной и той же библиотеки фотографий в более новой версии Darktable может обновить её базу данных, и старая версия больше не сможет её прочитать. Не смешивайте способы.


Оглавление

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

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

  • У вас есть графическая среда (GNOME, KDE, Xfce и т.д.) — Darktable не запускается без неё
  • Вы имеете права sudo (администратора)

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

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

sudo whoami

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

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

root

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


Способ 1: Установка Darktable из APT (рекомендуемый)

Это самый простой способ. Darktable устанавливается из официальных репозиториев Debian, поэтому обновления будут приходить вместе с системой.

Шаг 1: Обновите список пакетов

sudo apt update

Что делает: Обновляет список доступных пакетов.

Шаг 2: Установите Darktable

sudo apt install -y darktable

Что делает: Устанавливает Darktable и все необходимые зависимости.

Шаг 3: Проверьте установленную версию

dpkg-query -W darktable

Что делает: Показывает установленную версию пакета Darktable.

Ожидаемый вывод (зависит от версии Debian):

  • Debian 13: darktable 5.0.1-2
  • Debian 12: darktable 4.2.1-4
  • Debian 11: darktable 3.4.1-5

Способ 2: Установка Darktable через Flatpak (более новая версия)

Используйте этот способ, если версия из APT слишком старая, но вы не хотите вручную компилировать программу. Flatpak даст вам актуальную версию Darktable на любом Debian.

Шаг 1: Установите Flatpak (если ещё не установлен)

Если Flatpak не установлен, сначала пройдите наше руководство по установке Flatpak на Debian.

Шаг 2: Добавьте репозиторий Flathub (если ещё не добавлен)

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Что делает: Добавляет репозиторий Flathub, откуда Flatpak берёт приложения.

Шаг 3: Проверьте, что Flathub доступен

flatpak remotes

Что делает: Показывает список подключённых репозиториев.

Ожидаемый вывод: Должна быть строка flathub system.

Шаг 4: Установите Darktable из Flathub

sudo flatpak install flathub org.darktable.Darktable -y

Что делает: Устанавливает Darktable из репозитория Flathub.

Шаг 5: Проверьте установленную версию

flatpak info org.darktable.Darktable

Что делает: Показывает информацию об установленном приложении.

Ожидаемый вывод (сейчас):

ID: org.darktable.Darktable
Ref: app/org.darktable.Darktable/x86_64/stable
Arch: x86_64
Branch: stable
Version: 5.4.1
Installation: system

Способ 3: Сборка Darktable из исходников (только Debian 13 и 12)

Этот способ для тех, кто хочет самую свежую версию Darktable (сейчас 5.5.x), не хочет использовать Flatpak и готов потратить немного времени на компиляцию.

⚠️ Debian 11 не поддерживает этот способ — в нём слишком старые версии компилятора и CMake.

Шаг 1: Установите инструменты сборки

sudo apt install -y build-essential cmake git

Что делает:

  • build-essential — компиляторы (GCC, make)
  • cmake — система сборки
  • git — для скачивания исходного кода

Шаг 2: Включите исходные репозитории (deb-src)

Для сборки Darktable нужны зависимости, которые описаны в пакете darktable. Чтобы их установить, нужно включить исходные репозитории.

Если у вас современный Debian с файлом /etc/apt/sources.list.d/debian.sources:

sudo sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources

Если у вас классический /etc/apt/sources.list:

sudo sed -Ei 's/^# ?deb-src /deb-src /' /etc/apt/sources.list

Что делает: Раскомментирует строки с deb-src (исходные репозитории).

Затем обновите список пакетов:

sudo apt update

Шаг 3: Установите зависимости для сборки Darktable

sudo apt build-dep darktable -y

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

Шаг 4: Узнайте последнюю стабильную версию Darktable

DARKTABLE_TAG="$(git ls-remote --tags --refs https://github.com/darktable-org/darktable 'refs/tags/release-*' | sed 's#.*refs/tags/##' | sort -V | tail -n1)"
printf '%s\n' "$DARKTABLE_TAG"

Что делает: Проверяет на GitHub, какой тег последний (например, release-5.5.0).

Ожидаемый вывод: release-5.5.0 (или новее).

Шаг 5: Скачайте исходный код

rm -rf "$HOME/darktable-source"
git clone --branch "$DARKTABLE_TAG" --depth 1 https://github.com/darktable-org/darktable.git "$HOME/darktable-source"
cd "$HOME/darktable-source"
git submodule init
git config submodule.src/tests/integration.update none
git submodule update --depth 1 --recursive

Что делает:

  • Удаляет старую директорию с исходниками (если была)
  • Клонирует только последнюю версию (--depth 1)
  • Инициализирует подмодули (дополнительные библиотеки)
  • Отключает загрузку тяжёлых тестов (integration.update none)

Шаг 6: Соберите и установите Darktable

./build.sh --prefix /opt/darktable --build-type Release --install --sudo

Что делает:

  • --prefix /opt/darktable — устанавливает программу в /opt/darktable (не конфликтует с системной)
  • --build-type Release — оптимизированная сборка
  • --install --sudo — запускает установку с правами администратора

Шаг 7: Создайте ярлык в меню приложений (опционально)

sudo install -d -m 0755 /usr/local/share/applications
sudo ln -sfn /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/local/share/applications/org.darktable.darktable.desktop

Что делает: Создаёт символическую ссылку, чтобы Darktable появился в меню приложений.

Шаг 8: Проверьте версию собранной программы

/opt/darktable/bin/darktable --version | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | head -n1

Ожидаемый вывод: 5.5.0 (или актуальная версия).


Запуск Darktable

Запуск из терминала

Для версии из APT:

darktable

Для версии из Flatpak:

flatpak run org.darktable.Darktable

Для версии из исходников:

/opt/darktable/bin/darktable

Запуск из меню приложений

Найдите Darktable в меню приложений. В GNOME он обычно находится в категории «Графика».


Обновление Darktable

Обновление APT-версии

sudo apt update && sudo apt install --only-upgrade darktable

Обновление Flatpak-версии

sudo flatpak update org.darktable.Darktable -y

Обновление сборки из исходников

Darktable из исходников не обновляется автоматически. Для удобства создадим скрипт-помощник.

Создайте файл скрипта:

sudo install -m 0755 /dev/stdin /usr/local/bin/update-darktable-source <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

SOURCE_DIR="$HOME/darktable-source"
INSTALL_BIN="/opt/darktable/bin/darktable"
REPO_URL="https://github.com/darktable-org/darktable.git"

if [ "$(id -u)" -eq 0 ]; then
   echo "Запускайте этот скрипт от обычного пользователя. sudo потребуется только для установки."
   exit 1
fi

for cmd in git cmake make; do
   if ! command -v "$cmd" >/dev/null 2>&1; then
      echo "Отсутствует необходимая команда: $cmd"
      exit 1
   fi
done

if [ ! -d "$SOURCE_DIR/.git" ]; then
   echo "Не найдена директория с исходниками: $SOURCE_DIR"
   exit 1
fi

LATEST_TAG="$(git ls-remote --tags --refs "$REPO_URL" 'refs/tags/release-*' | sed 's#.*refs/tags/##' | sort -V | tail -n1)"
LATEST_VERSION="${LATEST_TAG#release-}"
CURRENT_VERSION="$([ -x "$INSTALL_BIN" ] && "$INSTALL_BIN" --version 2>/dev/null | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | head -n1 || true)"
CURRENT_VERSION="${CURRENT_VERSION:-none}"

if [ -z "$LATEST_TAG" ]; then
   echo "Не удалось определить последнюю стабильную версию Darktable."
   exit 1
fi

echo "Текущая версия: $CURRENT_VERSION"
echo "Новая версия:   $LATEST_VERSION"

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

if [ -n "$(git -C "$SOURCE_DIR" status --porcelain)" ]; then
   echo "Есть несохранённые изменения в $SOURCE_DIR"
   exit 1
fi

echo "Обновление исходников в $SOURCE_DIR"
git -C "$SOURCE_DIR" fetch --tags
git -C "$SOURCE_DIR" checkout "$LATEST_TAG"
git -C "$SOURCE_DIR" submodule init
git -C "$SOURCE_DIR" config submodule.src/tests/integration.update none
git -C "$SOURCE_DIR" submodule update --depth 1 --recursive

echo "Удаление предыдущей директории сборки"
rm -rf "$SOURCE_DIR/build"

echo "Сборка Darktable $LATEST_VERSION"
cd "$SOURCE_DIR"
./build.sh --prefix /opt/darktable --build-type Release --install --sudo

sudo install -d -m 0755 /usr/local/share/applications
sudo ln -sfn /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/local/share/applications/org.darktable.darktable.desktop

echo "Обновление завершено"
"$INSTALL_BIN" --version | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' | head -n1
EOF

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

update-darktable-source

Что делает: Проверяет последнюю версию на GitHub и пересобирает Darktable, если вышло обновление.


Удаление Darktable

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

sudo apt remove --autoremove darktable

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

sudo flatpak remove --delete-data org.darktable.Darktable -y

Удаление сборки из исходников

sudo rm -rf /opt/darktable
sudo rm -f /usr/local/share/applications/org.darktable.darktable.desktop
sudo rm -f /usr/local/bin/update-darktable-source
rm -rf "$HOME/darktable-source"

Удаление пользовательских данных Darktable

Darktable хранит свои настройки, библиотеку и пресеты в домашней директории. Удалите эти папки, только если вы больше не планируете использовать Darktable.

rm -rf ~/.config/darktable ~/.cache/darktable ~/.local/share/darktable ~/.var/app/org.darktable.Darktable

Решение типичных проблем

8.1 Darktable не запускается из меню приложений

Симптом: Darktable установлен, но не открывается при нажатии на иконку.

Причина: Вы установили ту версию, для которой не создан ярлык (например, собранную из исходников без создания ссылки).

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

Шаг 1: Проверьте, какая версия Darktable у вас установлена.

Для APT:

dpkg-query -W darktable

Для Flatpak:

flatpak info org.darktable.Darktable

Для сборки из исходников:

/opt/darktable/bin/darktable --version

Шаг 2: Запустите Darktable из терминала — это покажет ошибку, если она есть.

Для APT:

darktable

Для Flatpak:

flatpak run org.darktable.Darktable

Для сборки из исходников:

/opt/darktable/bin/darktable

Шаг 3: Если программа запускается из терминала, но не из меню — для сборки из исходников выполните команду создания ярлыка:

sudo install -d -m 0755 /usr/local/share/applications
sudo ln -sfn /opt/darktable/share/applications/org.darktable.darktable.desktop /usr/local/share/applications/org.darktable.darktable.desktop

Шаг 4: Если программа не запускается даже из терминала, и вы видите ошибки о библиотеках — переустановите Darktable.


8.2 Darktable не открывает RAW-файлы с моей камеры

Симптом: Программа запускается, но при попытке импортировать RAW-файл (CR3, NEF, RAF) выдаёт ошибку или показывает чёрную миниатюру.

Причина: Слишком старая версия Darktable. Поддержка новых камер добавляется в новых версиях.

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

Шаг 1: Проверьте вашу версию Darktable:

darktable --version

Шаг 2: Сравните вашу версию с официальным списком поддерживаемых камер Darktable. Если ваша камера требует более новую версию — обновитесь.

Шаг 3: Если у вас версия из APT (особенно на Debian 11 или 12) — перейдите на Flatpak:

sudo flatpak install flathub org.darktable.Darktable -y

Шаг 4: Если у вас Debian 13 или 12 — соберите последнюю версию из исходников (см. Способ 3).


8.3 Ошибка: tethered shooting (съёмка через USB) не работает

Симптом: Камера подключена по USB, но Darktable не видит её в режиме tethering.

Причина: Ваш пользователь не состоит в группе plugdev, которая имеет доступ к USB-устройствам.

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

Шаг 1: Проверьте, входит ли ваш пользователь в группу plugdev:

groups "$USER"

Ожидаемый вывод: Должна быть строка plugdev. Если её нет — переходите к шагу 2.

Шаг 2: Добавьте пользователя в группу plugdev:

sudo usermod -aG plugdev $USER

Что делает: Добавляет текущего пользователя в группу plugdev (-aG — append to Group).

Шаг 3: Выйдите из системы и зайдите снова (или перезагрузитесь). Только после этого изменения вступят в силу.

Шаг 4: Проверьте ещё раз:

groups "$USER"

Теперь plugdev должна быть в списке.


8.4 Darktable тормозит или медленно открывает изображения

Симптом: Darktable работает медленно, долго применяет изменения, даже на мощном компьютере.

Причина: Darktable по умолчанию использует программную обработку, а не видеокарту (OpenCL).

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

Шаг 1: Установите драйверы OpenCL для вашей видеокарты.

Для NVIDIA:

sudo apt install -y nvidia-opencl-icd

Для AMD:

sudo apt install -y mesa-opencl-icd

Шаг 2: Включите OpenCL в настройках Darktable:

  • Откройте Darktable
  • Зайдите в НастройкиОбработка
  • Найдите раздел OpenCL
  • Поставьте галочку «Использовать OpenCL»
  • Перезапустите Darktable

Шаг 3: Проверьте, что OpenCL работает:

darktable --version | grep -i opencl

Ожидаемый вывод: Строка, указывающая на поддержку OpenCL.

У darktable версии из APT или сборки из исходников эта команда может не показать OpenCL, потому что флаг --version не всегда выводит информацию об OpenCL. Но это не ошибка — просто пользователь может увидеть пустой вывод, даже если OpenCL настроен правильно.

Или, есть ещё вот такой вариант проверки (более детальная проверка):.

darktable --version --verbose 2>/dev/null | grep -i opencl

Отсутствие вывода не означает, что OpenCL не работает — нужно проверить в настройках самого Darktable.


Чек-лист: что проверить после установки

  • [ ] Программа запускается: darktable (или flatpak run org.darktable.Darktable) открывает окно
  • [ ] Версия соответствует ожидаемой: dpkg-query -W darktable (APT) или flatpak info (Flatpak) или /opt/darktable/bin/darktable --version (сборка)
  • [ ] Можно импортировать фото: Darktable видит папки с изображениями
  • [ ] Можно открыть RAW-файл: тестовый снимок открывается в darkroom
  • [ ] Для сборки из исходников: ярлык есть в меню приложений
  • [ ] Для tethering: пользователь в группе plugdev

Часто задаваемые вопросы (FAQ)

Вопрос: Darktable уже есть в репозиториях Debian. Зачем мне Flatpak или сборка из исходников?
Ответ: Репозитории Debian содержат стабильные, но часто довольно старые версии. Flatpak даёт более свежую версию на любой системе. Сборка из исходников — самую последнюю.

Вопрос: Можно ли установить Darktable через Snap?
Ответ: Можно, но официально от Darktable рекомендуются APT (для стабильности) и Flatpak (для новизны). Snap не тестируется разработчиками так же тщательно.

Вопрос: Какой способ установки самый простой?
Ответ: APT — одна команда, не требует дополнительных действий. Но версия будет не самая новая.

Вопрос: Будут ли конфликтовать APT, Flatpak и сборка из исходников?
Ответ: Они устанавливаются в разные места: APT — в /usr, Flatpak — в свой изолированный каталог, сборка — в /opt/darktable. Но не открывайте одну и ту же библиотеку фотографий разными версиями — база данных может обновиться, и старая версия перестанет её читать.

Вопрос: Darktable работает только с RAW или с JPEG тоже?
Ответ: Darktable работает и с JPEG, и с TIFF, и с другими форматами. Но основная его сила — обработка RAW.


Заключение

Теперь Darktable установлен на вашем Debian. Вы можете выбрать подходящий вам способ установки:

  • APT — для простоты и стабильности (но версия зависит от релиза)
  • Flatpak — для более свежей версии на любой системе
  • Сборка из исходников — для самой последней версии (Debian 13 и 12)

Что дальше?