Appearance
Руководство по установщику NextBox
Это руководство помогает установить, обновить, расширить или удалить NextBox и дополнительные компоненты с помощью nextbox-installer.
Установщик готовит Docker Compose окружение, создает конфигурационные файлы, проверяет базовые требования и, если это разрешено, запускает контейнеры через Docker.
Что делает установщик
nextbox-installer автоматизирует подготовку NextBox окружения на Docker Compose.
Он умеет:
- создавать новую установку;
- обновлять версию образов в существующей установке;
- доустанавливать компоненты без удаления уже работающих сервисов;
- удалять отдельные компоненты или всю установку;
- находить существующие установки в типичных директориях и среди Docker Compose проектов;
- выполнять предпроверки: Docker, Docker Compose, Docker daemon, доступность registry, права на директорию, свободное место и занятость портов;
- генерировать
docker-compose.yaml,Caddyfile, конфигурации LiveKit, Security и служебные файлы; - сохранять контрольный слепок конфигов и предупреждать, если файлы были изменены вручную;
- запускать
docker compose pull,docker compose up -d,docker compose downи связанные команды.
Важно
Установщик не заменяет Docker. Docker должен быть установлен и запущен заранее.
Требования
Общие требования
- Docker.
- Docker Compose v2, то есть команда
docker compose, а не только старыйdocker-compose. - Доступ к Docker daemon.
- Доступ к registry
nextbox-docker.ptnl.moscow. - Свободные порты для выбранных компонентов.
- Доступ на запись в директорию установки.
- Минимум 2 GiB свободного места. Если свободно меньше 10 GiB, установщик покажет предупреждение.
Windows
На Windows рекомендуется запускать nextbox-installer.exe напрямую.
Требуется:
- Docker Desktop;
- режим Linux containers;
- WSL2 backend;
- запущенный Docker Desktop.
По умолчанию директория установки на Windows:
powershell
%USERPROFILE%\NextBoxПример:
powershell
.\nextbox-installer.exe install --profile nextbox --dir "$env:USERPROFILE\NextBox" --domain 10.8.1.2Linux
По умолчанию директория установки:
bash
/opt/nextboxПример:
bash
./nextbox-installer install --profile nextbox --dir /opt/nextbox --domain 10.8.1.2Если у пользователя нет доступа к Docker, добавьте его в группу docker или запускайте команды с нужными правами.
Доступ к registry
Registry nextbox-docker.ptnl.moscow общедоступен и не требует авторизации.
bash
docker pull nextbox-docker.ptnl.moscow/nextbox/frontend:alder-1.10.0На Windows:
powershell
docker pull nextbox-docker.ptnl.moscow/nextbox/frontend:alder-1.10.0Скачивание установщика
Скачайте установщик для вашей операционной системы:
| Платформа | Ссылка |
|---|---|
| Linux amd64 | nextbox-installer |
| Windows amd64 | nextbox-installer.exe |
Linux
bash
curl -fL \
-o nextbox-installer \
https://nextbox-nexus.ptnl.moscow/repository/nextbox-raw/nextbox-installer/linux-amd64/nextbox-installer
chmod +x nextbox-installer
./nextbox-installer --helpWindows
PowerShell:
powershell
Invoke-WebRequest `
-Uri "https://nextbox-nexus.ptnl.moscow/repository/nextbox-raw/nextbox-installer/windows-amd64/nextbox-installer.exe" `
-OutFile ".\nextbox-installer.exe"
.\nextbox-installer.exe --helpКомпоненты и профили
Установщик поддерживает готовые профили и ручной выбор компонентов.
Профили
| Профиль | Что устанавливает |
|---|---|
nextbox | базовый NextBox |
nextbox-callbox | NextBox, Callbox, LiveKit |
nextbox-callbox-onlyoffice | NextBox, Callbox, LiveKit, OnlyOffice |
full | NextBox, Callbox, LiveKit, OnlyOffice, PDF Editor, Security |
callbox-livekit | Callbox и LiveKit для подключения к уже существующему NextBox |
Компоненты
Компоненты можно указать вручную через --components.
| Компонент | Назначение |
|---|---|
nextbox | основной NextBox |
callbox | звонки и связанные API |
livekit | медиа-сервер для звонков |
onlyoffice | редактор документов |
pdf | PDF Editor |
security | Security модуль |
dlp | DLP интеграция Infowatch, включает Security |
kesl | антивирусная интеграция KESL, включает Security |
Важно
onlyoffice, pdf и security устанавливаются как расширения NextBox. Для них должен быть включен nextbox.
Перед началом
- Убедитесь, что Docker запущен:
bash
docker info- Проверьте Docker Compose v2:
bash
docker compose version- Выберите директорию установки.
Для новой установки директория должна быть пустой или отсутствовать. Если в ней уже есть docker-compose.yaml, .version или install-summary.txt, установщик посчитает, что там уже есть установка NextBox.
- Выберите домен или IP сервера.
Значение --domain используется для внешних URL, конфигурации LiveKit и итоговой сводки.
Быстрая установка
Только NextBox
Linux:
bash
./nextbox-installer install \
--profile nextbox \
--dir /opt/nextbox \
--domain 10.8.1.2Windows:
powershell
.\nextbox-installer.exe install `
--profile nextbox `
--dir "$env:USERPROFILE\NextBox" `
--domain 10.8.1.2После завершения NextBox будет доступен по адресу:
text
http://<domain>:8095/Если вы указали --domain 10.8.1.2, адрес будет:
text
http://10.8.1.2:8095/Полная установка
bash
./nextbox-installer install \
--profile full \
--dir /opt/nextbox \
--domain nextbox.example.local \
--nextbox-port 8095 \
--livekit-port 7880 \
--livekit-tcp-port 7881 \
--livekit-udp-port 3478Ручной выбор компонентов
bash
./nextbox-installer install \
--components nextbox,callbox,livekit,onlyoffice,pdf \
--dir /opt/nextbox \
--domain 10.8.1.2Security с DLP и KESL
bash
./nextbox-installer install \
--components nextbox,security,dlp,kesl \
--dir /opt/nextbox \
--domain 10.8.1.2 \
--infowatch-ip 10.0.0.10 \
--infowatch-token token \
--infowatch-company Example \
--kesl-ip 10.0.0.11Интерактивный режим
Если запустить установщик без аргументов, откроется интерактивный TUI:
bash
./nextbox-installerНа Windows:
powershell
.\nextbox-installer.exeВ интерактивном режиме можно выбрать:
- режим: установка, обновление, доустановка или удаление;
- профиль или отдельные компоненты;
- версию;
- директорию установки;
- домен или IP;
- порты;
- запуск
docker compose pull; - запуск
docker compose up -d; - dry-run без реального запуска контейнеров;
- удаление Docker volumes при удалении.
Интерактивный режим использует тот же генератор конфигурации и те же предпроверки, что и CLI.
CLI-режим
CLI удобен для автоматизации, инструкций внедрения и повторяемых установок.
Общий формат:
bash
./nextbox-installer <command> [flags]Доступные команды:
| Команда | Назначение |
|---|---|
install | создать новую установку |
update | обновить версию образов существующей установки |
extend | доустановить компоненты |
remove | удалить компоненты или всю установку |
detect | найти установки NextBox |
current | показать состояние текущей установки |
preflight | выполнить только предпроверку |
plan | показать план без выполнения |
Основные флаги
| Флаг | Описание | Значение по умолчанию |
|---|---|---|
--dir | директория установки | Windows: %USERPROFILE%\NextBox, Linux: /opt/nextbox |
--profile | готовый профиль установки | не выбран |
--components | компоненты через запятую | не выбраны |
--version | версия образов NextBox/Callbox | alder-1.10.0 |
--domain | IP или домен сервера | localhost |
--scheme | схема внешних URL: http или https | http |
--nextbox-port | внешний порт NextBox/Caddy | 8095 |
--callbox-port | внешний порт Callbox API | 8081 |
--livekit-port | HTTP порт LiveKit | 7880 |
--livekit-tcp-port | TCP порт LiveKit WebRTC | 7881 |
--livekit-udp-port | UDP порт LiveKit TURN | 3478 |
--livekit-external | внешний адрес LiveKit | берется из --domain |
--livekit-turn-domain | TURN-домен LiveKit без протокола и порта | вычисляется автоматически |
--nextbox-api | URL NextBox/Callbox для отдельного Callbox или LiveKit webhook | вычисляется автоматически |
--pull=false | не выполнять docker compose pull | true |
--up=false | не выполнять docker compose up/down | true |
--dry-run | подготовить файлы и план без Docker операций | false |
--skip-preflight | пропустить предпроверку | false |
--accept-drift | разрешить перезапись вручную измененных конфигов | false |
--force | алиас для --accept-drift | false |
--remove-volumes | удалить Docker volumes при удалении | false |
--remove-configs=false | не удалять конфиги при полном удалении | true |
Проверить план перед установкой
bash
./nextbox-installer plan \
--mode install \
--profile nextbox \
--dir /opt/nextbox \
--domain 10.8.1.2Выполнить только предпроверку
bash
./nextbox-installer preflight \
--mode install \
--profile nextbox \
--dir /opt/nextbox \
--domain 10.8.1.2Сгенерировать файлы без скачивания и запуска контейнеров
bash
./nextbox-installer install \
--profile nextbox \
--dir /opt/nextbox \
--domain 10.8.1.2 \
--dry-runОбновление
Обновление меняет теги образов NextBox/Callbox в docker-compose.yaml, обновляет .version, пересоздает контрольный слепок файлов и, если разрешено, выполняет Docker команды.
bash
./nextbox-installer update \
--dir /opt/nextbox \
--version alder-1.10.0Перед обновлением рекомендуется:
bash
./nextbox-installer current --dir /opt/nextbox
./nextbox-installer plan --mode update --dir /opt/nextbox --version alder-1.10.0Если конфигурационные файлы были изменены вручную, установщик остановится и попросит повторить команду с --accept-drift.
bash
./nextbox-installer update \
--dir /opt/nextbox \
--version alder-1.10.0 \
--accept-driftПеред перезаписью измененных файлов будут созданы резервные копии вида:
text
<имя-файла>.bak-YYYYMMDD-HHMMSSДоустановка компонентов
Доустановка добавляет новые компоненты в существующую установку.
Пример: добавить OnlyOffice и PDF Editor:
bash
./nextbox-installer extend \
--dir /opt/nextbox \
--components onlyoffice,pdfПри доустановке установщик:
- читает текущий
docker-compose.yaml; - сохраняет существующие секреты;
- объединяет текущий состав компонентов с новыми;
- обновляет конфигурационные файлы;
- поднимает PostgreSQL;
- создает недостающие базы данных для новых компонентов;
- выполняет
docker compose up -d.
Если доустанавливаются компоненты, которым нужен NextBox, он должен уже быть установлен или должен быть включен в итоговый состав.
Удаление
Удаление бывает частичным и полным.
Частичное удаление компонента
Пример: удалить только PDF Editor, не удаляя данные:
bash
./nextbox-installer remove \
--dir /opt/nextbox \
--components pdf \
--remove-volumes=falseПри частичном удалении установщик:
- удаляет выбранные контейнеры через
docker compose rm -sf; - при включенном
--remove-volumesудаляет связанные Docker volumes выбранных компонентов; - пересобирает
docker-compose.yamlдля оставшихся компонентов; - запускает оставшуюся установку через
docker compose up -d --remove-orphans.
Полное удаление без удаления данных
bash
./nextbox-installer remove \
--dir /opt/nextbox \
--components nextbox \
--remove-volumes=falseПри полном удалении без --remove-volumes выполняется docker compose down. Docker volumes с данными остаются.
Полное удаление вместе с данными
bash
./nextbox-installer remove \
--dir /opt/nextbox \
--components nextbox \
--remove-volumes=trueОсторожно
--remove-volumes=true удаляет Docker volumes. Это может удалить пользовательские данные, базы данных, файлы и состояние сервисов. Используйте этот флаг только если данные больше не нужны или уже есть резервная копия.
Удалить контейнеры, но оставить конфиги
По умолчанию при полном удалении установщик удаляет конфигурационные файлы. Чтобы оставить их:
bash
./nextbox-installer remove \
--dir /opt/nextbox \
--components nextbox \
--remove-configs=falseПроверки и диагностика
Найти установки NextBox
bash
./nextbox-installer detectУстановщик ищет:
- директорию из
NEXTBOX_INSTALL_DIR; - директорию по умолчанию;
~/NextBox,~/nextbox,~/Documents/NextBox,~/Documents/nextbox;- на Windows:
C:\NextBox,%ProgramData%\NextBox; - на Linux:
/opt/nextbox,/srv/nextbox,/var/lib/nextbox,/usr/local/nextbox; - Docker Compose проекты с подходящими labels.
Показать текущую установку
bash
./nextbox-installer current --dir /opt/nextboxКоманда показывает директорию, версию, компоненты, порты, URL, состояние файлов и сервисы.
Только предпроверка
bash
./nextbox-installer preflight \
--mode install \
--profile full \
--dir /opt/nextbox \
--domain nextbox.example.localПредпроверка проверяет:
- платформу;
- наличие Docker;
- наличие Docker Compose v2;
- доступность Docker daemon;
- директорию установки;
- контрольный слепок файлов для обновления и доустановки;
- свободное место;
- доступность registry;
- занятость портов для новой установки.
Только план действий
bash
./nextbox-installer plan \
--mode remove \
--dir /opt/nextbox \
--components onlyofficeПлан показывает, какие контейнеры, порты, файлы и Docker команды будут затронуты.
Какие файлы создает установщик
В директории установки создаются служебные и конфигурационные файлы.
| Файл | Назначение |
|---|---|
docker-compose.yaml | основной Docker Compose файл |
Caddyfile | конфигурация Caddy для NextBox и расширений |
default.conf | конфигурационный файл, если нужен текущей сборке |
.version | текущая версия образов |
install-summary.txt | сводка установки, URL и секреты |
.nextbox-file-state.json | контрольный слепок с хешами файлов |
init-db.sql | начальная подготовка баз PostgreSQL |
livekit.yaml | конфигурация LiveKit |
egress.yaml | конфигурация LiveKit Egress |
redis.conf | конфигурация Redis для LiveKit |
security_config.yaml | конфигурация Security интеграций |
Секреты
install-summary.txt содержит секреты. Не публикуйте его и не отправляйте в открытые каналы. На Linux рекомендуется ограничить доступ к файлу командой chmod 600 install-summary.txt.
Как работает установщик
Новая установка
- Читает параметры из TUI или CLI.
- Проверяет выбранные компоненты, версию, директорию и порты.
- Выполняет preflight-проверки.
- Генерирует секреты, если они не были заданы ранее.
- Создает конфигурационные файлы в директории установки.
- Сохраняет контрольный слепок файлов в
.nextbox-file-state.json. - Выполняет
docker compose pull, если не указан--pull=false. - Выполняет
docker compose up -d, если не указан--up=false.
Обновление
- Находит текущую установку по
--dir. - Читает
.version. - Проверяет контрольный слепок файлов.
- Обновляет теги образов в
docker-compose.yaml. - Обновляет
.version. - Обновляет контрольный слепок.
- Выполняет
docker compose pullиdocker compose up -d, если это не отключено.
Доустановка
- Читает текущий
docker-compose.yaml. - Определяет уже установленные компоненты.
- Сохраняет существующие секреты.
- Добавляет новые компоненты к текущему составу.
- Создает резервные копии измененных вручную файлов.
- Перегенерирует конфигурационные файлы.
- Поднимает PostgreSQL и создает недостающие базы данных.
- Запускает обновленный compose.
Удаление
- Определяет текущую установку.
- Определяет выбранные для удаления компоненты.
- Если остается часть установки, удаляет выбранные контейнеры и пересобирает compose.
- Если удаляется все, выполняет
docker compose downилиdocker compose down -v. - При полном удалении удаляет конфигурационные файлы, если не указан
--remove-configs=false.
Важные особенности и подводные камни
Новая установка требует пустую директорию
Для новой установки директория должна быть пустой. Если директория не пустая, выберите другую директорию или используйте режим обновления/доустановки для существующей установки.
Docker Compose должен быть v2
Установщик вызывает:
bash
docker compose ...Если доступна только команда docker-compose, установите Compose v2 plugin.
Docker daemon должен быть запущен
Если Docker Desktop закрыт или daemon недоступен, установщик не сможет скачать и запустить контейнеры.
На Windows обычно помогает:
- запустить Docker Desktop;
- включить Linux containers;
- дождаться статуса Docker Desktop
Running.
Registry должен быть доступен по сети
Registry nextbox-docker.ptnl.moscow общедоступен. Если при docker compose pull возникают ошибки, проверьте сетевой доступ, DNS, proxy/firewall и доступность Docker daemon.
bash
docker pull nextbox-docker.ptnl.moscow/nextbox/frontend:alder-1.10.0--scheme https не включает TLS автоматически
Флаг --scheme влияет на внешние URL в конфигурации и сводке. Встроенный Caddy в генерируемой конфигурации слушает HTTP и имеет auto_https off.
Если нужен HTTPS, обычно ставят внешний reverse proxy или балансировщик с TLS-сертификатом перед NextBox.
LiveKit требует корректные внешние адреса
Для LiveKit важны:
--livekit-external: внешний адрес, по которому клиенты будут подключаться к LiveKit;--livekit-turn-domain: TURN-домен безhttp://,https://, пути и порта;- открытые TCP/UDP порты.
TURN-домен не должен быть localhost.
Порты должны быть свободны
По умолчанию используются:
| Сервис | Порт |
|---|---|
| NextBox/Caddy | 8095/tcp |
| Callbox API | 8081/tcp |
| LiveKit HTTP | 7880/tcp |
| LiveKit TCP WebRTC | 7881/tcp |
| LiveKit TURN UDP | 3478/udp |
Если порт занят, укажите другой порт через соответствующий флаг.
install-summary.txt содержит секреты
Файл нужен администратору, но его нельзя публиковать. В нем могут быть service token, JWT secret, LiveKit API key/secret и другие чувствительные значения.
Ручные изменения конфигов отслеживаются
После генерации установщик сохраняет хеши конфигурационных файлов. При обновлении или доустановке он проверяет, не изменились ли файлы вручную.
Если изменения найдены, команда остановится. Чтобы продолжить, сначала посмотрите план, затем запустите команду с:
bash
--accept-driftПеред перезаписью будут созданы .bak-* копии.
--dry-run не запускает контейнеры
--dry-run полезен для проверки плана и генерации файлов, но после него сервисы не будут скачаны или запущены.
Docker volumes удаляются только явно
Удаление Docker volumes происходит только при --remove-volumes=true. Без этого данные остаются в volumes даже после docker compose down.
Запуск установщика через Docker требует правильных путей
Если установщик запускается внутри Docker-контейнера, путь в --dir должен совпадать с путем, который видит Docker daemon. Это важно для bind mounts в docker-compose.yaml.
На Windows надежнее запускать nextbox-installer.exe напрямую.
Запуск установщика через Docker-образ
Можно запустить установщик из Docker-образа. Образу нужен доступ к Docker socket.
Сборка:
bash
docker build -t nextbox-installer:local .Установка на Linux:
bash
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/nextbox:/opt/nextbox \
nextbox-installer:local install \
--profile full \
--dir /opt/nextbox \
--domain 10.8.1.2План без изменений:
bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/nextbox:/opt/nextbox \
nextbox-installer:local plan \
--mode install \
--profile nextbox \
--dir /opt/nextbox \
--domain 10.8.1.2Доустановка:
bash
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/nextbox:/opt/nextbox \
nextbox-installer:local extend \
--dir /opt/nextbox \
--components onlyoffice,pdfУдаление компонента:
bash
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/nextbox:/opt/nextbox \
nextbox-installer:local remove \
--dir /opt/nextbox \
--components pdf \
--remove-volumes=falseПолезные команды после установки
Выполняйте команды из директории установки.
Перейти в директорию:
bash
cd /opt/nextboxПоказать контейнеры:
bash
docker compose psПосмотреть логи всех сервисов:
bash
docker compose logs -fПосмотреть логи конкретного сервиса:
bash
docker compose logs -f gatewayПерезапустить сервисы:
bash
docker compose up -dОстановить сервисы без удаления данных:
bash
docker compose downСкачать новые образы и перезапустить:
bash
docker compose pull
docker compose up -dFAQ
Можно ли запустить установщик без аргументов?
Да. Без аргументов запускается интерактивный TUI:
bash
./nextbox-installerКакой режим лучше: интерактивный или CLI?
Для первой ручной установки удобен интерактивный режим. Для повторяемых установок, инструкций внедрения и автоматизации лучше CLI.
Что делать, если установщик пишет, что Docker не найден?
Установите Docker и убедитесь, что команда docker доступна в PATH.
Проверьте:
bash
docker versionЧто делать, если Docker daemon не отвечает?
На Windows запустите Docker Desktop и дождитесь, пока он полностью стартует. Проверьте, что включен режим Linux containers.
На Linux проверьте сервис Docker:
bash
systemctl status dockerЧто делать, если registry недоступен?
Проверьте сетевой доступ к nextbox-docker.ptnl.moscow, DNS, proxy/firewall и работу Docker daemon:
bash
docker pull nextbox-docker.ptnl.moscow/nextbox/frontend:alder-1.10.0Что делать, если порт занят?
Выберите другой порт.
Например, для NextBox:
bash
./nextbox-installer install \
--profile nextbox \
--dir /opt/nextbox \
--domain 10.8.1.2 \
--nextbox-port 8088Можно ли установить в директорию, где уже есть файлы?
Для новой установки нет. Директория должна быть пустой или отсутствовать. Это защита от перезаписи чужих файлов.
Для существующей установки используйте update, extend или remove.
Где посмотреть адрес установленного NextBox?
Откройте файл:
text
install-summary.txtИли выполните:
bash
./nextbox-installer current --dir /opt/nextboxЧто такое .nextbox-file-state.json?
Это контрольный слепок конфигурационных файлов. Установщик использует его, чтобы понять, были ли файлы изменены вручную после установки.
Почему установщик просит --accept-drift?
Он обнаружил, что конфигурационные файлы отличаются от состояния, которое сам же зафиксировал после предыдущей установки или обновления.
Сначала посмотрите план:
bash
./nextbox-installer plan --mode update --dir /opt/nextbox --version alder-1.10.0Если изменения понятны и вы готовы продолжить:
bash
./nextbox-installer update --dir /opt/nextbox --version alder-1.10.0 --accept-driftБудут ли удалены данные при удалении?
Только если явно указать:
bash
--remove-volumes=trueБез этого Docker volumes остаются.
Можно ли удалить только один компонент?
Да. Например:
bash
./nextbox-installer remove --dir /opt/nextbox --components onlyofficeУстановщик пересоберет compose для оставшихся компонентов.
Можно ли доустановить OnlyOffice позже?
Да:
bash
./nextbox-installer extend --dir /opt/nextbox --components onlyofficeПочему onlyoffice, pdf или security нельзя поставить без NextBox?
Эти компоненты работают как расширения NextBox. Поэтому NextBox должен быть установлен или выбран в составе установки.
Как установить Callbox и LiveKit отдельно от NextBox?
Используйте профиль callbox-livekit и укажите URL существующего NextBox или Callbox API:
bash
./nextbox-installer install \
--profile callbox-livekit \
--dir /opt/callbox \
--domain callbox.example.local \
--nextbox-api http://nextbox.example.local:8095Как включить HTTPS?
Флаг --scheme https формирует внешние URL с https, но не выпускает сертификаты и не включает TLS во встроенном Caddy.
Для HTTPS используйте внешний reverse proxy, балансировщик или другой слой TLS перед NextBox.
Что делать после успешной установки?
Проверьте контейнеры:
bash
cd /opt/nextbox
docker compose psОткройте URL из install-summary.txt или из вывода команды:
bash
./nextbox-installer current --dir /opt/nextboxМожно ли хранить install-summary.txt в системе контроля версий?
Нет. Файл содержит секреты и должен оставаться только у администратора установки.
Как понять, какую версию установил installer?
Версия образов записывается в файл:
text
.versionТакже ее показывает:
bash
./nextbox-installer current --dir /opt/nextboxЧто делать, если установка прервалась?
- Посмотрите вывод установщика и логи Docker.
- Проверьте состояние контейнеров:
bash
cd /opt/nextbox
docker compose ps
docker compose logs -f- После исправления причины повторите команду установки или выполните:
bash
docker compose up -dЕсли директория уже содержит сгенерированные файлы, новая команда install может не пройти из-за защиты от непустой директории. В таком случае проверьте файлы, удалите некорректную незавершенную установку вручную или используйте подходящий режим обслуживания.