Главная >> Инструкции >> Локальный репозиторий в Ubuntu

Локальный репозиторий в Ubuntu

Если вы системный администратор, то вам нужно часто устанавливать новый софт, обновления безопасности и другие патчи в ваших системах. Если бы компьютер был один, то это бы не вызвало проблем, но обычно в организации несколько компьютеров и всем им нужны обновления. Это может снизить пропускную способность сети. В каждой системе приложения будут скачиваться и устанавливаться непосредственно из репозиториев Ubuntu.

Но есть выход, можно сохранить все приложения на сервере в локальной сети, а затем распространять их на другие компьютеры этой сети когда потребуется. Локальный репозиторий Ubuntu - действительно быстрый и эффективный способ развертывания приложений, так как все необходимые приложения будут мгновенно получены с локального сервера на большой скорости. Таким образом, можно снизить трафик интернет и в итоге уменьшить ежегодные расходы на оплату интернета. В этой инструкции я расскажу как настроить локальный репозиторий Ubuntu.


Содержание статьи

Настройка локального репозитория Ubuntu

Мы будем использовать утилиту apt-mirror. Скачаем все пакеты из публичного репозитория на жесткий диск сервера Ubuntu.

Шаг 1. Установка Apache

Сначала нужно установить веб-сервер Apache. Он необходим для распространения пакетов по локальной сети:

sudo apt install apache2

Затем запустите его и добавьте в автозагрузку:

sudo systemctl start apache2

sudo systemctl enable apache2

Шаг 2. Настройка директории репозитория

Файлы репозитория будем хранить в папке /var/www/html чтобы не настраивать Apache для другой папки. Если на этом сервере будет только репозиторий, то это вполне допустимо. Создаём папку /var/www/html/ubuntu и даём на неё права веб-серверу:

sudo mkdir -p /var/www/html/ubuntu
sudo chown www-data:www-data /var/www/html/ubuntu

Шаг 3. Установка apt-mirror

Теперь установите apt-mirror:

sudo apt install apt-mirror

Шаг 4. Настройка apt-mirror

Теперь откройте файл /etc/apt/mirror.list и добавьте следующую строчку:

sudo vi /etc/apt/mirror.list

set base_path /var/www/html/ubuntu

Здесь /var/www/html/ubuntu - адрес только что созданной папки.

Шаг 5. Настройка репозиториев для загрузки

В этом же конфигурационном файле надо указать репозитории, которые хотите использовать, мы будем использовать стандартные, но вы можете добавить и PPA. Если вы хотите использовать обе архитектуры и x64 и x32, репозитории для них нужно указать в файле отдельно. Например, для x32 строчка будет начинаться с deb-i386 а для х64: deb-amd64 или просто deb.

По умолчанию в файле настроены репозитории для редакции Ubuntu auful, в этом примере мы загрузим репозитории для Ubuntu 20.04. Закомментируйте все репозитории в файле и добавьте вместо них один:

sudo vi /etc/apt/mirror.list

deb http://ua.archive.ubuntu.com/ubuntu/ focal main restricted

Шаг 6. Загрузка пакетов

Когда завершите с настройкой запустите загрузку пакетов командой:

sudo apt-mirror

В терминал будет выведено что-то вроде:

Сейчас все пакеты из публичного репозитория Ubuntu загружаются и сохраняются в локальной папке. В нашем случае в папке /var/localrepo. В зависимости от вашей скорости интернет это может занять несколько часов. Отменить загрузку можно в любое время, когда вы ее возобновите она продолжится там, где вы ее прервали.

Шаг 7. Настройка Cron

Не нужно вручную запускать эту команду каждый день для обновления репозитория, можно запланировать задание Cron. Для этого раскоментируйте следующую строчку в файле /etc/cron.d/apt-mirror:

sudo vi /etc/cron.d/apt-mirror

0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

В этом примере Cron будет запускать обновление пакетов в четыре утра каждый день.

Шаг 8. Копирование скрипта

Перед тем, как всё будет готово, надо в наш репозиторий важный скрипт из папки /var/spool/apt-mirror:

sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/

Шаг 9. Конфигурация клиентов

Настройка на клиентской машине не вызовет никаких трудностей. Просто откройте файл /etc/apt/sources.list и добавьте свой локальный репозиторий, так же как вы добавляли удаленный, только используйте ваш ip адрес вашей машины:

sudo vi /etc/apt/sources.list

deb http://192.168.1.102/ubuntu focal main

Вот и все, здесь 192.168.1.102 - адрес сервера с репозиторием. Теперь обновим списки пакетов:

sudo apt update

Для установки программы достаточно выполнить стандартную команду:

sudo apt install package-name

Настройка apt-mirror ubuntu завершена. Теперь клиентам не нужно подключение к интернету для загрузки пакетов. Они будут получать все пакеты и обновления с локального репозитория Ubuntu.

Выводы

Вот и все. Эта технология будет очень полезной системным администраторам, а также обычным пользователям, у которых слабый интернет. Если у вас остались вопросы, спрашивайте в комментариях!

8 комментариев к “Локальный репозиторий в Ubuntu”

  1. я немного не совсем в теме. скажите пожалуйста, как добавить сода еще репозиторием. Вот активно используем http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu/ trusty/main
    Как добавить. вообще принцип. Как просто при добавлении описать репы, что бы apt-mirror не ругался и другие пользователи обновляться могли смело?

    Ответить
  2. я думаю что эту статью можно дополнить описанием landscape
    он сочитает в себе оба вышеперечисленных способа, управление всеми подконтрольными тачками на убунте и удобную вебморду

    (сам не тыкал так как не любитель бубунт, но говорят вещь стоящая)

    Ответить
  3. Назрел вопрос.
    Если скажем у меня есть скачанные репозитории к нескольким версиям Убунты, то как мне добавить локальный репозиторий чтобы мои компы видели все пакеты в одном репозитории, а не только то что предназначено для их версии.
    Скажу так: Чтобы версия bionic видела пакеты которые предназначены для xenial и наоборот.

    Ответить

Оставьте комментарий