Добавить в корзинуПозвонить
Найти в Дзене
Калейдоскоп эмоций

Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов

Примечание Все команды, которые вносят изменения в систему, выполняются: То есть, команды выполняются либо применяя sudo для каждой выполняемой команды, либо для группы команд - после входа в сессию администратора: sudo -s
...
exit Установка пакетов при подключенном репозитории производится в терминале командой: sudo apt install <имя пакета>... также установка пакетов и настройка репозиториев может производиться с помощью Графический менеджер пакетов synaptic. Описание структуры папок на dl.astralinux.ru и его зеркалах Интернет-репозитории Astra Linux Special Edition x.7 Интернет-репозитории Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) Интернет-репозитории Astra Linux Common Edition 2.12 Выбор репозиториев Для того, чтобы указать программам - установщикам пакетов репозитории для выбора пакетов следует для каждого репозитория сформировать строку вида: deb <путь_корневому_каталогу_репозитория> <код_дистрибутива> <список_компонент> Эти строки добавить в файл /etc/a
Оглавление

Примечание

Все команды, которые вносят изменения в систему, выполняются:

  • в Astra Linux - с правами администратора системы;
  • в Astra Linux Special Edition с включенным МКЦ - с правами администратора системы с высоким уровнем целостности;

То есть, команды выполняются либо применяя sudo для каждой выполняемой команды, либо для группы команд - после входа в сессию администратора:

sudo -s
...
exit

Установка пакетов при подключенном репозитории производится в терминале командой:

sudo apt install <имя пакета>...

также установка пакетов и настройка репозиториев может производиться с помощью Графический менеджер пакетов synaptic.

Описание структуры папок на dl.astralinux.ru и его зеркалах

Интернет-репозитории Astra Linux Special Edition x.7

Интернет-репозитории Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

Интернет-репозитории Astra Linux Common Edition 2.12

Выбор репозиториев

Для того, чтобы указать программам - установщикам пакетов репозитории для выбора пакетов следует для каждого репозитория сформировать строку вида:

deb <путь_корневому_каталогу_репозитория> <код_дистрибутива> <список_компонент>

Эти строки добавить в файл /etc/apt/sources.list или в файлы с произвольными именами и расширением .list, расположенные в каталоге /etc/apt/sources.list.d.

Для указания в качестве репозитория оптического диска установить диск в привод и использовать команду:

sudo apt-cdrom add

После каждого внесения изменений в список репозиториев следует обновить списки пакетов:

sudo apt update

Приоритеты репозиториев

Установщик пакетов по умолчанию, если иное не задано в файлах настройки приоритетов репозиториев, старается устанавливать самые новые версии пакетов.
При этом изменения номеров минорных версий установщиком не учитываются, т.е.:

  • При возможности установки пакетов пакет_1.1.1-100 и пакет_1.1.2-1 (отличие в последней цифре номера мажорной версии) будет установлен пакет_1.1.2, как имеющий старшую мажорную версию;
  • При возможности установки пакетов пакет_1.1.1-1 и пакет_1.1.1-100 (мажорные версии совпадают (1.1.1), отличия в минорных версиях - 1 и 100) будет установлен первый найденный в репозиториях вариант пакета.

Приоритеты выбора репозиториев задаются в каталоге /etc/apt/preferences.d/ или в файле /etc/apt/preferences. Подробности см. по ссылке

Если приоритеты выбора репозитория не заданы явно, то

  • неподписанные репозитории имеют меньший приоритет, чем подписанные;
  • репозитории обрабатываются в порядке их перечисления в конфигурационных файлах.

Проверить приоритеты репозиториев для конкретного пакета можно командой:

apt-cache policy <имя_пакета>

Подключение репозиториев на оптических дисках

Использовать репозитории на оптических дисках не рекомендуется, так как работа с ними сложна и неудобна. Рекомендованным вариантом является использование сетевых репозиториев или репозиториев в локальной файловой системе (см. Создание локальных и сетевых репозиториев).

Для подключения репозиториев на оптических дисках:

  1. Установить диск в привод и выполнить команды:

sudo apt-cdrom add
sudo apt update

Указанную процедуру повторить для каждого используемого диска. В дальнейшем для установки пакетов нужно будет устанавливать зарегистрированные диски по мере необходимости.

Подключение репозиториев, скопированных на локальный жесткий диск

  1. Перед копированием данных на локальный жесткий диск рекомендуется убедиться, что  в файловой системе достаточно свободного места. См. Анализ и оптимизация заполнения дискового пространства.
  2. Создать копию диска на локальном жестком диске. Это можно сделать выполнив команду:

sudo dd if=/dev/cdrom of=<имя_файла_с_образом_диска> bs=1M

