Это старая версия документа!
Содержание
Создание локального зеркала Ubuntu
Введение
Локальные копии репозиториев нужны для установки программ на машины с Ubuntu, не подключённые к интернету. В этом случае можно создать копию нужных репозиториев на внешнем диске или на компьютере, у которого есть доступ к интернету, а затем подключить эту копию в качестве репозитория к машинам, на которых интернета нет. Для этого вам потребуется компьютер с установленной Ubuntu и безлимитным доступом к интернету.
Локальная копия официального репозитория Ubuntu deb http://ru.archive.ubuntu.com/ubuntu/ focal main restricted занимает 135+ GiB, учтите это.
Создание дерева папок
Создаём несколько папок в домашней дирректории, в которой будет храниться наш срез репозитория (или даже несколько), к примеру, согласно нижеприведенной схемы:
Для этого введем ниже приведенные команды
sudo mkdir /home/alisa/repo sudo mkdir /home/alisa/repo/debmirror sudo mkdir /home/alisa/repo/debmirror/amd64 sudo mkdir /home/alisa/repo/debmirror/mirrorkeyring sudo mkdir /home/alisa/repo/scripts
В итоге у нас получиться:
Настроим права доступа к нашей главной папке
sudo chown -R root:alisa /home/alisa/repo sudo chmod -R 571 /home/alisa/repo
Установка зависимостей
Установим web server Apache2 и настроим брандмауэр по аналогии в этой статье.
Обновим список пакетов
sudo apt-get update
и установим небходимое ПО
Если web server Apache2 уже установлен, то
sudo apt install debmirror gnupg xz-utils
Иначе
sudo apt install apache2 debmirror gnupg xz-utils
Gnupg нужен для связки ключей. Xz – необходимость декомпрессии.
Откройте список источников (sources.list)
sudo sensible-editor /etc/apt/sources.list
############################################################# ########## Ubuntu 22.04 LTS (Jammy Jellyfish) ############## ############################################################# deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://archive.canonical.com/ubuntu/ jammy partner deb-src http://archive.canonical.com/ubuntu/ jammy partner
CTRL+O → ENTER → CTRL+X (Сохранить и выйти)
После редактирования списка репозиториев не забудьте обновить список пакетов.
sudo apt-get update sudo apt-get dist-upgrade
Скрипт mirrorkernel.sh
Теперь создадим mirrorkernel.sh, открыв предпочитаемый вами редактор таким образом
sudo sensible-editor /home/alisa/repo/scripts/mirrorkernel.sh
Скопируйте текст из поля ниже в редактор.
#!/bin/bash -x /usr/bin/debmirror --source -m --passive --host=archive.ubuntu.com \ --root=ubuntu --method=http --progress \ --dist=focal,focal-security,focal-updates,focal-backports,jammy,jammy-security,jammy-updates,jammy-backports,noble,noble-security,noble-updates,noble-backports \ --ignore-release-gpg --section=main,restricted,universe,multiverse \ --arch=amd64 /home/alisa/repo/debmirror/amd64/
CTRL+O → ENTER → CTRL+X (Сохранить и выйти)
Перейдем в директорию с нашим новым скриптом mirrorkernel.sh и дадим ему разрешение на выполнение:
cd /home/alisa/repo/scripts/ sudo chmod +x mirrorkernel.sh
chmod (от англ. change mode) — команда для изменения прав доступа к файлам и каталогам, используемая в Unix-подобных операционных системах.
Запуск и Автоисполнение
Находясь в папке с скриптом, запустим его на выполнение:
sudo apt install screen sudo screen /home/alisa/repo/scripts/mirrorkernel.sh
screen это терминальный мультиплексор. Процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии.
См. подробнее...
После выполнения команды пойдет загрузка файлов в наше локальное зеркало:
Настройка доступа к зеркалу
Создадим символическую ссылку из /home/alisa/repo/debmirror/amd64 на /var/www/ubuntu.
cd /var/www/html sudo ln -s /home/alisa/repo/debmirror/amd64 ubuntu
Перезапустим Apache:
sudo service apache2 restart
Проверим работу нашего веб-сервера
sudo systemctl status apache2
перейдем на главную страницу в браузере нашего сервера (в примере http://192.168.1.152/)
И наконец перейдем в папку для которой мы ранее указали символическую ссылку (в примере http://192.168.1.152/ubuntu/):