Как создать локальный репозиторий, используя apt-mirror и mirrorkit?


9

Наличие локального хранилища может быть очень полезным. Можно использовать rsyncдля создания зеркала репозитория, но это приводит к загрузке всех выпусков, даже более старых, и включает файлы для архитектур, которые могут не понадобиться.

apt-mirrorпозволяет выборочно выбирать части хранилища. mirrorkitпредоставляет интерфейс для apt-mirror.

Каков наилучший способ создания зеркала локального хранилища для отдельных частей архивов Ubuntu?

Например, можно пожелать включить:

  • Основной, Ограниченный, Вселенная, Мультивселенная, Все Ubuntu и Lubuntu, но исключая другие производные, такие как Kubuntu и Xubuntu.

  • Только AMD64 и i386, но исключают другие архитектуры.

  • Только верная Тар, но не точный пингвин или утопический единорог.

Можно пожелать настроить процесс так, чтобы он загружался с локального зеркала, а не из основных архивов.

Как я могу создать локальный репозиторий, используя apt-mirrorи mirrorkitдля выбранной архитектуры, выпуска или варианта Ubuntu?


Исключить Kubuntu? Вы имеете в виду исключить ISO-образы Kubuntu или исключить какой-либо пакет, который используется Kubuntu?
Муру

Например, исключите ISO-образы Kubuntu и Xubuntu. Возможно, их очень много (Precise Kubuntu ARM, Precise Kubuntu i386, Quantal Kubuntu ARM, Quantal Kubuntu i386 ...), и первоначальная загрузка зеркала может быть завершена быстрее без этих ISO. Но если это всего лишь несколько гигабайт, возможно, это не так важно.
user75798

1
ISO-файлы размещаются отдельно от пакетов. Таким образом, вы можете использовать apt-mirror, как обычно, для зеркалирования репозиториев пакетов, и использовать какой-то другой инструмент для ISO. Тогда возникает вопрос о нахождении подходящих фильтров исключения для этого инструмента (скажем, rsync).
Муру

«Вы можете использовать apt-mirror, как обычно». Извините, я не знаю, как это сделать. Это именно то, что я хотел бы объяснить.
user75798

Ответы:


9

Репозиторий компакт-дисков и программный репозиторий представляют собой два отдельных компонента (у них даже есть отдельные страницы Launchpad: cdmirrors и archivemirrors ). Поэтому их отражение - это две разные задачи. Кроме того, хотя различные версии имеют разные папки в репозитории CD, они совместно используют программный репозиторий. Таким образом, вы можете выборочно отражать изображения по вкусу, но не по программному обеспечению. Для хранилища программного обеспечения вы можете выборочно зеркалировать на основе:

  • релиз ( trusty, preciseи т.д.)
  • архитектура ( amd64, i386и т.д.)
  • тип пакета (двоичный [ deb] против исходного [ deb-src])
  • Каналы ( trusty, trusty-updates, trusty-backportsи т.д.)
  • участки ( main, multiverseи т.д.)

Для зеркалирования хранилища программного обеспечения используйте apt-mirror.

apt-mirrorнастроен с помощью /etc/apt/mirror.list. Он имеет формат, очень похожий на sources.list. В файле конфигурации, установленном пакетом, есть несколько закомментированных параметров, в которых перечислены их значения по умолчанию. При желании вы можете раскомментировать и изменить их.

Чтобы отразить репозиторий, вам нужно добавить строку, mirror.listкак для sources.list:

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

По умолчанию зеркалируется только архитектура хоста, поэтому, если вы используете 64-битную версию Ubuntu, amd64будет отображаться только зеркальная копия. Вам нужно добавить еще одну строку формы:

deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

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

deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Если вы ищете достаточно полное зеркало, эти строки будут минимальными (я бы также рекомендовал -updatesканал):

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe

Наконец, вам нужно добавить cleanстроку, чтобы пакеты, которые больше не доступны в хранилище, были отфильтрованы для удаления:

clean http://us.archive.ubuntu.com/ubuntu

Скажите, что ваши переменные (значения по умолчанию):

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh

Затем:

  • Хранилище будет отражено $mirror_path/parent-hostname/directory(так /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu)
  • clean.sh(Который будет представлять собой набор rmкоманд для удаления устаревших пакетов и каталогов) будет /var/spool/apt-mirror/var/clean.sh.
  • Журналы пойдут на /var/spool/apt-mirror/var.

apt-mirrorПакет устанавливает хроны ( /etc/cron.d/apt-mirror), который вы должны изменить , чтобы включить (раскомментировать строку , содержащую /usr/bin/apt-mirror). Вы должны также добавить задание cron для запуска clean.sh(я запускаю его еженедельно).

Конечно, вы должны заменить http://us.archive.ubuntu.com./ubuntuлюбое зеркало, которое вы предпочитаете.


1
Это действительно deb-amd64или deb arch=amd64? Я могу найти только последний в manpage
Anwar

1
@ Анвар первый. Последний для sources.list, который имеет похожий, но не идентичный формат. См. Manpages.ubuntu.com/manpages/trusty/en/man1/apt-mirror.1.html , где deb-powerpcнаходится в примере.
Муру

Ой! У меня не было опыта работы с apt-mirror. Мысль это было для sources.list. Спасибо
Анвар

2

Я рекомендую apt-cacher для людей с ограниченным пространством или для тех, у кого непомерные цены на интернет в их странах.

Предполагается, что apt-mirror требуется как минимум 15 ГБ для каждого варианта (32/64 бита) нужного вам дистрибутива. apt-cacher использует только те пакеты, которые вы установили.

Прочтите Создание локального репозитория Ubuntu с помощью Apt-Mirror и Apt-Cacher для получения более подробной информации / инструкций, пожалуйста.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.