Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12


Исходные данные

Для размещения и распространения репозиториев используется сервер Astra Linux с настроенным сетевым интерфейсом, имеющим статический IP-адрес 192.168.56.1 (см. Настройка сетевых подключений в Astra Linux).

Структура каталогов репозитория, используемая далее в статье:

  • каталог /srv/repo/alse/main - основной репозиторий для Astra Linux x.7 или репозиторий основного диска для более ранних обновлений;
  • каталог /srv/repo/alse/base - базовый репозиторий для Astra Linux x.7 или репозиторий диска со средствами разработки для более ранних обновлений;
  • каталог /srv/repo/alse/update-main - репозиторий обновления основного репозитория (основного диска);
  • каталог /srv/repo/alse/update-base - репозиторий обновления базового репозитория (диска со средствами разработки);

Якорь
repo-from-iso
repo-from-iso
Astra Linux Special Edition: создание репозитория из ISO-образов установочных дисков

Создать каталог для размещения репозитория:

Command

sudo mkdir -p /srv/repo/alse/main

Примонтировать образ установочного диска (если на компьютере нет каталога /media/cdrom - то создать каталог /media/cdrom):

Command

[ -d /media/cdrom ] || sudo mkdir /media/cdrom
sudo mount /путь_к_ISO-образу /media/cdrom

Скопировать файлы из образа в каталог репозитория:

Command

