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

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

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

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

Способ 1. Apt-mirror

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

sudo apt-get install apache2

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

sudo apt-get install apt-mirror

Создайте директорию куда будут скачиваться все пакеты:

sudo mkdir /myrepo

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

sudo vi /etc/apt/mirror.list

############ config ##################
#
# set base_path /var/spool/apt-mirror

set base_path /myrepo

Здесь /myrepo — адрес только что созданной папки. Также в этом конфигурационном файле можете указать репозитории, которые хотите использовать, мы будем использовать стандартные, но вы можете добавить и PPA. Если вы хотите использовать обе архитектуры и x64 и x32, репозитории для них нужно указать в файле отдельно.

Например, для x32 строчка будет начинаться deb-i386 а для х64: deb-amd64. Когда завершите с настройкой запустите загрузку пакетов командой:

sudo apt-mirror

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

Downloading 162 index files using 20 threads...
Begin time: Wed Aug 5 16:09:16 2015
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]...

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

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

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


# Regular cron jobs for the apt-mirror package
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

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

После заввершения загрузки проверим есть ли пакеты в каталоге /myrepo

ls /myrepo/

mirror skel var

Теперь нужно сделать пакеты доступными по сети. Для этого создадим символическую ссылку:

cd /myrepo/

sudo ln -s /myrepo/mirror/us.archive.ubuntu.com/ubuntu/ ubuntu

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

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

sudo vi /etc/apt/sources.list

 [...]
deb http://192.168.1.102/ubuntu trusty universe
deb http://192.168.1.102/ubuntu trusty main restricted
deb http://192.168.1.102/ubuntu trusty-updates main restricted
[...]

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

sudo apt-get update

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

sudo apt-get install package-name

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

Способ 2: APT-Cacher

Создание локального репозитория ubuntu возможно не только одним способом. Apt-cacher немного отличается от apt-mirror. Он не скачивает все пакеты из репозитория, а только сохраняет и делает доступными для всех, те которые были один раз запрошены.

Сначала установите сервер Apache:

sudo apt-get install apache2

Затем apt-cahcer:

sudo apt-get install apt-cacher

Выберите способ запуска — daemon и нажмите ок:

sk@server-myrepo_001

Теперь нужно отредактировать /etc/default/apt-cacher, установив параметр autostart в 1.

sudo vi /etc/default/apt-cacher

apt-cacher daemon startup configuration file

# Set to 1 to run apt-cacher as a standalone daemon, set to 0 if you are going
# to run apt-cacher from /etc/inetd or in CGI mode (deprecated). Alternatively,
# invoking "dpkg-reconfigure apt-cacher" should do the work for you.
#
AUTOSTART=1

# extra settings to override the ones in apt-cacher.conf
# EXTRAOPT=" daemon_port=3142 limit=30 "

Также можно настроить с каких ip можно будет получить доступ к кэшу, для этого откройте файл /etc/apt-cacher/apt-cacher.conf и отредактируйте соответствующую строчку: Например, разрешим подключение только компьютерам с ip от 192.168.1.20 до 192.168.1.30:

sudo vi /etc/apt-cacher/apt-cacher.conf

[...]
## Uncomment and set the IP range ##
allowed_hosts = 192.168.1.20 - 192.168.1.30
#denied_hosts =
[...]

После завершения настроек перезапустите apache:

sudo systemctl restart apache2

Или:

sudo service apache2 restart

Настройка на стороне клиента

Создайте файл sudo nano /etc/apt/apt.conf.d/01proxy и добавьте в него следующую строчку:

sudo nano /etc/apt/apt.conf.d/01proxy

Acquire::http::Proxy "http://192.168.1.102:3142";

Здесь 192.168.1.102 адрес нашего локального репозитория. Осталось обновить списки пакетов:

sudo apt-get update

Здесь мы не добавляем локальный репозиторий Ubuntu, а всего лишь используем прокси для загрузки пакетов.

Выводы

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

Источник: www.unixmen.com

Creative Commons License
Статья Локальный репозиторий в Ubuntu 16.04 распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 3,00 из 5)
Загрузка...

6 комментариев

  1. Евгений Июль 21, 2016 Ответить
    • Евгений Июль 21, 2016 Ответить
    • Евгений Июль 21, 2016 Ответить
      • admin Июль 21, 2016 Ответить
  2. 13werwolf13 Сентябрь 9, 2016 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: