Репозиторий linux в локальной сети
Доброго дня всем.
Решил разместить тут репост мануала по организации полноценного локального репозитория 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
. . .
Далее, необходимо определить, какие клиенты должны иметь доступ к кешу репозитория, отредактировав конфигурационный файл
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
Теперь необходимо указать клиентам, куда им нужно обращаться для установки пакетов и обновлений. Для этого на клиентских машинах нужно создать файл
с помощью того же редактора nano:
sudo nano /etc/apt/apt.conf.d/01proxy
И добавить в него строку со следующей инструкцией:
Здесь в качестве адреса сервера, на котором установлен и работает apt-cacher указывается 192.168.1.100. Конечно, это может быть любой другой адрес, настроенный для этого сервера.
Теперь можно проверить работу локального репозитория (а точнее удалённого, но доступного через прокси), выполнив команду обновления данных о доступных пакетах:
ВАРИАНТ 2: APT-MIRROR – полноценный локальный репозиторий
Данный способ является более «продвинутым» по сравнению с использованием apt-cache. Поскольку предполагает наличие полноценного хранилища пакетов прямо на локальном компьютере/сервере или в локальной сети. Но сначала такое хранилище необходимо создать, загрузив в него все необходимые пакеты. Как и в случае с apt-cache, в качестве распространителя пакетов выступает веб-сервер Apache. Порядок настройки локального репозитория при помощи утилиты apt-mirror следующий:
— установка необходимых пакетов: apt-mirror и apache2;
— создание локального хранилища и настройка источников для загрузки, загрузка пакетов в хранилище;
— открытие доступа к готовому хранилищу для клиентов;
— настройка клиентов для использования локального репозитория.
Итак, установка необходимых утилит и пакетов:
sudo apt-get install apache2 apt-mirror
Далее, нужно создать локальное хранилище пакетов, пусть это будет каталог /localrepo:
Теперь в конфигурационном файле /etc/apt/mirror.list нужно отредактировать строку с инструкцией «set base_path». Указав в ней только что созданный каталог для хранилища:
sudo nano /etc/apt/mirror.list
############ config ##################
#
set base_path /localrepo
Далее, в этом же файле можно добавить необходимые репозитории, с которых будут загружены пакеты. Можно скопировать все стандартный репозитории из /etc/apt/sources.list.
Сохранив настройки можно запустить загрузку пакетов командой:
Это может занять длительное время, в зависимости от скорости соединения с Интернет.
Данную команду очень полезно добавить в список регулярных процедур 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)
Пингвин птица гордая — не полетит, пока не пнёшь.