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

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

См. также: Создание локальных и сетевых репозиториев

Предупреждение
Не забывайте удалять сторонние репозитории после завершения их использования.



Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

  • Astra Linux Common Edition 2.12


Информация

Таблицы соответствия версий Astra Linux CE/Astra Linux SE и Debian можно посмотреть по ссылке: Дополнительные пакеты и СПО

Таблицы соответствия версий Astra Linux CE/Astra Linux SE и аппаратных платформ можно посмотреть по ссылке Таблица вариантов исполнения Astra Linux Special Edition.



Примечание
titleПримечание

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

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

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

Command
sudo -s
...
exit


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

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

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

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

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

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

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

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

Command
sudo apt-cdrom add

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

Command
borderColor#c2e6ff
bgColor#e2f3ff

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. Значения приоритетов репозиториев:
    P > 1000causes a version to be installed even if this constitutes a downgrade of the package.990 < P <=1000causes a version to be installed even if it does not come from the target release, unless the installed version is more recent.500 < P <=990causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent.100 < P <=500causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent.0 < P <=100causes a version to be installed only if there is no installed version of the package.P < 0
    Подробности см. по ссылке

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

  • неподписанные репозитории имеют меньший приоритет, чем подписанные;

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

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

Command

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

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

Информация

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

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

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

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo apt-cdrom add
    sudo apt update


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

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

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

  2. Создать копию диска на локальном жестком диске. Это можно сделать выполнив команду:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

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

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

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

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


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

    Блок кода
    title/etc/apt/sources.list
    deb file:///<путь> ...
    deb file:/<путь> ...


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

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo apt update


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

    Информация

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


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

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

    Информация

    sudo apt install apt-transport-https ca-certificates

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

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

    Блок кода
    title/etc/apt/sources.list
    deb https://dl.astralinux.ru/astra/stable/2.12_x86-64/repository orel main contrib non-free


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

    Command

    sudo apt update


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

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

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

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

2.12:

  1. Установить пакет  debian-archive-keyring:

    Command
    sudo apt install debian-archive-keyring 


  2. Добавить описание репозиториев, например, в файл /etc/apt/sources.list.d/buster.list:

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

      Блок кода
      deb https://deb.debian.org/debian/               buster         main contrib non-free
      deb https://security.debian.org/debian-security/ buster/updates main contrib non-free


    2. Для Astra Linux Common Edition:

      Блок кода
      deb https://deb.debian.org/debian/               stretch         main contrib non-free
      deb https://security.debian.org/debian-security/ stretch/updates main contrib non-free


  3. В зависимости от поставленных задач использования подключенного репозитория дополнительно для Astra Linux Common Edition может понадобиться отменить приоритет репозитория Astra Linux Common Edition, для чего удалить файл 

    /etc/apt/preferences.d/orel (или изменить в нем приоритет репозитория);

  4. Обновить кеш пакетов:

    Command
    sudo apt update


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

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

    1. после подключения репозитория Astra Linux Common Edition - командами:

      Command
      sudo apt update
      sudo apt install debian-arhive-keyring


    2. или без подключения репозитория Astra Linux Common Edition командами:

      Command

      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

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

    Command

    sudo apt install debian-archive-keyring dirmngr


  2. В файл /etc/apt/sources.list добавить ссылку на репозиторий Debian:

    Блок кода
    title/etc/apt/sources.list
    deb https://mirror.yandex.ru/debian/ stretch main contrib non-free
    


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

    Command

    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 относится третий, последний отпечаток

    .

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

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

    Commandwget 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

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

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

  1. Установить  ключ проверки подлинности репозитория:

    1. Установить пакет dirmngr (если он ранее не был установлен) и  :

      Command

      sudo apt install dirmngr


  2. Для получения ключа:

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

      sudo apt install dirmngr
      Command

      sudo apt-key adv --recv-keys --keyserver keyskeyserver.gnupgubuntu.net EF0F382A1A7B6500

      Если сервер keys.gnupg.net не отвечает или выдаёт ошибку вида "gpg: сбой при получении с сервера ключей: Нет данных" ,  то выполнить действия:

    2. Вариант 1. Временно изменить настройки DNS, оставив только сервер DNS 8.8.8.8, после чего повторно получить ключи вышеуказанной командой.После успешного получения ключей настройки можно восстановить.

    3. Вариант 2. Попробовать получить ключи от других серверов, входящих в пул keys.gnupg.net. Актуальный список этих серверов доступен через WEB-интерфейс сайта keys.gnupg.net, пункт "About" в нижней части экрана.
      На момент написания статьи список такой:

      Информация
      • pool.sks-keyservers.net

      • na.pool.sks-keyservers.net

      • eu.pool.sks-keyservers.net

      • oc.pool.sks-keyservers.net

      • p80.pool.sks-keyservers.net

      • ipv4.pool.sks-keyservers.net

      • ipv6.pool.sks-keyservers.net

      • subset.pool.sks-keyservers.net

      com EF0F382A1A7B6500


    4. Вариант 2.  Для работы в закрытой сети можно

      Вариант 3.  Попробовать

      получить ключ через WEB-интерфейс на подключенной к Интернет машине по адресу репозитория (

      keys

      keyserver.

      gnupg

      ubuntu.

      net

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

      Command
      sudo 

      sudo apt-key add

      ИМЯ_ФАЙЛА.

      <имя_файла_с_ключем>


  3. После установки ключа репозитория обновить список пакетов:

    Command

    sudo apt update


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

Command

apt-key list


Предупреждение

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

Информация

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

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

В ситуации, когда репозиторий Debian доступен через прокси (зеркало), а сервер ключей при этом недоступен, ключи репозитория можно отдельно получить с сервера keys.gnupg.net (или с сервера keyserver.ubuntu.com).

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



Информация

sudo apt-key add ИМЯ_ФАЙЛА_С_КЛЮЧОМ

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

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

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

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

    Command

    sudo apt install dpkg-dev apt-utils


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

    Информация

    sudo mkdir /opt/repo
    cd /opt/repo


  3. Сохранить сценарий в файле с именем, например, 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


  4. Разрешить выполнение созданного файла:

    Command

    sudo chmod +x create-flat-repo


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

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

    Информация

    sudo ./create-flat-repo


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

    Command

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

    sudo apt update


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

Command

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


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

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

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

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


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

    Command
    sudo apt update


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


...