Подробный гайд по установке и запуску 1С:Предприятие 8.3 в Fedora Linux - Часть 4
12. Полезные переменные окружения для диагностики
Их можно выставлять перед запуском:
export G_MESSAGES_DEBUG=all
Подробные сообщения GLib/GTK.
export GTK_THEME=Adwaita
Исключить проблемы тем.
export GDK_BACKEND=x11
Принудительно X11/XWayland, если проблема в Wayland.
export LIBGL_ALWAYS_SOFTWARE=1
Программный OpenGL, если проблема с видеокартой/драйвером/виртуалкой.
export WEBKIT_DISABLE_COMPOSITING=1
Иногда помогает при падении/белом окне/проблемах WebKit.
export LD_BIND_NOW=1
Более раннее разрешение символов. Удобно для диагностики, но может выявлять ошибки, которые обычно возникают позже.
export LD_DEBUG=libs
Подробный лог динамического линковщика. Вывод будет очень большим.
Пример:
LD_DEBUG=libs ~/bin/1c-run ENTERPRISE 2> ~/1c-ld-debug.log
Потом:
grep -Ei 'error|cannot|not found' ~/1c-ld-debug.log | less
13. Если 1С не запускается вообще и в терминале пусто
13.1. Проверьте базовые вещи
~/bin/1c-doctor
13.2. Запустите через чистый сеанс D-Bus
dbus-run-session -- ~/bin/1c-run ENTERPRISE
13.3. Запустите под виртуальным X
sudo dnf install xorg-x11-server-Xvfb
xvfb-run -a dbus-run-session -- ~/bin/1c-run ENTERPRISE
13.4. Запустите под strace
BIN=$(find /opt/1cv8/x86_64 -type f -name 1cv8 | sort -V | tail -n 1)
strace -f -tt -o ~/1c-strace.log "$BIN" ENTERPRISE
Смотрите последние ошибки:
tail -n 200 ~/1c-strace.log
grep -E 'ENOENT|EACCES|EPERM' ~/1c-strace.log | tail -n 100
13.5. Проверьте coredump
coredumpctl list --no-pager
coredumpctl info
13.6. Проверьте системные ошибки
sudo journalctl -p err -b
14. Если 1С устанавливался не через RPM, а вручную
Так лучше не делать, но если уже так сделано:
- Проверьте, что файлы в
/opt/1cv8.
2. Проверьте права на исполнение:
ls -l /opt/1cv8/x86_64/*/1cv8
3. Восстановите SELinux-метки:
sudo restorecon -RFv /opt/1cv8
4. Проверьте зависимости:
~/bin/1c-doctor /opt/1cv8/x86_64/*/1cv8
15. Запуск 1С из графического меню, но с терминалом
Если вы хотите запускать 1С по ярлыку и при этом видеть терминал, создайте .desktop-файл.
Для GNOME:
nano ~/.local/share/applications/1c-terminal.desktop
Вставьте, заменив USERNAME на ваше имя пользователя:
[Desktop Entry]
Type=Application
Name=1C:Enterprise (terminal log)
Comment=Run 1C and show terminal/log
Exec=gnome-terminal -- bash -lc "/home/USERNAME/bin/1c-run ENTERPRISE"
Icon=utilities-terminal
Terminal=false
Categories=Development;Office;
Для KDE можно использовать:
Exec=konsole -e bash -lc "/home/USERNAME/bin/1c-run ENTERPRISE"
Если нужен конфигуратор:
Exec=gnome-terminal -- bash -lc "/home/USERNAME/bin/1c-run DESIGNER"
Если нужен тонкий клиент:
Exec=gnome-terminal -- bash -lc "ONEC_BIN=1cv8c /home/USERNAME/bin/1c-run ENTERPRISE"
16. Если нативно в Fedora не получается: Distrobox/контейнер
Fedora — не всегда самый беспроблемный дистрибутив для 1С, потому что 1С часто лучше совместима с Ubuntu LTS/RHEL-подобными системами конкретных версий. Если упрётесь в отсутствие webkit2gtk4.0, старые libssl, libpng12, libtiff5 и т.п., лучше использовать Distrobox.
16.1. Установка Distrobox
sudo dnf install distrobox
16.2. Создать контейнер с Ubuntu
distrobox create --image docker.io/ubuntu:24.04 --name 1c-ubuntu
Войти:
distrobox enter 1c-ubuntu
Внутри контейнера уже можно ставить DEB-пакеты 1С:
sudo apt update
sudo apt install ./1C-enterprise83-common*.deb ./1C-enterprise83-client*.deb
Distrobox обычно пробрасывает графику, домашний каталог и рабочий стол лучше, чем ручная настройка контейнера.
17. Если у вас 1С сервер, а не только клиент
Если установлены серверные пакеты, проверьте сервисы:
systemctl list-units --type=service --all | grep -Ei '1cv8|srv1c'
Статус:
systemctl status имя-сервиса
Логи:
journalctl -u имя-сервиса -f
Порты 1С-сервера часто:
1541/tcp— агент сервера;1560-1591/tcp— рабочие процессы/менеджеры, диапазон может зависеть от настроек кластера.
Открыть порты в firewalld, если сервер должен быть доступен:
sudo firewall-cmd --add-port=1541/tcp --permanent
sudo firewall-cmd --add-port=1560-1591/tcp --permanent
sudo firewall-cmd --reload
Проверить слушателя:
sudo ss -ltnp | grep -E '1541|1560'
Проверить AVC-запреты SELinux:
sudo ausearch -m avc -ts recent | grep -Ei '1cv8|srv1cv8|ragent|rmngr|rphost'
18. Частые библиотеки и пакеты в Fedora
Ниже ориентировочная таблица. Если dnf provides выдаёт другой пакет в вашей версии — ориентируйтесь на него.
| Ошибка / библиотека | Возможный пакет |
|---|---|
libgtk-3.so.0 |
gtk3 |
libgdk-3.so.0 |
gtk3 |
libgobject-2.0.so.0 |
glib2 |
libgio-2.0.so.0 |
glib2 |
libcairo.so.2 |
cairo |
libpango-1.0.so.0 |
pango |
libpangocairo-1.0.so.0 |
pango |
libgdk_pixbuf-2.0.so.0 |
gdk-pixbuf2 |
libatk-1.0.so.0 |
atk |
libatspi.so.0 |
at-spi2-core |
libatk-bridge-2.0.so.0 |
at-spi2-atk |
libX11.so.6 |
libX11 |
libXrender.so.1 |
libXrender |
libXext.so.6 |
libXext |
libXt.so.6 |
libXt |
libXi.so.6 |
libXi |
libXrandr.so.2 |
libXrandr |
libXcursor.so.1 |
libXcursor |
libXcomposite.so.1 |
libXcomposite |
libXdamage.so.1 |
libXdamage |
libXfixes.so.3 |
libXfixes |
libXss.so.1 |
libXScrnSaver |
libXxf86vm.so.1 |
libXxf86vm |
libXpm.so.4 |
libXpm |
libXaw.so.7 |
libXaw |
libXtst.so.6 |
libXtst |
libXinerama.so.1 |
libXinerama |
libsecret-1.so.0 |
libsecret |
libenchant-2.so.2 |
enchant2 |
libwebkit2gtk-4.1.so.0 |
webkit2gtk4.1 |
libjavascriptcoregtk-4.1.so.0 |
webkit2gtk4.1 |
libwebkit2gtk-4.0.so.37 |
webkit2gtk4.0, если доступен |
libgst* |
gstreamer1* |
libcups.so.2 |
cups-libs |
libusb-1.0.so.0 |
libusb1 |
libcurl.so.4 |
libcurl |
libssl.so.3 / libcrypto.so.3 |
openssl-libs |
libssl.so.1.1 / libcrypto.so.1.1 |
старый OpenSSL 1.1; если его нет в Fedora, лучше контейнер/обновление 1С |
libsqlite3.so.0 |
sqlite-libs |
libxml2.so.2 |
libxml2 |
libxslt.so.1 |
libxslt |
libicu*.so |
libicu |
libfontconfig.so.1 |
fontconfig |
libfreetype.so.6 |
freetype |
libharfbuzz.so.0 |
harfbuzz |
libGL.so.1 |
mesa-libGL |
libEGL.so.1 |
mesa-libEGL |
libgbm.so.1 |
mesa-libgbm |
libnotify.so.4 |
libnotify |
libepoxy.so.0 |
libepoxy |
19. Быстрый чек-лист при ошибке
1. Запустите диагностику:
~/bin/1c-doctor
2. Запустите 1С из терминала:
~/bin/1c-run ENTERPRISE
3. Если есть error while loading shared libraries:
dnf provides '*/libXXX.so.N'
sudo dnf install package-name
4. Если ошибка не по библиотекам:
LD_DEBUG=libs ~/bin/1c-run ENTERPRISE 2> ~/1c-ld-debug.log
grep -Ei 'error|cannot|not found' ~/1c-ld-debug.log | less
5. Если нужно смотреть файловые операции:
strace -f -tt -o ~/1c-strace.log -e trace=openat,stat,access,connect ~/bin/1c-run ENTERPRISE
grep -E 'ENOENT|EACCES|EPERM' ~/1c-strace.log | tail -n 100
6. Если проблема с графикой:
GDK_BACKEND=x11 LIBGL_ALWAYS_SOFTWARE=1 WEBKIT_DISABLE_COMPOSITING=1 ~/bin/1c-run ENTERPRISE
7. Если проблема с SELinux:
sudo ausearch -m avc -ts recent | grep -Ei '1cv8|/opt/1cv8'
- Если Fedora не может обеспечить нужные старые библиотеки — используйте Distrobox с Ubuntu LTS или другую поддерживаемую 1С систему.
20. Минимальный рабочий сценарий
Если коротко, обычно достаточно такой последовательности:
sudo dnf upgrade --refresh
sudo dnf install glibc-langpack-ru
sudo dnf install ./1C-enterprise83-common-*.rpm ./1C-enterprise83-client-*.rpm
sudo dnf install gtk3 webkit2gtk4.1 libsecret enchant2 gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good \
libX11 libXext libXrender libXt libXi libXrandr libXcursor libXcomposite libXdamage libXfixes libXScrnSaver \
cairo pango gdk-pixbuf2 atk at-spi2-atk at-spi2-core libxkbcommon libxkbcommon-x11 \
mesa-libGL mesa-libEGL mesa-libgbm libdrm libcurl openssl-libs libxml2 sqlite-libs libicu \
dejavu-sans-fonts liberation-fonts google-noto-sans-fonts strace lsof
fc-cache -f
~/bin/1c-doctor
~/bin/1c-run ENTERPRISE
Если после этого появляется ошибка — берите последнюю строку из терминала или ~/1c-terminal-*.log и ищите пакет через:
dnf provides '*/libимя_библиотеки.so.N'
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.