Создание локального репозитория
Установите inotify-tools, если еще не установлены:
sudo apt-get install inotify-tools
=================================================
Скрипт переноса файлов из кэша (script_cashe.sh):
---------
#!/bin/bash
WATCH_DIR="/var/cache/apt/archives"
DEST_DIR="/home/repo_local"
# Проверяем права доступа к каталогам
if [ ! -d "$WATCH_DIR" ]; then
echo "Каталог $WATCH_DIR не существует. Проверьте путь."
exit 1
fi
if [ ! -d "$DEST_DIR" ]; then
echo "Каталог $DEST_DIR не существует. Создаем..."
mkdir -p "$DEST_DIR"
fi
# Запускаем inotifywait для отслеживания событий в каталоге
inotifywait -m -e close_write,moved_to --format '%w%f' "$WATCH_DIR" | while read NEWFILE
do
echo "Обнаружен файл: $NEWFILE"
if [[ $NEWFILE == *.deb ]]; then
BASENAME=$(basename "$NEWFILE")
if [ ! -f "$DEST_DIR/$BASENAME" ]; then
cp "$NEWFILE" "$DEST_DIR"
if [ $? -eq 0 ]; then
echo "Скопирован $NEWFILE в $DEST_DIR"
else
echo "Ошибка при копировании $NEWFILE"
fi
else
echo "Файл $BASENAME уже существует в $DEST_DIR, пропускаем."
fi
fi
done
-----------------------------------------------------
=====================================================
Этот скрипт будет отслеживать появление новых .deb файлов в каталоге /var/cache/apt/archives и копировать их в каталог /home/repo_local.
После того как пакеты скопированы в /home/repo_local, можно создать локальный репозиторий. Для этого:
Установите dpkg-scanpackages (если еще не установлен):
sudo apt-get install dpkg-dev
-------------------------
Перейдите в каталог /home/repo_local и выполните следующие команды:
cd /home/repo_local
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
-------------------------
Добавьте локальный репозиторий в /etc/apt/sources.list или создайте файл в /etc/apt/sources.list.d/, например, localrepo.list с содержимым:
deb [trusted=yes] file:/home/repo_local ./
------------------------
Обновите список пакетов:
sudo apt-get update
------------------------
Теперь, при установке пакетов, apt будет использовать ваш локальный репозиторий, если там есть нужные пакеты.
===================================================
===================================================
ВТОРОЙ ВАРИАНТ СОЗДАНИЯ РЕПОЗИТОРИЯ ИЗ СКОПИРОВАННЫХ ФАЙЛОВ
-------------------------------------------------------------
apt-get install dpkg-dev
Создайте директорию для локального репозитория
mkdir -p /var/local/repo
Скопируйте пакеты в эту директорию
cp /home/repo_local/*.deb /var/local/repo/
Создайте файл Packages.gz для репозитория
cd /var/local/repo
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Добавьте локальный репозиторий в sources.list:
Откройте файл /etc/apt/sources.list в текстовом редакторе с правами суперпользователя
mcedit /etc/apt/sources.list
Добавьте следующую строку в конец файла
deb [trusted=yes] file:/var/local/repo ./
Сохраните изменения и закройте редактор.
Обновите списки пакетов
apt update