или просто скопировав содержимое диска в выбранный каталог, предварительно смонтировав диск.

Смонтировать iso файл в выбранный каталог можно выполнив команду:

sudo mount -o loop <имя_файла_с_образом_диска> <каталог_монтирования>

Для обозначения примонтированных образов или скопированных репозиториев в описании пути к репозиторию применяется тег "file://" или "file:". С учетом того, что путь обычно начинается от корневого каталога допустимы две формы:/etc/apt/sources.listdeb file:///<путь> ...deb file:/<путь> ...

Обновить списки пакетов:

sudo apt update

Для автоматического монтирования сохраненного ISO-образа добавить в файл /etc/fstab строку вида:

<полное_имя_файла_с_образом> /opt/repo iso9660 defaults 0 0

Подключение сетевых репозиториев

Для использования сетевых репозиториев, работающих по протоколу HTTPS убедитесь, что в системе установлены пакеты apt-transport-https и ca-certificates, обеспечивающие возможность загрузки пакетов с использованием этого протокола . Если нет - то установите их:

sudo apt install apt-transport-https ca-certificates

Для установки можно использовать также протокол HTTP.

В файле /etc/apt/sources.list указать путь к сетевому репозиторию (тег https:// или http:// или ftp://),  например:

/etc/apt/sources.listdeb https://dl.astralinux.ru/astra/stable/2.12_x86-64/repository orel main contrib non-free

Обновить списки пакетов:

sudo apt update

Подключение сторонних репозиториев

Подключение репозиториев Debian

С установкой пакета debian-archive-keyring

Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и Astra Linux Common Edition

Установить пакет  debian-archive-keyring:sudo apt install debian-archive-keyring

Добавить описание репозиториев, например, в файл /etc/apt/sources.list.d/buster.list:
Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7):

deb https://deb.debian.org/debian/               buster         main contrib non-freedeb

https://security.debian.org/debian-security/ buster/updates main contrib non-free
Для Astra Linux Common Edition:

deb https://deb.debian.org/debian/               stretch         main contrib non-freedeb

https://security.debian.org/debian-security/ stretch/updates main contrib non-free

  1. В зависимости от поставленных задач использования подключенного репозитория дополнительно для Astra Linux Common Edition может понадобиться отменить приоритет репозитория Astra Linux Common Edition, для чего удалить файл/etc/apt/preferences.d/orel (или изменить в нем приоритет репозитория);
  2. Обновить кеш пакетов:sudo apt update

Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

Пакет debian-archive-keyring может быть установлен из репозитория Astra Linux Common Edition:
после подключения репозитория Astra Linux Common Edition - командами:

sudo apt update
sudo apt install debian-arhive-keyring
или без подключения репозитория Astra Linux Common Edition командами:

wget https://dl.astralinux.ru/astra/testing/orel/repository/pool/main/d/debian-archive-keyring/debian-archive-keyring_2017.5_all.deb
sudo apt install ./debian-archive-keyring_2017.5_all.deb

В примере указана версия пакета, доступная на момент обновления настроящей статьи, при изменении версии команда должна быть откорректирована.

Для Astra Linux Common Edition 2.12

Установить пакет dirmngr для управления ключами и пакет debian-archive-keyring, содержащий ключи к репозиториям Debian:sudo apt install debian-archive-keyring dirmngr

В файл /etc/apt/sources.list добавить ссылку на репозиторий Debian:/etc/apt/sources.listdeb https://mirror.yandex.ru/debian/ stretch main contrib non-free

После добавления ссылки выполнить команду:

sudo apt update

Если пакет debian-archive-keyring установлен, то команда должна отработаться без ошибок.
Если пакет debian-archive-keyring не установлен, то команда сообщит, что не может проверить подписи репозитория, и сообщит, какие именно ключи нужны для проверки.
Пример сообщения ниже, отпечатки ключей выделены жирным шрифтом:....Чтение списков пакетов… Готово                                                                                                                                     

W: Ошибка GPG: http://mirror.yandex.ru/debian stretch Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010 NO_PUBKEY EF0F382A1A7B6500


E: Репозиторий «http://mirror.yandex.ru/debian stretch Release» не подписан.


N: Обновление из этого репозитория нельзя выполнить безопасным способом, и поэтому по умолчанию он отключён.


N: Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.На момент написания этой статьи к репозиторию Stretch относится третий, последний отпечаток.

Без установки пакета debian-archive-keyring

Установить  ключ проверки подлинности репозитория:
Установить пакет dirmngr (если он ранее не был установлен):

sudo apt install dirmngr

Для получения ключа:
Вариант 1. При наличии доступа к сети Интернет использовать команду apt-key с указанием нужного отпечатка ключа:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com EF0F382A1A7B6500

