«Error installing package: nodejs» при установке BitrixEnv 9 на CentOS Stream 9
Последние записи
Хостинг для сайта
Если выбираете хостинг под проект — советую Timeweb. Современная инфраструктура, широкий выбор тарифов от стартовых до VPS под нагрузку, отзывчивая техподдержка, которая отвечает по существу, а не отписками. Я сам держу на нём часть своих проектов и рекомендую клиентам.
Перейти Партнёрская ссылка. Для вас цена не меняется.Ошибка «Error installing package: nodejs» при установке BitrixEnv 9 на CentOS Stream 9
Разворачиваете окружение для Битрикс на чистой CentOS Stream 9, запускаете инсталлятор bitrix-env-9.sh и упираетесь в ошибку установки nodejs. Установка окружения обрывается, сервер остаётся недоступным для управления из панели Битрикс, а дальше — вечера ручной отладки вместо работы над проектом.
Хорошая новость: причина не в железе и не в сборке Битрикс, а в конфликте модулей dnf. Ошибка типичная, лечится за пять минут, и после неё установка проходит с первого раза. Разберём по шагам.
Почему возникает ошибка
В CentOS Stream 9 пакеты Node.js управляются через dnf-модули из репозитория AppStream. Это значит, что одна и та же версия операционной системы может поддерживать несколько веток Node.js одновременно, и выбор ветки — это отдельный шаг, а не следствие установки пакета. Скрипт bitrix-env-9.sh пытается поставить nodejs напрямую, но dnf блокирует установку из-за того, что нужный модуль не активирован, а альтернативные источники (EPEL, NodeSource) конфликтуют с AppStream.
На практике это выглядит как цепочка вида nothing provides... или conflict with... в логе установки. Установка обрывается на шаге конфигурации nodejs и дальше не идёт, потому что Push-server и часть фронтенд-инструментов Битрикс без него просто не запустятся.
Что это означает для бизнеса: сервер простаивает, пока разработчик разбирается с dnf, а если ошибка не лечится, приходится сносить операционную систему и начинать установку заново. Каждый такой цикл — это несколько часов простоя, которые уходят из сроков запуска магазина или внутреннего проекта.
Шаг 1. Сброс и настройка dnf-модуля Node.js
Перед повторным запуском установщика нужно очистить кэш dnf и явно разрешить операционной системе использовать Node.js нужной ветки. Все команды выполняются от root.
dnf clean all
dnf module reset nodejs -y
dnf module enable nodejs:20 -y
Что здесь происходит по шагам. dnf clean all сбрасывает локальный кэш метаданных: без этого dnf может принимать решения на основе устаревших данных о доступных пакетах. dnf module reset nodejs -y сбрасывает текущее состояние модуля nodejs — если на сервере ранее случайно активировалась другая ветка, эта команда возвращает систему в исходное состояние. dnf module enable nodejs:20 -y явно включает 20-ю ветку, которую рекомендует Битрикс 9.
Если установщик Битрикс требует более свежую версию, ветку можно переключить на nodejs:22:
dnf module reset nodejs -y
dnf module enable nodejs:22 -y
Проверить, какая ветка активна сейчас, можно командой:
dnf module list nodejs --enabled
В выводе будет видно, какой поток (stream) отмечен как включённый. Если поток не отмечен — nodejs останется заблокированным при попытке установки, и установщик Битрикс снова упадёт на том же шаге.
Шаг 2. Принудительная установка Node.js
Теперь можно поставить nodejs вручную из системных репозиториев. Это нужно, чтобы установщик Битрикс не спотыкался о зависимость и не пытался лезть во внешние источники, которые конфликтуют с AppStream.
dnf install nodejs -y
Проверить, что установка прошла успешно и версия соответствует выбранной ветке:
node --version
npm --version
Обе команды должны вернуть номер версии без ошибок. Если node --version выдаёт «command not found», значит dnf не поставил бинарник — это уже сигнал, что в системе остались следы старого репозитория NodeSource или EPEL, и их нужно убирать до повторного запуска установщика.
Что это даёт на практике: когда nodejs уже стоит, установщик Битрикс пропускает шаг его установки и идёт дальше. Именно на этом шаге в 90% случаев установка BitrixEnv 9 на CentOS Stream 9 и обрывается — исправление занимает несколько минут вместо часов переустановки операционной системы.
Шаг 3. Повторный запуск установщика
Убедившись, что nodejs и npm установлены, запускайте установщик Битрикс заново:
./bitrix-env-9.sh
Установщик подхватит уже установленный nodejs, пройдёт шаг конфигурации и продолжит разворачивание окружения. Дальше он настроит Nginx, PHP-FPM, MySQL и Push-server так же, как на чистой системе без конфликтов dnf-модулей.
Что ещё проверить после установки
Установщик BitrixEnv 9 разворачивает окружение, но два шага легко забыть, и потом они всплывают при управлении сервером из панели Битрикс.
Права sudo для управления из панели Битрикс
После успешной установки откройте файл /etc/sudoers.d/bitrix и раскомментируйте все строки. По умолчанию часть строк закомментирована, и из-за этого при создании сайтов, пулов и сертификатов через веб-панель возникают ошибки доступа. Панель показывает ошибку, операция не выполняется, а в логах — стандартное permission denied.
Проверить, что файл применился корректно, можно командой:
visudo -c
Утилита проверит синтаксис всех файлов в /etc/sudoers.d/ и покажет ошибки, если они есть. Если после раскомментирования строк visudo -c показывает parsed OK — всё в порядке.
Полное обновление системы
Сразу после установки выполните полное обновление системы:
dnf update -y
Это нужно для корректной интеграции всех служб окружения — Nginx, Push-server и связанных модулей PHP. Без обновления часть служб может не запуститься после перезагрузки, и вы получите «сайт не открывается» без явной причины в логах.
После обновления перезагрузите сервер и проверьте, что все службы поднялись:
systemctl status nginx
systemctl status bitrix-push
Обе службы должны быть в состоянии active (running). Если какая-то не запустилась — смотрите journalctl -u nginx или journalctl -u bitrix-push, там будет конкретная причина.
Если ошибка сохраняется: что нужно для диагностики
В редких случаях конфликт dnf-модулей не исчерпывается сбросом nodejs. Тогда нужно смотреть точную причину, а не гадать. Установщик Битрикс пишет лог установки в файл вида /tmp/bitrix-env-*.log — путь установщик показывает в консоли перед тем, как упасть.
Для диагностики пригодятся три вещи:
- Точная подстрока ошибки из лога установки — например,
nothing provides...,conflict with...илиpackage X requires Y. По этой строке можно однозначно понять, чего не хватает. - Конкретная сборка
CentOS:Stream,AlmaLinuxилиRocky Linux. Поведениеdnf-модулейв них может отличаться, и решение подAlmaLinuxне всегда работает наStream. - Список включённых репозиториев — команда
dnf repolist. Если в списке естьnodesourceилиepel, это дополнительный источник конфликта, и его стоит отключить на время установки.
С этими тремя пунктами причину можно найти за пару минут, а не перебирать команды наугад.
CTA: поможем развернуть окружение Битрикс без сюрпризов
Если установка BitrixEnv 9 на CentOS Stream 9 встала на nodejs и вы не уверены, что дело только в dnf-модуле, — присылайте лог установки. Мы бесплатно посмотрим причину и скажем, что делать: сбросить модуль nodejs, убрать конфликтующий репозиторий или это уже другой случай, и нужна доработка конфигурации сервера.
По итогам диагностики вы получите конкретный план: последовательность команд для вашей сборки CentOS, чек-лист проверки служб после установки и рекомендации по безопасности сервера. Без необходимости сносить операционную систему и начинать заново.
Пришлите лог установки — и в тот же день у вас будет решение, а не перебор команд наугад.
Комментарии