| Информация | ||
|---|---|---|
|
|
|
Исходные данные
Сервер Astra Linux Для размещения и распространения репозиториев используется сервер 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 - репозиторий обновления базового репозитория (диска со средствами разработки);
| Якорь | ||
|---|---|---|
|
|
Создать каталог для размещения репозитория:
| Command |
|---|
sudo mkdir -p /srv/repo/smolenskalse/main |
При монтировать Примонтировать образ установочного диска (если на компьютере нет каталога /media/cdrom - то создать каталог /media/cdrom):
| Command |
|---|
[ -d /media/cdrom ] || sudo mkdir /media/cdrom |
Скопировать файлы из образа в каталог репозитория:
| Command |
|---|
sudo cp -a /media/cdrom/* /srv/repo/smolenskalse/main |
Отмонтировать ISO-образ диска:
| Command |
|---|
sudo umount /media/cdrom |
Если есть ISO-образы требуется, выполнить аналогичные действия для базового репозитория (диска со средствами разработки, то выполнить для него аналогичные действия ):
| Command |
|---|
sudo mkdir -p /srv/repo/smolensk/devel/alse/base |
Для ISO-образов дисков с обновлениемобновления основного репозитория (основного диска):
| Command |
|---|
sudo mkdir -p /srv/repo/smolenskalse/update-main |
Для ISO-образа обновления базового репозитория (диска с обновлением средств разработки):
| Command |
|---|
sudo mkdir -p /srv/repo/smolenskalse/update-dev-base |
Astra Linux
CECommon Edition: создание репозитория
Создать репозиторий Если создаем репозиторий для Astra Linux Common Edition релиз "Орел", то можно поступить двумя способами:
Либо скопировать неполный репозиторий с 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Либо загрузить полный репозиторий из сети:
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 (подробнее см. Использование протокола FTP):
| Command |
|---|
sudo apt install vsftpd |
В конфигурационный файл /etc/vsftpd.conf внести следующие данные:
| Информация |
|---|
listen=NOyes # Анонимный доступ разрешен |
HTTP репозиторий
root=/srv/repo |
Перезапустить сервис ftp:
| Информация |
|---|
| sudo systemctl restart vsftpd |
HTTP репозиторий
| Предупреждение |
|---|
Данная часть инструкции применима только к "чистому" свежеустановленному серверу Apache2. Для применения инструкции к настроенному серверу следует обратиться к администратору этого сервера. Для применения данной инструкции на Astra Linux Special Edition с включенным МРД необходимо в файле настроек /etc/apache2/apache2.conf указать параметр AstraMode off и перезапустить сервис Apache2. Допустимость использования ОС с такими настройками определяется действующей политикой безопасности на объекте. |
Установить webУстановить WEB-сервер:
| Command |
|---|
sudo apt -get install apache2 |
Создать символьную ссылку линк на репозиторий:
| Command |
|---|
sudo ln -s /srv/repo /var/www/html/repo |
В /etc/apache2/sites-enabled/000-default.conf после строки DocumentRoot /var/www/html добавить:
Для apache2 версии 2.4:
Информация <Directory /var/www/html/repo>Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder Deny,AllowRequire all granted</Directory>Для apache2 версии 2.2:
Информация <Directory /var/www/html/repo>Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder Deny,AllowAllow from all</Directory>
Перезапустить WEBweb-сервер:
| Command |
|---|
sudo systemctl restart apache2 |
| Якорь | ||||
|---|---|---|---|---|
|
list.d)
Источники пакетов могут быть указаны в файле /etc/apt/sources.list и в файлах, расположенных в каталоге /etc/apt/sources.list.d. Примеры содержимого файлов приведены ниже, имена файлов в каталоге /etc/apt/sources.list.d могут быть произвольными, но должны иметь "расширение" .list.
Локальные источники пакетов
Для Astra Linux Special Edition Astra Linux Special Edition x.8:
| Информация |
|---|
|
Для Astra Linux Special Edition x.7:
| Информация |
|---|
|
Для Astra Linux Special Edition 1.6:
| Информация |
|---|
|
FTP
Для Astra Linux Special Edition x.8:
| Информация |
|---|
|
FTP
Для Astra Linux CE "Орел":
| Информация |
|---|
|
Для Astra Linux SE "Смоленск"Astra Linux Special Edition РУСБ.10015-01 очередное обновление x.7 и Astra Linux Special Edition x.8:
| Информация |
|---|
|
Для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6:
| Информация |
|---|
если скопированы диски разработчика и обновления: |
Для Astra Linux Special Edition x.7 примеры указания репозиториев см. в статье Интернет-репозитории Astra Linux Special Edition x.7
Для Astra Linux Common Edition:
| Информация |
|---|
|
HTTP
Для Astra Linux CE "Орел"Special Edition x.8:
| Информация |
|---|
|
Для Astra Linux
SE "Смоленск"Special Edition x.7:
| Информация |
|---|
|
Для Astra Linux Special Edition 1.6:
| Информация |
|---|
|
Для Astra Linux CE:
| Информация |
|---|
|
Создание локальной копии репозитория с помощью apt-mirror2/apt-mirror
В Astra Linux Special Edition x.8 начиная с обновления 1.8.3 для создания локальных копий репозиториев используется инструмент apt-mirror2. В более ранних обновлениях используется инструмент apt-mirror. Инструменты используют конфигурационные файлы, подобные конфигурационному файлу apt /etc/apt/sources.list, поддерживают многопоточную загрузку, работу с разными архитектурами, удаление неиспользуемых файлов и позволяют работать с ненадежными и перегруженными линиями передачи данных.
Установка пакетов
Установить пакет apt-mirror можно с помощью графического менеджера пакетов или одной из команд:
| Command |
|---|
| sudo apt install apt-mirror2 sudo apt install 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 и указать нужный каталог.
| Предупреждение | ||
|---|---|---|
В настройках apt-mirror2 по умолчанию запрещено использование протокола http/2 для основного репозитория Astra Linux Special Edition 1.8:
Изменение этой настройки приведет к невозможности загрузки копий репозитория. Также при добавлении иных репозиториев Astra Linux (возможно, и репозиториев не только Astra Linux) следует запрещать использование протокола http/2. |
Репозитории для загрузки указываются в конфигурационном файле /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.8
http2-disable https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main
deb https://dl.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free
# Стандартный интернет-репозиторий Astra Linux Special Edition 1.7
http2-disable https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main
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/
# - автоматически применять сгенерированный предыдущей командой сценарий для удаления неиспользуемых файлов:
set _autoclean 1
# Пропуск указанных каталогов при очистке
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):
| Блок кода |
|---|
http2-disable https://dl.astralinux.ru/astra/stable/4.7_arm/repository-main
deb [arch=arm64] https://dl.astralinux.ru/astra/stable/4.7_arm/repository-main/ 4.7_arm main contrib non-free
http2-disable https://dl.astralinux.ru/astra/stable/4.7_arm/repository-update
deb [arch=arm64] https://dl.astralinux.ru/astra/stable/4.7_arm/repository-update/ 4.7_arm main contrib non-free
http2-disable https://dl.astralinux.ru/astra/stable/4.7_arm/repository-base
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. Этому пользователю должна быть разрешена запись в каталог, в который будет выполняться сохранение репозиториев. Порядок дествий:
- Создать каталог для размещения копии репозитория (если он не был создан при установке пакетов). Это можно сделать командой:
Для примера использовано принятое по умолчанию имя каталога для сохранения /var/spool/apt-mirror, иное имя можно настроить в конфигурации инструмента.Command sudo mkdir /var/spool/apt-mirror - После создания каталога его нужно передать служебному пользователю apt-mirror (назначить пользователя apt-mirror владельцем каталога):
Command sudo chown apt-mirror:apt-mirror /var/spool/apt-mirror
После выполнения вышеуказанных действий создание копий указанных в конфигурационном файле репозиториев можно выполнить командой:
| Command |
|---|
sudo pdp-exec -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
Установка
| Информация |
|---|
| Данных раздел применим к 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/apt.conf.d/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 |