sudo cp -a /media/cdrom/* /srv/repo/alse/main

Отмонтировать ISO-образ диска:

Command

sudo umount /media/cdrom

Если требуется, выполнить аналогичные действия для базового репозитория  (диска со средствами разработки):

Command

sudo mkdir -p /srv/repo/alse/base
[ -d /media/cdrom ] || sudo mkdir /media/cdrom
sudo mount /путь_к_ISO-образу /media/cdrom
sudo cp -a /media/cdrom/* /srv/repo/alse/base
sudo umount /media/cdrom

Для обновления основного репозитория (основного диска):

Command

sudo mkdir -p /srv/repo/alse/update-main
[ -d /media/cdrom ] || sudo mkdir /media/cdrom
sudo mount /путь_к_ISO-образу /media/cdrom
sudo cp -a /media/cdrom/* /srv/repo/alse/update-main
sudo umount /media/cdrom

Для обновления базового репозитория (диска с обновлением средств разработки):

Command

sudo mkdir -p /srv/repo/alse/update-base
[ -d /media/cdrom ] || sudo mkdir /media/cdrom
sudo mount /путь_к_ISO-образу /media/cdrom
sudo cp -a /media/cdrom/* /srv/repo/alse/update-base
sudo umount /media/cdrom

Astra Linux Common Edition: создание репозитория

Создать репозиторий Astra Linux Common Edition можно двумя способами:

  1. Либо скопировать неполный репозиторий с ISO образа диска:

    Command

    sudo mkdir -p /srv/repo/alce
    [ -d /media/cdrom ] || sudo mkdir /media/cdrom
    sudo mount /путь_к_ISO-образу_диска /media/cdrom
    sudo cp -a /media/cdrom/* /srv/repo/alce
    sudo umount /media/cdrom


  2. Либо загрузить полный репозиторий из сети:

    Command

    sudo mkdir -p /srv/repo/alce
    sudo rsync --delete -aqLz dl.astralinux.ru::astra/astra/stable/2.12_x86-64/repository/ /srv/repo/alce

    где "::astra" - указание наименования модуля rsync, а /astra/stable/2.12_x86-64/repository - загружаемый каталог репозитория. Можно также использовать альтернативный формат указания модуля rsync как корневого каталога:

    Command
    sudo rsync --delete -aqLz rsync://dl.astralinux.ru/astra/astra/stable/2.12_x86-64/repository /srv/repo/alce

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

    Command

    sudo rsync --progress --stats --delete -avLz rsync://dl.astralinux.ru/astra/astra/stable/2.12_x86-64/repository /srv/repo/alce

    Подробную информацию по опциям команды rsync см. man rsync.

    Информация
    Для web-браузеров ссылка отличается: https://dl.astralinux.ru/astra/stable/2.12_x86-64/repository/


Организация распространения пакетов

Отдавать пакеты можно как по протоколу ftp, так и по http.

Если на сервере, на котором размещён репозиторий, используется межсетевой экран, то для раздачи пакетов должны быть открыты следующие порты:

  • Для протокола FTP:
    • Порт 21/TCP для команд;
    • Порт 20/TCP для данных;
    • Порты 49152-65534/TCP динамически;
  • Для протокола HTTP:
    • Порт 80/TCP;
  • Для протокола HTTPS:
    • Порт 443/TCP;
  • Для протокола rsync:
    • Порт 873/TCP;

FTP репозиторий

Установить службу FTP (подробнее см. Использование протокола FTP):

Command

sudo apt install vsftpd

В конфигурационный файл /etc/vsftpd.conf внести следующие данные:

Информация

listen=yes
listen_ipv6=no

# Анонимный доступ разрешен
anonymous_enable=YES
local_enable=no
anon_root=/srv/repo
no_anon_password=yes
hide_ids=yes

Перезапустить сервис ftp:

Информация
sudo systemctl restart vsftpd


HTTP репозиторий

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

Данная часть инструкции применима только к "чистому" свежеустановленному серверу Apache2. Для применения инструкции к настроенному серверу следует обратиться к администратору этого сервера.

Для применения данной инструкции на Astra Linux Special Edition с включенным МРД необходимо в файле настроек /etc/apache2/apache2.conf указать параметр AstraMode off и перезапустить сервис  Apache2. Допустимость использования ОС с такими настройками определяется действующей политикой безопасности на объекте.

Установить web-сервер:

Command

sudo apt install apache2

Создать символьную ссылку на репозиторий:

Command

sudo ln -s /srv/repo /var/www/html/

В /etc/apache2/sites-enabled/000-default.conf после строки DocumentRoot /var/www/html добавить:

  1. Для apache2 версии 2.4:

    Информация

    <Directory /var/www/html/repo>
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Require all granted
    </Directory>


  2. Для apache2 версии 2.2:

    Информация

    <Directory /var/www/html/repo>
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Allow from all
    </Directory>


Перезапустить web-сервер:

Command

sudo systemctl restart apache2

Настройка источников пакетов (файл /etc/apt/sources.list и каталог /etc/apt/sources.list.d)

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

Локальные источники пакетов

Для Astra Linux Special Edition x.7:

Информация

# репозиторий основного диска
deb file:/srv/repo/alse/
main stable main contrib non-free
# репозиторий диска со средствами разработки
deb file:/srv/repo/alse/base stable main contrib non-free
# репозиторий диска с обновлением основного диска
deb
file:/srv/repo/alse/update-main stable main contrib non-free
# репозиторий диска с обновлением диска со средствами разработки
deb
file:/srv/repo/alse/update-base stable main contrib non-free

Для Astra Linux Special Edition 1.6:

Информация

# репозиторий основного диска
deb file:/srv/repo/alse/
main smolensk main contrib non-free
# репозиторий диска со средствами разработки
deb file:/srv/repo/alse/base smolensk main contrib non-free
# репозиторий диска с обновлением основного диска
deb
file:/srv/repo/alse/update-main smolensk main contrib non-free
# репозиторий диска с обновлением диска со средствами разработки
deb
file:/srv/repo/alse/update-base smolensk main contrib non-free

FTP

Для Astra Linux Common Edition:

Информация

deb ftp://192.168.56.1/alce/ stable main contrib non-free

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

Информация

# репозиторий основного диска
deb ftp:
//192.168.56.1/alse/main stable main contrib non-free
# репозиторий диска со средствами разработки
deb ftp:
//192.168.56.1/alse/base stable main contrib non-free
# репозиторий диска с обновлением основного диска
deb ftp://192.168.56.1/alse/update-main stable main contrib non-free
# репозиторий диска с обновлением диска со средствами разработки
deb ftp:
//192.168.56.1/alse/update-base stable main contrib non-free

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

Информация

# репозиторий основного диска
deb ftp:
//192.168.56.1/alse/main smolensk main contrib non-free
# репозиторий диска со средствами разработки
deb ftp:
//192.168.56.1/alse/base smolensk main contrib non-free
# репозиторий диска с обновлением основного диска
deb ftp://192.168.56.1/alse/update-main smolensk main contrib non-free
# репозиторий диска с обновлением диска со средствами разработки
deb ftp:
//192.168.56.1/alse/update-base smolensk main contrib non-free

Для Astra Linux Special Edition  x.7 примеры указания репозиториев см. в статье Интернет-репозитории Astra Linux Special Edition x.7

HTTP

Для Astra Linux CE:

Информация

deb http://192.168.56.1/repo/alce stable main contrib non-free

Для Astra Linux Special Edition x.7:

Информация

# репозиторий основного диска
deb http:
//192.168.56.1/repo/alse/main stable main contrib non-free
# репозиторий диска со средствами разработки
deb http:
//192.168.56.1/repo/alse/base stable main contrib non-free
# репозиторий диска с обновлением основного диска
deb http:
//192.168.56.1/repo/alse/update-main stable main contrib non-free
# репозиторий диска с обновлением диска со средствами разработки
deb http:
//192.168.56.1/repo/alse/update-base stable main contrib non-free


Для Astra Linux Special Edition 1.6:

Информация

# репозиторий основного диска
deb http:
//192.168.56.1/repo/alse/main smolensk main contrib non-free
# репозиторий диска со средствами разработки
deb http:
//192.168.56.1/repo/alse/base smolensk main contrib non-free
# репозиторий диска с обновлением основного диска
deb http:
//192.168.56.1/repo/alse/update-main smolensk main contrib non-free
# репозиторий диска с обновлением диска со средствами разработки
deb http:
//192.168.56.1/repo/alse/update-base smolensk main contrib non-free


Создание локальной копии репозитория с помощью apt-mirror

Инструмент командной строки apt-mirror позволяет создавать локальные копии сетевых репозиториев пакетов. Инструмент использует конфигурационный файл, подобный конфигурационному файлу apt /etc/apt/sources.list, поддерживает многопоточную загрузку, работу с разными архитектурами, обеспечивает удаление неиспользуемых файлов, позволяет работать с ненадежными и перегруженными линиями передачи данных.

Установка пакета apt-mirror

Установить пакет apt-mirror можно с помощью графического менеджера пакетов или командой:

Command
sudo apt install apt-mirror

Настройка пакета apt-mirror

При установке пакета автоматически создается конфигурационный файл /etc/apt/mirror.list. В этом файле указаны параметры, принятые по умолчанию, и пути к копируемым репозиториям. Пример содержимого файла:

Блок кода
############# config ##################
#
# set base_path    /var/spool/apt-mirror
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

В большинстве случаев можно использовать указанные настройки, при этом копии репозиториев будут загружаться в каталог /var/spool/apt-mirror. Для того, чтобы изменить каталог, в который будут загружаться репозитории следует раскомментировать параметр set base_path и указать нужный каталог.

Репозитории для загрузки указываются в конфигурационном файле /etc/apt/mirror.list в формате, подобном /etc/apt/sources.list. Там же могут быть указаны параметры для очистки. Например, для основного репозитория Astra Linux Special Edition 1.7:

Блок кода
############# config ##################
#
# set base_path    /var/spool/apt-mirror
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

# Стандартный интернет-репозиторий Astra Linux Special Edition 1.7
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64  main contrib non-free

# Репозиторий с авторизацией (admin:password) и нестандартным портом (8080)
deb https://admin:password@company.ru:8080/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64  main contrib non-free

# Удаление неиспользуемых файлов из репозитория (например, устаревших версий пакетов, отсутствующих в индексах)
clean https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/

# Пропуск указанных каталогов при очистке
skip-clean https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/installer-amd64/

Про использовании аппаратных платформ, отличных от x86-64, следует явно указывать используемую архитектуру. Например, для Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7):

Блок кода
deb [arch=arm64] https://dl.astralinux.ru/astra/stable/4.7_arm/repository-main/ 4.7_arm main contrib non-free
deb [arch=arm64] https://dl.astralinux.ru/astra/stable/4.7_arm/repository-update/ 4.7_arm main contrib non-free
deb [arch=arm64] https://dl.astralinux.ru/astra/stable/4.7_arm/repository-base/ 4.7_arm main contrib non-free

При установке пакета apt-mirror создается шаблон для службы cron для ежедневного автоматического обновления репозиториев (файл /etc/cron.d/apt-mirror). Для включения автоматического обновления следует раскомментировать последнюю строку в этом файле:

Блок кода
#
# Regular cron jobs for the apt-mirror package
#
#0 4    * * *   apt-mirror      /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

Создание копии репозитория

Создание и обновление копий рекомендуется выполнять от имени служебного пользователя apt-mirror. Этому пользователю должна быть разрешена запись в каталог, в который будет выполняться сохранение репозиториев. Создать каталог можно командой:

Command
sudo mkdir /var/spool/apt-mirror

Для примера использовано принятое по умолчанию имя каталога для сохранения /var/spool/apt-mirror.
После создания каталога его нужно передать служебному пользователю apt-mirror (назначить права доступа):

Command
sudo chown apt-mirror:apt-mirror /var/spool/apt-mirror

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

Command
sudo -u apt-mirror apt-mirror

Использование копии репозитория

После завершения копирования локальные копии всех репозиториев, указанных в mirror.list, будут сохранены в подкаталогах каталога mirror каталога для сохранения, а имя подкаталога будет соответствовать имени репозитория. Так копия интернет-репозитория Astra Linux Special Edition 1.7, приведенная в примере выше, будет сохранена как mirror/dl.astralinux.ru. С учетом принятого по умолчанию имени каталога для сохранения полный путь к каталогу репозитория будет /var/spool/apt-mirror/mirror/dl.astralinux.ru, и именно этот каталог нужно будет подключать как репозиторий пакетов к другим системам.

Кеширование репозиториев с помощью службы apt-cacher-ng

Установка

Информация
Данных раздел применим к Asrea Astra Linux Special Edition x.7 с подключенным расширенным репозиторием  начиная с обновления БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1.7.1).

Служба кеширования репозитория apt-cacher-ng представлена пакетом apt-cacher-ng. Пакет доступен в расширенном репозитории  начиная с обновления БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1.7.1) и может быть установлен с помощью Графический менеджер пакетов synaptic или командой:

Command
sudo apt install apt-cacher-ng

После установки пакета служба запускается автоматически и готова к работе. Конфигурационные файлы службы находятся в каталоге /etc/apt-cacher-ng. Кеш находится в каталоге /var/cache/apt-cacher-ng.

Служба использует порт 3142/tcp. При использовании межсетевого экрана следует разрешить доступ к этому порту. Например, для межсетевого экрана firewalld:

Command
firewall-cmd --permanent --zone public --add-port 3142/tcp

При использовании системы виртуализации разрешить доступ для виртуальных машин, расположенных на хосте. Например, для системы виртуализации QEMU/KVM:

Command
firewall-cmd --permanent --zone libvirt --add-port 3142/tcp


Настройка клиентов

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

Для переключения клиентских машин на работу через прокси можно на этих машинах создать файл с соответствующим правилом в каталоге /etc/apt/. Например, файл /etc/apt/7proxy со следующим правилом:

Блок кода
Acquire::http::Proxy "http://<IP-адрес_кеширующего_сервера>:3142";

Правило будет применяться при последующих обращениях к репозиториям.

Также можно определять порядок кеширования непосредственно в указаниях репозиториев, например:

Блок кода
deb http://<IP-адрес_кеширующего_сервера>/dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64  main contrib non-free

или для использования протокола HTTPS:

Блок кода
deb http://<IP-адрес_кеширующего_сервера>/HTTPS///dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64  main contrib non-free