Astra Linux SE 1.6 Asmolensk основан на Debian 9, поэтому структура репозиториев полностью повторяет структуру Debian.
1. Подготовка структуры каталоговВ каталоге DISTS размещаются каталоги версии релизов операционных систем (названия дистрибутивов - buster) либо наименования классов (stable), например (ознакомиться можно тут или тут):
- STABLE (buster - debian 10, smolensk - astra linux se) для smolenska класс stable, хотя основная база взята от debian 9
- UNSTABLE (sid)
- TESTING (bullseye - debian next)
- OLDSTABLE (stretch - debian 9) базовая система для Astra Linux SE 1.6 Smolensk
- OLDOLDSTABLE (jessie - debian 8)
Для каждого дистрибутива формируется своя система подкаталогов, открытое ПО (MAIN), открытое ПО, но зависимое от проприетарного ПО (contrib), прориетарное ПО (non-free).
Подкаталогах хранятся пакеты и исходные коды:
- binary-arm
- binary-amd64
- binary-i386
- binary-...
- source
Каталог i18n поддержки национальных языков.
Структура каталогов с индексными файлами. (О размещении каталогов можно ознакомиться на оф. сайте Debian.)
dists
└── stable (or smolensk)
├── contrib
│ ├── binary-amd64
│ └── i18n
├── main
│ ├── binary-amd64
│ │ ├── binary-amd64
│ │ └── i18n
│ └── i18n
└── non-free
├── binary-amd64
└── i18n
Стурктура каталогов с пакетами
pool
├── contrib
├── main
└── non-free
# Создаем каталоги
mkdir -p dists/main/binary-amd64
mkdir -p dists/main/i18n
mkdir -p dists/contrib/binary-amd64
mkdir -p dists/contrib/i18n
mkdir -p dists/non-free/binary-amd64
mkdir -p dists/non-free/i18n
mkdir -p pool/main
mkdir -p pool/contrib
mkdir -p pool/non-free
2. Подготовка индексных файлов Packages и описаний Release с новыми пакетами
Размещаем необходимые дистрибутивы и библиотеки, например deadbeef (deadbeef-static_1.8.7-1_amd64.deb), копируем в "contrib" в заранее подготовленные каталоги "d" и "deadbeef".
example: pool/contrib/d/deadbeef/deadbeef-static_1.8.7-1_amd64.deb
Формируем индексные файлы по веткам "main" "contrib" "non-free" (Packages) и сохраняем в соответствующие диреткориях
# Формируем индексы
dpkg-scanpackages pool/contrib /dev/null > dists/stable/contrib/binary-amd64/Packages
dpkg-scanpackages pool/main /dev/null > dists/stable/main/binary-amd64/Packages
dpkg-scanpackages pool/non-free /dev/null > dists/stable/non-free/binary-amd64/Packages
# Формируем архивные версии индексов
gzip -9c <dists/stable/main/binary-amd64/Packages > dists/stable/main/binary-amd64/Packages.gz
gzip -9c <dists/stable/contrib/binary-amd64/Packages > dists/stable/contrib/binary-amd64/Packages.gz
gzip -9c <dists/stable/non-free/binary-amd64/Packages > dists/stable/non-free/binary-amd64/Packages.gz
bzip2 -9c <dists/stable/main/binary-amd64/Packages > dists/stable/main/binary-amd64/Packages.bz2
bzip2 -9c <dists/stable/contrib/binary-amd64/Packages > dists/stable/contrib/binary-amd64/Packages.bz2
bzip2 -9c <dists/stable/non-free/binary-amd64/Packages > dists/stable/non-free/binary-amd64/Packages.bz2
Создаем файлы описания релизов (Release)
####################################
cat <<EOL > dists/stable/main/binary-amd64/Release
Origin: Debian
Suite: stable
Codename: smolensk
Version: 1.6
Component: main
Architecture: amd64
EOL
cat <<EOL > dists/stable/contrib/binary-amd64/Release
Origin: Debian
Suite: stable
Codename: smolensk
Version: 1.6
Component: contrib
Architecture: amd64
EOL
cat <<EOL > dists/stable/non-free/binary-amd64/Release
Origin: Debian
Suite: stable
Codename: smolensk
Version: 1.6
Component: non-free
Architecture: amd64
EOL
cat <<EOL > dists/stable/Release
Origin: Debian
Suite: stable
Codename: smolensk
Version: 1.6
Component: main contrib non-free
Architecture: amd64
EOL
####################################
Генерируем хэши индексов и заносим в релиз (Release).Создание файла Release необходимо выполнять из рабочего каталога дистрибутива (класса) каталоге stable - пути должны быть относительно каталога
cd dists/stable/
apt-ftparchive release . >> Release
СТАТЬЯ НЕЗАВЕРШЕНА. Дополнения будут в ближашее время.
Источники:
https://wiki.debian.org/ru/SourcesList
https://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html
https://liberatum.ru/blog/repozitorii-dlya-debianubuntu
https://medium.com/sqooba/create-your-own-custom-and-authenticated-apt-repository-1e4a4cf0b864
https://habr.com/ru/post/358182/
Комментариев нет:
Отправить комментарий