Дерево страниц

Данная статья применима к:

ПО из Astra Linux Special Edition 1.7 является сторонним ПО для Astra Liux Special Edition 1.6. Допустимость применения подобного ПО определяется требованиями к информационной системе.
См. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.

Рассмотренное в статье решение не поддерживает работу с МРД и МКЦ. Работоспособность приложений, запущенных по описанной ниже процедуре, не гарантируется. Техническая поддержка эксплуатации ПО в таком режиме не осуществляется.


Пакеты, входящие в состав Astra Linux Special Edition 1.7 (далее - 1.7) в большинстве случаев не могут быть установлены в Astra Linux Special Edition 1.6 (далее - 1.6), так как требуют для своей работы новые версии библиотек, недоступные в 1.6. Ниже описан возможный вариант запуска в 1.6 программ, входящих в такие пакеты. Описанная процедура может быть применена, например, для перехода к использованию версий программ с устраненными уязвимостями. В отличие от применения технологий chroot и виртуализации (см. Создание Docker-образов Astra Linux, Система контейнерной изоляции уровня ОС LXC, Виртуализация QEMU/KVM в Astra Linux) выполнение приложений осуществляется не в изолированной среде, а непосредственно в ОС.


  1. Подготовить копию файловой системы Astra Linux Special Edition 1.7. Это можно сделать следующими способами:
    1. Вариант 1. Скопировать файловую систему с машины с установленной Astra Linux Special Edition 1.7, для чего:
      1. На машине под управлением 1.7:

        1. Установить нужные пакеты;
        2. Создать архив chroot.tar.gz файловой системы 1.7:

          sudo tar --xattrs --acls -czf chroot.tar.gz \
                        --exclude=/proc \
                        --exclude=/lost+found \
                        --exclude=/mnt \
                        --exclude=/media \
                        --exclude=/home \
                        --exclude=/sys \
                        --exclude=/run \
                        --exclude=/dev \
                        --exclude=/tmp \
                        --exclude=/parsecfs \
                        --exclude=/var/log \
                        --exclude=/boot \
                        --warning='no-file-ignored'   /
          Набор опций исключения каталогов из архива (--exclude) может быть другим в зависимости от установленных пакетов. Выдаваемые при создании архива предупреждения "... сокет проигнорирован" можно игнорировать. Подробнее про опции архивирования см. Архивирование и восстановление файлов с сохранением мандатных атрибутов;

      2. Перенести созданный архив на машину под управлением 1.6;
      3. На машине под управлением 1.6:
        1. Создать каталог для распаковки архива, например, каталог /run/chroot;

          sudo mkdir /opt/chroot

        2. Распаковать архив в созданный каталог:

          sudo tar --acls -xzf chroot.tar.gz -C /opt/chroot

    2. Вариант 2. На машине под управлением 1.6:
      1. Установить пакет debootstrap:

        sudo apt install debootstrap

      2. Создать chroot-окружение 1.7, например, используя Интернет-репозитории Astra Linux Special Edition x.7:

        sudo debootstrap --include ncurses-term,mc,locales,nano,gawk,lsb-release,acl,perl-modules-5.28 \
                                    --components=main,contrib,non-free 1.7_x86-64 \
                                    /opt/chroot \
                                   
        http://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main

      3. Настроить в chroot-окружении репозитории;

      4. Установить в chroot-окружении нужные пакеты:

        sudo chroot /opt/chroot apt update
        sudo chroot /opt/chroot apt install <имя_пакета>

  2. Независимо от выбранного способа создания файловой системы для удобства работы сохранить список каталогов библиотек (каталог /opt/chroot/usr/lib и его подкаталоги) в переменной окружения:

    chlibs=/opt/chroot/usr/lib/
    for d in /opt/chroot/usr/lib/* ; do
        [ -d $d ] && chlibs=$chlibs:$d
    done
    Список сохраняется в переменной окружения chlibs;

  3. Далее команда из 1.7 в операционной среде 1.6 может быть вызвана следующим образом:

    /opt/chroot/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 --library-path $chlibs  /opt/chroot/<путь_к_команде>
    например, для выполнения команды python3:
    /usr/lib/x86_64-linux-gnu$ /opt/chroot/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 --library-path $chlibs  /opt/chroot/usr/bin/python3

Пример:

Astra Linux Specail Edition 1.6 с одновременно запущенными текстовыми редакторами Kate версий 19 (из 1.6) и 20 (из 1.7):


  • Нет меток