Полноценный локальный репозиторий Linux

Аватара пользователя

Автор темы
Nickolas
Сообщения: 436
Зарегистрирован: 14 сен 2016, 05:44
Решено: 3
Благодарил (а): 174 раза
Поблагодарили: 210 раз
Контактная информация:

Полноценный локальный репозиторий Linux

#1

21 сен 2020, 06:42

Доброго дня всем...
Решил разместить тут репост мануала по организации полноценного локального репозитория Linux у себя дома или на работе например в офисе и т.д.
Думаю полезная тема.
Как вариант можно к LMDE подключить репозитории Debian, как вам известно их аж 16 DVD дисков, а это не малый объем.
http://ftp.psn.ru/debian-cd/10.5.0/amd64/iso-dvd/

Сам еще не пробовал, но мне нравится такой вариант, как-нибудь в скором времени думаю попробовать...

ВАРИАНТ 1: Использование прокси для организации локального репозитория

Данный метод подразумевает доступ к репозиториям через кеш на прокси-компьютере, который имеет прямое подключение в Интернет. Механизм работы такого локального репозитория заключается в следующем:

на какой-либо клиентской машине в обычном порядке запрашивается какой-либо пакет для установки/обновления через компьютер-сервер;
запрошенный пакет скачивается сервером, сохраняется в специально отведённом хранилище-кеше и далее становится доступным всем остальным клиентам;
в качестве распространителя пакетов клиентам выступает веб-сервер Apache, поэтому его установка обязательна.
Итак, для начала необходимо установить всё необходимое, т. е. веб-сервер и саму утилиту кеширования пакетов:

sudo apt-get install apache2 apt-cacher

При установке apt-cacher будет показан диалог настройки, в котором можно настроить нужное поведение утилиты, например задать автозапуск и работу в режиме демона. Также эти и некоторые другие важные настройки можно сделать (например с помощью редактора nano) в конфигурационном файле /etc/default/apt-cacher. Для включения автозапуска apt-cacher нужно установить параметр AUTOSTART в значение «1»:

sudo nano /etc/default/apt-cacher
. . .
# 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
. . .


Далее, необходимо определить, какие клиенты должны иметь доступ к кешу репозитория, отредактировав конфигурационный файл

/etc/apt-cacher/apt-cacher.conf:

sudo nano /etc/apt-cacher/apt-cacher.conf
. . .
## Uncomment and set the IP range ##
allowed_hosts = 192.168.1.105 - 192.168.1.125
#denied_hosts =
. . .


Как можно видеть, просто указывается диапазон нужных IP-адресов. После сохранения сделанных настроек необходимо перезапустить веб-сервер Apache:

sudo service apache2 restart

Или:

sudo systemctl restart apache2

Теперь необходимо указать клиентам, куда им нужно обращаться для установки пакетов и обновлений. Для этого на клиентских машинах нужно создать файл

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

с помощью того же редактора nano:

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

И добавить в него строку со следующей инструкцией:

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

Здесь в качестве адреса сервера, на котором установлен и работает apt-cacher указывается 192.168.1.100. Конечно, это может быть любой другой адрес, настроенный для этого сервера.
Теперь можно проверить работу локального репозитория (а точнее удалённого, но доступного через прокси), выполнив команду обновления данных о доступных пакетах:

sudo apt-get update

ВАРИАНТ 2: APT-MIRROR – полноценный локальный репозиторий

Данный способ является более «продвинутым» по сравнению с использованием apt-cache. Поскольку предполагает наличие полноценного хранилища пакетов прямо на локальном компьютере/сервере или в локальной сети. Но сначала такое хранилище необходимо создать, загрузив в него все необходимые пакеты. Как и в случае с apt-cache, в качестве распространителя пакетов выступает веб-сервер Apache. Порядок настройки локального репозитория при помощи утилиты apt-mirror следующий:

- установка необходимых пакетов: apt-mirror и apache2;
- создание локального хранилища и настройка источников для загрузки, загрузка пакетов в хранилище;
- открытие доступа к готовому хранилищу для клиентов;
- настройка клиентов для использования локального репозитория.

Итак, установка необходимых утилит и пакетов:

sudo apt-get install apache2 apt-mirror

