«Error installing package: nodejs» при установке BitrixEnv 9 на CentOS Stream 9
Rus
Eng
Error installing package: nodejs» при установке BitrixEnv 9 на CentOS Stream 9
Решаю сложные технические задачи для Bitrix и 1С: от аудита чужого кода до разработки сайтов и настройки сложных интеграций с гарантией результата
Рекомендую

Хостинг для сайта

Если выбираете хостинг под проект — советую 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, чек-лист проверки служб после установки и рекомендации по безопасности сервера. Без необходимости сносить операционную систему и начинать заново.

Пришлите лог установки — и в тот же день у вас будет решение, а не перебор команд наугад.

Александр Тихий
Автор статьи

Александр Тихий

Fullstack-разработчик · 1С-Битрикс

Разрабатываю и развиваю интернет-магазины и корпоративные порталы на 1С-Битрикс. Интеграции с 1С, highload-нагрузки, безопасность по 152-ФЗ.


Комментарии

Комментариев еще нет, Вы можете стать первым кто его оставит

Оставьте комментарий

На сайте используется система премодерирования комментариев, поэтому ваше сообщение будет опубликовано лишь после одобрения модератором

Вы отвечаете на комментарий пользователя

Отправить

ОБРАТНАЯ СВЯЗЬ

Напишите мне

Напишите мне, чтобы обсудить задачу. Работаю удаленно, официально (самозанятый), стоимость часа — 1800 ₽, в день могу уделять проекту 3–4 часа. Отвечаю быстро, консультация бесплатная.

Во время отправки произошла ошибка, пожалуйста попробуйте еще раз через некоторое время
Сообщение отправлено успешно

Телефоны

+7(993) 007-18-96

Email

info@tichiy.ru

Адрес

Россия, г. Москва

Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта