Как создать локальный репозиторий с помощью способного зеркала и mirrorkit?

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

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

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

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

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

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

  • Только Испытанный Тар, но не Точный Пингвин или Единорог Utopic.

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

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

9
задан 21 February 2017 в 05:43

2 ответа

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

  • выпуска ( надежного , точного и т. Д.)
  • архитектуры ( amd64 , i386 и т. Д.)
  • тип пакета (двоичный [ deb ] vs исходный [ 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 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. clean.sh (который будет набором команд rm для удаления устаревших пакетов и каталогов) будет / var / spool / apt-mirror / var / clean.sh .
  • Журналы будут идти в / var / spool / apt-mirror / var .

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

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

9
ответ дан 23 November 2019 в 05:35

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

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

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

2
ответ дан 23 November 2019 в 05:35

Другие вопросы по тегам:

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