Далее, нужно создать локальное хранилище пакетов, пусть это будет каталог /localrepo:

sudo mkdir /localrepo

Теперь в конфигурационном файле /etc/apt/mirror.list нужно отредактировать строку с инструкцией «set base_path». Указав в ней только что созданный каталог для хранилища:

sudo nano /etc/apt/mirror.list
############ config ##################
#
set base_path /localrepo


Далее, в этом же файле можно добавить необходимые репозитории, с которых будут загружены пакеты. Можно скопировать все стандартный репозитории из /etc/apt/sources.list.
Сохранив настройки можно запустить загрузку пакетов командой:

sudo apt-mirror

Это может занять длительное время, в зависимости от скорости соединения с Интернет.
Данную команду очень полезно добавить в список регулярных процедур cron, чтобы локальный репозиторий обновлялся автоматически.

После того, как локальный репозиторий будет полностью загружен, его содержимое должно быть примерно следующим:

ls /localmirror
mirror skel var


Для последующего удобства настройки клиентов полезно создать символическую ссылку на хранилище, которое содержится в каталоге mirror:

cd /localrepo
sudo ln -s /localrepo/mirror/us.archive.ubuntu.com/ubuntu/ ubuntu


Теперь ссылка ubuntu будет использоваться для задания репозиториев на стороне клиентов с помощью редатирования файла /etc/apt/sources.list:
Открыв этот файл (с использованием команды sudo) с помощью редактора nano, нужно теперь добавить в него следующие репозитории:

deb http://192.168.1.100/ubuntu trusty universe
deb http://192.168.1.100/ubuntu trusty main restricted
deb http://192.168.1.100/ubuntu trusty-updates main restricted


Здесь адрес 192.168.1.100 — это IP-адрес компьютера, на котором был создан и настроен локальный репозиторий.
Теперь, для работы с пакетами можно использовать обычные команды apt:

sudo apt-get update
sudo apt-get install имя_пакета


В заключение следует напомнить, что способы организации локальных репозиториев, описанные выше подходят для систем на базе формата debian-пакетов. Для систем, основанных на RPM следует использовать другие инструменты.
Изображение
Официальный форум Linux Mint Russian - https://forums.linuxmint.com/viewforum.php?f=75
Linux Mint 19.1 XFCE 64bit (Kernel 4.18.0-16)
Пингвин птица гордая - не полетит, пока не пнёшь.

Аватара пользователя

symon2014
Сообщения: 5993
Зарегистрирован: 16 дек 2017, 21:59
Решено: 40
Откуда: Феодосия
Благодарил (а): 32 раза
Поблагодарили: 755 раз
Контактная информация:

Полноценный локальный репозиторий Linux

#2

21 сен 2020, 07:08

Для дома вряд ли актуально. А вот для локальных сетей организаций , с разными уровнями доступа к сети , вполне приемлемый вариант.

Аватара пользователя

camac
Сообщения: 139
Зарегистрирован: 03 сен 2016, 01:46
Откуда: Киев
Благодарил (а): 12 раз
Поблагодарили: 15 раз
Контактная информация:

Полноценный локальный репозиторий Linux

#3

21 сен 2020, 10:46

Это все, конечно, здорово.
Но вот для дома, одного единственного пользователя с хранением пакетов/репозитория на флешке все эти прокси с апачами вряд ли нужны. Предположу даже крамольную мысль - совсем не нужны.
Как тогда сделать?
Никто не знает столько, сколько не знаю я.

Аватара пользователя

slant
Сообщения: 4714
Зарегистрирован: 21 июн 2017, 18:09
Решено: 107
Благодарил (а): 52 раза
Поблагодарили: 2099 раз
Контактная информация:

Полноценный локальный репозиторий Linux

#4

21 сен 2020, 11:26

camac писал(а):
21 сен 2020, 10:46
Но вот для дома, одного единственного пользователя с хранением пакетов/репозитория на флешке все эти прокси с апачами вряд ли нужны. Предположу даже крамольную мысль - совсем не нужны.
apt-cacher полезен в любом случае, даже дома. Позволяет работать с apt быстрее даже если просто стоит на собственной машине. А уж если машин в доме хотя бы две, или виртуалками развлекаешься - вообще милое дело.

Закрыто

Вернуться в «Руководства»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей