ОБЗОР RED ОС

Продолжаю рассматривать отечественные дистрибутивы Linux на роль домашней и рабочей системы. На этот раз посмотрим на RED ОС.

вывод fastfetch

вывод fastfetch

НЕМНОГО ОБ RED ОС

Разработчиков RED ОС является компания РЕД СОФТ. На текущий момент выпущено три версии RED ОС:

  • 7.1,

  • 7.2,

  • 7.3.

Мне не удалось найти убедительных источников, но похоже RED ОС ведет свою родословную от ГосЛинукс, дистрибутива Linux, специально созданного, для использования в гос. учреждениях РФ, изначально для ФСИН. В свою очередь ГосЛинукс разработан на базе CentOS 6.

Дистрибутивы RED ОС

Операционная система доступна в 2-х вариантах:

Для версии 7.3 оба варианта доступны для архитектур x86–64,  aarch64 (Байкал-M, Raspberry Pi),  e2k v4 (Эльбрус).

Каждый из вариантов доступен в 2-х редакциях:  стандартная или сертифицированная. Имеется свой репозиторий Docker-образов. Стандартные версии дистрибутивов доступны для скачивания с сайта. Физическим лицам для некоммерческого использования продукт предоставляется бесплатно, юридическим лицам необходимо приобретать лицензию.

Документация

Для RED ОС доступны руководство пользователя и администратора полностью на русском языке. Кроме этого на сайте доступна обширная база знаний в которой содержится просто огромное кол-во довольно подробных инструкций от настроек ОС и различного ПО (такого как Squid, Samba, Zabbix) до инструкций по сборке RPM пакетов. Объем базы знаний вызывает восторг, лет 10 — 15 назад когда я только начинал изучать Linux о таком можно было только мечтать. opennet и другие ресурсы никто не отменял, но ТАКОЕ кол-во информации в одном месте да еще и на русском лично у меня даже сейчас вызывает удивление. В Базе знаний RED ОС содержится огромное кол-во материалов о настройке как рабочей станции так и сервера, и в дополнении к этому инструкции по установке различных CAD-систем, мессенджеров и даже Steam, Port Wine и многое другое. В дополнении к базе знаний есть канал на YouTube на котором тоже довольно много информации и канал в Telegram. Также на сайте доступен список совместимого ПО с возможностью поиска и список доступных в репозитории пакетов.

Установка пакетов

Для меня оказалось неожиданностью, но в RED ОС в качестве графического инструмента установки пакетов применяется dnfdragora. 

Окно менеджера пакетов dnfdragora в RED ОС

Окно менеджера пакетов dnfdragora в RED ОС

 Я ожидал увидеть gnome-software-center, интересно почему решили от него отказаться? В плане кол-ва доступных пакетов RED ОС оказывается довольно аскетичной, возможно сказывается родство с CentOS. Проявляется это в том что в репозиториях много различного свободного ПО, скажем так, для работы, а вот современных мессенджеров, эмуляторов и игр вы там не найдете. Я смог найти всего два пакета пригодных для игр — один из них это Steam, а второй DosBox. В процессе поиска и установки различных приложений на RED ОС я с удивлением обнаружил, что большое кол-во ПО предоставляет для установки на Linux пакеты deb-формата, и намного реже rpm-формата. Причем это качается не только закрытого и\или коммерческого ПО, но и свободного тоже так, например, ScummVM не предоставляет rpm. И даже наличие пакетов для CentOS-based дистрибутивов не всегда спасает, но об этом чуть позже. Так что при использовании RED ОС часто придется пользоваться либо Flatpak пакетами либо архивами с бинарной сборкой, что подтверждает «База знаний» RED ОС, в которой VS Code рекомендуется устанавливать используя flatpak, Telegram и Discord из tar.gz архива, а AnyDesk предлагается ставить из rpm пакета для RHEL 8.

Пакет

Способ установки

viber

Flatpak

Yandex Disk

rpm

Skype

rpm

Telegram

архив

Discord

архив

VS Code

rpm

