@kolyanovikov

Как полноценно работать с Linux без интернета?

Имеется необходимость в функционировании ряда серверов и пользовательских машин, объединенных в локальную сеть. На всех компьютерах, включая рабочие станции, установлена ОС Linux (debian или mint). Ситуация осложнена полным отсутствием доступа в интернет.

Необходимо развернуть различные сервисы на серверах (типа файлообменника, веб серверов, системы управления проектами и т.п.). Также в процессе работы может понадобиться поставить какие-то пакеты пользователям из стандартного репозитория или python (pip).

Каким образом проще всего организовать своё зеркало репозитория? Есть ли вариант создать офлайновый pypi, хотя бы с ограниченным списком пакетов? В общем какие есть варианты решения?
  • Вопрос задан
  • 949 просмотров
Пригласить эксперта
Ответы на вопрос 3
@vitaly_il1
DevOps Consulting
Это стандартная конфигурация во многих учреждениях.
Нужно поднять локальные репо для пакетов системы и pip (https://packaging.python.org/guides/hosting-your-o...).
Вопрос только в обновлениях. Простейший способ - раз в неделю, например, обновлять вручную с флешкой.
Иногда делают автоматически, если разрешают - ставят машину с двумя интерфейсами во внутр. и внешнюю сеть. Но интерфейсы подключаются не одновременно - то один, то другой.

https://ru.wikipedia.org/wiki/%D0%92%D0%BE%D0%B7%D...
Ответ написан
Комментировать
ValdikSS
@ValdikSS
Поднимите зеркало репозитория вашего дистрибутива (apt-mirror для Debian/Ubuntu), зеркало pypi. Программы, отсутствующие в репозитории и требующие большое количество зависимостей, можно паковать во flatpak, также развернув свой репозиторий.
Ответ написан
Комментировать
@romancelover
программист C++ под Linux
В Gentoo можно переопределить команду скачивания пакета (FETCHCOMMAND), чтобы она вместо скачивания пакета с исходниками выводила в список ссылку на него вместе с именем файла, которое ожидает emerge. Потом список записывается на флешку, файлы скачиваются на компе с интернетом, а потом переписываются в каталог distfiiles, и emerge их видит.
Я не могу сказать, может быть аналогичный способ можно применить и к другим дистрибутивам, чтобы не качать весь репозиторий целиком? У Gentoo репозиторий делится на две части, дерево portage и distfiles, portage это индексная часть, которая отвечает за информацию о том, как собирать пакеты и какие между ними зависимости, и имеет сравнительно небольшой размер, около 200 Мб или 50 Мб в сжатом архиве, а distfiles это просто файлы с архивами исходников, которые могут весить много. У Debian обе части хранятся в одном дереве. Можно было бы скачивать только индекс (Packages.gz), а пакеты только по необходимости, как описано выше, через переопределение команды загрузки.
Если компьютеров в сети с одинаковой конфигурацией Gentoo много (архитектурой, use флагами, параметрами сборки, зависящими от процессора), то пакеты собираются на одном по указанной схеме (надо ещё прописать FEATURES="buildpkg" для формирования бинарных пакетов), а на остальных прописывается PORTAGE_BINHOST, указывающий на этот компьютер, чтобы ставить из бинарника, а не собирать на каждом.
https://wiki.gentoo.org/wiki/Binary_package_guide
Если конфигурация на разных компьютерах разная, то можно просто сделать общую директорию distfiles по NFS, чтобы не копировать файлы вручную.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы