Skip to main content

Создание лок. репозитория на примере 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."