Don't abort the whole build if some packages fail to download

Download packages one at a time instead of a single batch apt-get call,
so a typo'd or unavailable package name (or a transient network error on
one package) no longer aborts the entire run. Failed packages are
collected, printed as a warning, and the repo/archive are still built
from whatever succeeded.

Exit codes: 0 = all packages downloaded, 1 = fatal (nothing downloaded
at all), 2 = repo/archive built but some packages were skipped.

Verified manually against the ALT SP Server test machine.
This commit is contained in:
2026-09-25 18:09:02 +03:00
parent 929939341c
commit 98b1d44671
2 changed files with 42 additions and 5 deletions
+9
View File
@@ -37,6 +37,15 @@ sudo ./altsp-download-repo.sh -o /srv/offline-repo -a bash mc htop
Повторные запуски с другим набором пакетов дополняют существующий каталог
репозитория, не скачивая заново уже имеющиеся пакеты.
Если часть пакетов не удалось скачать (опечатка в имени, пакет отсутствует
в репозитории, сетевой сбой), скрипт выводит предупреждение по каждому
такому пакету, но всё равно собирает репозиторий/архив из того, что
удалось скачать. Коды возврата:
- `0` — все пакеты скачаны успешно;
- `1` — фатальная ошибка (например, не скачался вообще ни один пакет);
- `2` — репозиторий/архив собраны, но часть пакетов пропущена.
## Как это работает
Зависимости резолвятся против **пустой** rpm-базы (`rpm --initdb` во