Запуск платформы 1С:Предприятие на дистрибутиве Fedora часто превращается в настоящий квест для системного администратора. В отличие от официально поддерживаемых систем вроде Ubuntu или RedOS, Fedora является дистрибутивом с очень свежими версиями пакетов (bleeding edge), что создает множество конфликтов с консервативной архитектурой 1С. Разберем пошагово, почему 1С может не запускаться "из коробки" и как привести систему в рабочее состояние.
Первым делом проанализируем ситуацию с помощью системных средств. Если при нажатии на ярлык ничего не происходит, нам необходимо выяснить, каких именно библиотек не хватает исполняемому файлу. Рассмотрим использование утилиты ldd, которая покажет связи динамических библиотек.
Перейдем в каталог с установленной платформой и выполним проверку основного бинарного файла. Выполним в терминале следующие команды:
cd /opt/1cv8/x86_64/8.3.22.1750/
ldd 1cv8 | grep "not found"
Если в выводе вы увидите строки со значением not found, это прямой указатель на отсутствующие в системе пакеты. Чаще всего в современных версиях Fedora (38, 39, 40) отсутствуют старые версии сетевых библиотек и средств шифрования.
Проанализируем одну из самых частых причин "молчаливого" отказа 1С — переход Fedora на OpenSSL 3.0. Платформа 1С версии 8.3.22 и ниже жестко завязана на версию 1.1. Без нее транспортный уровень системы просто не инициализируется. Кроме того, в новых выпусках Fedora библиотека libnsl (Network Support Library) вынесена из базовой системы.
Для исправления ситуации установим совместимые версии библиотек из официальных репозиториев:
sudo dnf install compat-openssl11
sudo dnf install libnsl
Это позволит 1С использовать привычные ей механизмы шифрования и сетевого взаимодействия, не нарушая работу современных приложений Fedora.
Выясним причину конфликтов версий стандартных библиотек C++. Платформа 1С поставляется со своим набором библиотек в папке /opt/1cv8/x86_64/.../. Часто системная библиотека libstdc++.so.6 в Fedora оказывается новее и стабильнее той, что идет в комплекте с 1С. Это вызывает ошибки сегментации (Segmentation fault).
Попробуем заставить 1С использовать системные библиотеки вместо встроенных. Для этого нам нужно переименовать или удалить конфликтующие файлы в каталогах платформы. Рассмотрим пример для версии 8.3.22:
sudo rm /opt/1cv8/common/libstdc++.so.6
sudo rm /opt/1cv8/x86_64/8.3.22.1750/libstdc++.so.6
sudo rm /opt/1cv8/x86_64/8.3.22.1750/libcrypto.so
sudo rm /opt/1cv8/x86_64/8.3.22.1750/libssl.so
После удаления этих файлов 1С принудительно обратится к системным библиотекам Fedora, которые мы подготовили на предыдущем шаге.
Разберем ситуацию с графическим окружением. Fedora по умолчанию использует протокол Wayland, в то время как графический интерфейс 1С (основанный на старых версиях библиотек) полноценно работает только с X11. Это проявляется в пропадании меню, отсутствии текста или мгновенных вылетах при открытии окон.
У нас есть два пути решения. Рассмотрим подробнее каждый:
QT_QPA_PLATFORM=xcb /opt/1cv8/x86_64/8.3.22.1750/1cv8
Посмотрим на проблему встроенного браузера в 1С. Многие формы (например, начальная страница или справка) используют библиотеку WebKitGTK. В Fedora 39/40 старая версия webkitgtk-4.0, необходимая для 1С, заменена на 4.1 или 5.0.
Для корректной работы нам потребуется найти и установить пакет webkit2gtk4.0. Если он отсутствует в стандартном репозитории, возможно, придется воспользоваться репозиторием RPM Fusion или создать символические ссылки, хотя установка специфического legacy-пакета является более предпочтительной.
Также не забудем про шрифты. Без шрифтов Microsoft интерфейс 1С может "развалиться". Установим базовый набор:
sudo dnf install liberation-fonts
# Также рекомендуется установить пакет mscorefonts через скрипты из репозитория RPM Fusion
Проанализируем влияние системы безопасности SELinux, которая в Fedora всегда активна. Она может блокировать запись во временные файлы или доступ 1С к определенным портам. Чтобы проверить, является ли SELinux причиной проблем, временно переведем его в режим мониторинга:
sudo setenforce 0
Если после этой команды 1С успешно запустилась, значит, блокировка вызвана политиками безопасности. В таком случае рекомендуется не отключать SELinux навсегда, а проанализировать логи аудита и разрешить конкретные действия для процесса 1cv8.
Если вышеописанные методы кажутся слишком сложными или система продолжает работать нестабильно, рассмотрим современный архитектурный подход — Distrobox. Этот инструмент позволяет создать внутри Fedora легковесный контейнер с другим дистрибутивом (например, Ubuntu 22.04), который официально поддерживается 1С.
Посмотрим, как это упрощает жизнь:
В результате 1С работает в идеальной для нее среде, но выглядит и ощущается как обычное приложение в вашем GNOME на Fedora. Это позволяет избежать бесконечной борьбы с обновляющимися библиотеками bleeding edge дистрибутива.