Создание лок. репозитория на примере Ardour
#!/bin/bash
# Каталог для локального репозитория
REPO_DIR="/home/local-repo/"
mkdir -p $REPO_DIR
# Файл для хранения списка пакетов, установленных до установки программы
PRE_INSTALLED_PACKAGES=$(mktemp)
# Файл для хранения списка пакетов, установленных после установки программы
POST_INSTALLED_PACKAGES=$(mktemp)
# Сохранение списка установленных пакетов до установки программы
dpkg --get-selections > $PRE_INSTALLED_PACKAGES
# Установка программы (например, Ardour)
apt install ardour
# Сохранение списка установленных пакетов после установки программы
dpkg --get-selections > $POST_INSTALLED_PACKAGES
# Определение новых установленных пакетов
NEW_PACKAGES=$(comm -13 <(sort $PRE_INSTALLED_PACKAGES) <(sort $POST_INSTALLED_PACKAGES) | awk '{print $1}')
# Загрузка новых пакетов и их зависимостей
cd $REPO_DIR
for PACKAGE in $NEW_PACKAGES; do
apt-get download $PACKAGE
done
# Создание индекса пакетов
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
# Добавление локального репозитория в источники APT
echo "deb [trusted=yes] file://$REPO_DIR ./" | sudo tee /etc/apt/sources.list.d/local-repo.list
# Обновление информации о пакетах
sudo apt update
# Очистка временных файлов
rm $PRE_INSTALLED_PACKAGES $POST_INSTALLED_PACKAGES
echo "Локальный репозиторий создан и добавлен в источники APT."