Впрочем наличие rpm-пакета не всегда решает проблему установки, например, установка Viber из rpm проходит успешно, но запускаться программа отказывается «вываливая» список ошибок:

    [manul@localhost ~]$ /opt/viber/Viber 
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/Viber)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/viber/Viber)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libicui18n.so.66)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libicuuc.so.66)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Widgets.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/viber/lib/libQt6Widgets.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /opt/viber/lib/libQt6Widgets.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Multimedia.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6WebEngineCore.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/viber/lib/libQt6WebEngineCore.so.6)
    /opt/viber/Viber: /lib64/libc.so.6: version `GLIBC_2.30' not found (required by /opt/viber/lib/libQt6WebEngineCore.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Quick.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/viber/lib/libQt6Quick.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /opt/viber/lib/libQt6Quick.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Gui.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/viber/lib/libQt6Gui.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /opt/viber/lib/libQt6Gui.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Qml.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Core.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /opt/viber/lib/libQt6Core.so.6)
    /opt/viber/Viber: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /opt/viber/lib/libQt6Core.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6Positioning.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libpng16.so.16)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libwebp.so.6)
    /opt/viber/Viber: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/viber/lib/libQt6OpenGL.so.6)

Честно скажу что поленился разбираться и искать решение проблемы, плюс меня интересует сценарий использования Отечественных дистрибутивов обычным пользователем без знания подробностей функционирования Linux дистрибутивов. Таким образом Viber пришлось ставить из Flatpak. 

Viber установленный из flatpak

Viber установленный из flatpak

Приключения с установкой ПО на этом не заканчиваются, по какой-то причине файловый менеджер в RED ОС отказывается запускать исполняемые файлы с ошибкой вида:

Не удаются запустить бинарный файл по двойному клику из ФМ

Не удаются запустить бинарный файл по двойному клику из ФМ

При этом если запускать из терминала то запуск проходит успешно.

Игры

Если бы для RED ОС существовал маскот по образу и подобию OS-tan то это была бы строгая учительница или педантичная коллега в офисном дресс-коде. Душа ее суха как страницы книг воздух в офисах. В репозиториях RED ОС мне не удалось найти никаких пакетов с играми за исключением установщика Steam. Ни the Battle for Wesnoth, ни свободных движков Doom, ни эмуляторов по типу SVUMMVM — ничего! Справедливости ради стоит сказать что я проверил сайты нескольких проектов (the Battle for Wesnoth, fheroes, SCUMMVM, Xonotic, RetroArch) и обнаружил что почти все ПО нынче распространяется либо в формате tar.gz с скомпилированными бинарными файлами, либо через flatpak. Для многих проектов есть пакеты для Debian\Ubuntu и крайне редко для есть пакеты для CentOS\Fedora.

Steam

Syeam запущенный на RED ОС

Syeam запущенный на RED ОС

 Установка Steam на RED ОС выполняется из репозитория и не вызывает проблем. Установка и запуск нативных для Linux игр работает без нареканий, а вот в случае использования Proton все уже не так просто и зависит от оборудования и от игры. Некоторые запускаются без проблем, некоторые требуют дополнительной настройки, а некоторые вовсе не удается запустить.

ION Storm запущенная нативно:  

ION Maiden, нативная версия для Linux, установленная из Steam

ION Maiden, нативная версия для Linux, установленная из Steam

Ex Machine запущенная через Proton:

Ex Machine, запущенная с использованием Proton

Ex Machine, запущенная с использованием Proton

Wine

Из репозиториев RED ОС можно выполнить установку WINE версии 8.2, что на мой взгляд достаточно свежея версия и позволит использовать некоторое количество Windows приложений.

DevOps

Здесь наблюдается та же проблема как и с любыми не «mainline» (Debian\Ubuntu\CentOS\Fedora) дистрибутивами. Многие ansible-роли не будут работать т.к. не пройдут проверку ansible_distribution. Но в отличие от ALT Linux правки будут намного проще т.к. RED ОС родственник CentOS, так например для роли geerlingguy.nginx мне пришлось внести лишь пару правок вида «or (ansible_distribution == «REDOS»)». В документации RED ОС есть статья по установке Kubernetes версии 1.24, если нужна версия поновее то придется разбираться самому или искать помощи на просторах Интернета. В репозитории есть пакеты docker версии 20.10.24 и VirtualBox версии 6.1.42, также в наличии и podman. minikube работает без проблем как с docker так и c VirtualBox драйверами:  

k8s, запущенный с помощью minikube

k8s, запущенный с помощью minikube

Софт в репозиториях RED ОС не «bleeding edge», но и не такой старый как у CentOS 7 (хм… интересная строка выводы версии для gcc):

 - docker-ce-20.10.24
 - Python 3.8.2
 - gcc версия 8.3.1 20191121 (Red Hat 8.3.1-6) (GCC) 
 - go version go1.19.5
 - VirtualBox Версия 6.1.42_REDSOFT  
 - openjdk version "1.8.0_275"
 - java-17-openjdk-1:17.0.1.0.12
 - Linux 5.15.87
 - wine-8.2 (Staging)
 - openssl-1.1.1q-7.el7.3.x86_64
 - openssh-server-8.9p1-7.el7.x86_64
 - glibc-2.28-8.el7.x86_64
 - ansible-2.9.27-3.el7.noarch
 - kernel 5.15.87-1
 - wine-8.2-2.el7.x86_64

Также в репозиторих есть Zabbix 6-ой версии, множество различных экспортеров для Prometheus, а вот самого Prometheus нету:

[manul@localhost ~]$ dnf search prometheus
Последняя проверка окончания срока действия метаданных: 0:01:16 назад, Вс 05 ноя 2023 10:58:16.
======================================================================= Имя и Краткое описание совпадение: prometheus ========================================================================
ceph-prometheus-alerts.noarch : Prometheus alerts for a Ceph deplyoment
collectd-write_prometheus.i686 : Prometheus output plugin for collectd
collectd-write_prometheus.x86_64 : Prometheus output plugin for collectd
golang-github-grpc-ecosystem-prometheus-devel.noarch : Prometheus monitoring for your gRPC Go servers and clients
golang-github-m3db-prometheus-client-devel.noarch : Prometheus instrumentation library for Go applications
golang-github-m3db-prometheus-client-model-devel.noarch : Data model artifacts for Prometheus
golang-github-prometheus.i686 : Prometheus monitoring system and time series database
golang-github-prometheus.x86_64 : Prometheus monitoring system and time series database
golang-github-prometheus-alertmanager.i686 : Prometheus Alertmanager
golang-github-prometheus-alertmanager.x86_64 : Prometheus Alertmanager
golang-github-prometheus-alertmanager-devel.noarch : Prometheus Alertmanager
golang-github-prometheus-client-devel.noarch : Prometheus instrumentation library for Go applications
golang-github-prometheus-client-model-devel.noarch : Data model artifacts for prometheus
golang-github-prometheus-common-devel.noarch : Go libraries shared across prometheus components and libraries
golang-github-prometheus-common-promlog-devel.noarch : Go libraries shared across prometheus components and libraries
golang-github-prometheus-devel.noarch : Prometheus monitoring system and time series database
golang-github-prometheus-log-devel.noarch : Prometheus Logging Library
nginx-prometheus-exporter.i686 : NGINX Prometheus Exporter for NGINX and NGINX Plus
nginx-prometheus-exporter.x86_64 : NGINX Prometheus Exporter for NGINX and NGINX Plus
prometheus-jmx-exporter.noarch : Prometheus JMX Exporter
prometheus-jmx-exporter-openjdk11.noarch : OpenJDK 11 binding for prometheus-jmx-exporter
prometheus-jmx-exporter-openjdk17.noarch : OpenJDK 17 binding for prometheus-jmx-exporter
prometheus-jmx-exporter-openjdk8.noarch : OpenJDK 1.8.0 binding for prometheus-jmx-exporter
prometheus-postgres_exporter.i686 : A PostgreSQL metric exporter for Prometheus
prometheus-postgres_exporter.x86_64 : A PostgreSQL metric exporter for Prometheus
python3-celery-prometheus-exporter.i686 : Exporter for Celery related metrics in order to get picked up by Prometheus
python3-celery-prometheus-exporter.x86_64 : Exporter for Celery related metrics in order to get picked up by Prometheus
python3-django-prometheus.noarch : Django middlewares to monitor your application with Prometheus
python3-prometheus-client.noarch : Python client for the Prometheus monitoring system
rubygem-prometheus-client-doc.noarch : Documentation for rubygem-prometheus-client
================================================================================= Имя совпадение: prometheus =================================================================================
golang-github-prometheus-exporter-toolkit-devel.noarch : Utility package to build exporters
golang-github-prometheus-procfs-devel.noarch : Retrieve system, kernel and process metrics from proc
prometheus-node_exporter.i686 : Exporter for machine metrics
prometheus-node_exporter.x86_64 : Exporter for machine metrics
rubygem-prometheus-client.noarch : A suite of instrumentation metric primitivesthat can be exposed through a web services interface
========================================================================== Краткое описание совпадение: prometheus ===========================================================================
clickhouse-exporter.i686 : Clickhouse Exporter for Prometheus
clickhouse-exporter.x86_64 : Clickhouse Exporter for Prometheus
golang-github-clickhouse-exporter-devel.noarch : Clickhouse Exporter for Prometheus
golang-github-danielqsj-kafka-exporter-devel.noarch : Kafka exporter for Prometheus
golang-github-msiedlarek-nifi-exporter-devel.noarch : Apache NiFi metrics exporter for Prometheus
golang-github-mwitkow-conntrack-devel.noarch : Go middleware for net.conn tracking (prometheus/trace)
kafka-exporter.i686 : Kafka exporter for Prometheus
kafka-exporter.x86_64 : Kafka exporter for Prometheus
nifi-exporter.i686 : Apache NiFi metrics exporter for Prometheus
nifi-exporter.x86_64 : Apache NiFi metrics exporter for Prometheus
python3-starlette-exporter.i686 : Prometheus exporter for Starlette and FastAPI
python3-starlette-exporter.x86_64 : Prometheus exporter for Starlette and FastAPI
systemtap-exporter.i686 : Systemtap-prometheus interoperation mechanism
systemtap-exporter.x86_64 : Systemtap-prometheus interoperation mechanism
tomcat_exporter.i686 : A Prometheus exporter for Apache Tomcat
tomcat_exporter.x86_64 : A Prometheus exporter for Apache Tomcat

ИТОГ

RED ОС подобен CentOS, но только это RED ОС. На мой взгляд для домашнего использования лучше взглянуть на тот же ALT Linux или другие более распространенные дистрибутивы, например, Linux Mint. В случае использования на серверах RED ОС не плохой выбор — получаем в меру консервативную и стабильную ОС, особенно если если есть потребность использовать ПО из реестра Отечественного ПО. Обширная русскоязычная документация и база знаний будет весьма полезна как начинающим так и опытным пользователям и администраторам. Я в своей практике это уже оценил — вместо тысячи строк в Telegram и кучи созвонов можно отправить ссылку на базу знаний и снабдить комментариями для конкретного случая.

© Habrahabr.ru