Вариант 2.  Для работы в закрытой сети можно получить ключ через WEB-интерфейс на подключенной к Интернет машине по адресу репозитория (keyserver.ubuntu.com),  указав в поле поиска код ключа в виде 0xE1F958385BFE2B6E (т.е. с лидирующими символами 0x и без лидирующих и завершающих пробелов), открыть ключ в WEB-браузере, копировать и сохранить в текстовом файле на локальной машине. Сохраненный ключ перенести на нужную машину и импортировать командой:

sudo apt-key add <имя_файла_с_ключем>

  1. После установки ключа репозитория обновить список пакетов:
  2. sudo apt update

Ключ репозитория Stretch действителен до 2025-го года, если установлен пакет debian-archive-keyring ключи будут обновляться автоматически по мере обновления пакета. Проверить список установленных ключей можно командой

apt-key list

Использовать подключенный репозиторий можно и не имея ключей, однако данный способ не рекомендуется к применению, так как при этом проверка подлинности данных, получаемых из репозитория, становится невозможной. Для отключения проверки ключей в определении репозитория нужно указать дополнительный ключ trusted=yes:

deb [trusted=yes] https://download.astralinux.ru/astra/stable/orel/repository orel contrib main non-free

Сценарий создания собственного простого репозитория

Данный сценарий позволяет создать собственный репозиторий из произвольного набора ранее скачанных пакетов формата deb (двоичных пакетов Debian). Сценарий позволяет указать в качестве аргумента вызова код дистрибутива (orel, smolensk и т.д.), а если никакая версия не указана - то используется код текущей системы. Репозиторий создаётся в текущем каталоге. Дополнительно после завершения создания репозитория в текущем каталоге создаётся файл со строкой-ссылкой на созданный репозиторий для списка источников пакетов.

Порядок применения:

Установить необходимые для создания репозитория пакеты, если они не были установлены ранее:

sudo apt install dpkg-dev apt-utils

Создать каталог, в котором будет размещён репозиторий, и перейти в этот каталог, например, каталог /opt/repo:sudo mkdir /opt/repo
cd /opt/repo

Сохранить сценарий в файле с именем, например, create-flat-repo:

#!/bin/bash

CODENAME="${1:-`sed -n "s/^DISTRIB_CODENAME=//p" /etc/lsb-release`}"
if [ -z "$CODENAME" ] ; then
        echo "Имя дистрибутива не определено, укажите вручную как аргумент команды"
        exit 1
else
        echo "Имя дистрибутива определено как \"$CODENAME\""
fi

V=1.0

ARCH=$(dpkg-architecture -q DEB_BUILD_ARCH)
mkdir -p dists/$CODENAME/main/binary-$ARCH
dpkg-scanpackages -a $ARCH . > dists/$CODENAME/main/binary-$ARCH/Packages
echo -e "Origin: Debian\nSuite: unstable\nCodename: $CODENAME\nVersion: $V\nArchitectures: $ARCH\nComponents: main" > dists/$CODENAME/Release
apt-ftparchive release . >> dists/$CODENAME/Release
dpath=$(readlink -f .)
echo deb [trusted=yes arch=$ARCH] file:$dpath $CODENAME main > $CODENAME.list
#echo deb [trusted=yes arch=$ARCH] file:$dpath $CODENAME main > /etc/apt/sources.list.d/$CODENAME.list

Разрешить выполнение созданного файла:sudo chmod +x create-flat-repo

Скопировать (загрузить)  в текущий каталог пакеты .deb, которые предполагается включить в создаваемый репозиторий;

Выполнить сценарий:

sudo ./create-flat-repo

По необходимости переместить или скопировать созданный файл .list в каталог списков источников пакетов /etc/apt/sources.list.d/ и обновить списки пакетов:

sudo cp *.list /etc/apt/sources.list.d/sudo apt update

После выполнения указанных операций установку пакетов из созданного репозитория можно будет выполнять стандартной командой:

sudo apt install имя_пакета

Решение проблемы одинаковых версий пакетов при подключении нескольких репозиториев

При смене репозиториев установка пакетов может затрудняться тем, что в используемых репозиториях оказываются пакеты с одинаковыми версиями.
Для устранения этой проблемы (и, возможно, в качестве профилактической меры при частой смене репозиториев) следует:

Очистить сохраненные списки пакетов, содержащие информации о ранее использовавшихся репозиториях:

sudo rm -rf /var/lib/apt/lists/*

Обновить списки пакетов в соответствии с актуальным списком репозиториев:

sudo apt update

После выполнения указанных операций установка пакетов выполняется в обычном порядке.

Источник

#astra #linux #репозиторий