Ubuntu archive mirror что это

Обновлено: 17.05.2024

apt-mirror - это простая и удобная утилита для создания локальных копий репозиториев Ubuntu, использующая такой же синтаксис, как и в файле /etc/apt/sources.list , в котором указываются все репозитории для Ubuntu.

Локальные копии репозиториев нужны для установки программ на машины с Ubuntu, не подключённые к интернету. В этом случае можно создать копию нужных репозиториев на внешнем диске или на ноутбуке на компьютере, у которого есть доступ к интернету, а затем подключить эту копию в качестве репозитория к машинам, на которых интернета нет. Для этого вам потребуется компьютер с установленной Ubuntu и безлимитным доступом к интернету.

Локальная копия официального репозитория Ubuntu 10.10 только для одной архитектуры i386 занимает 36.2 GiB, учтите это.

Итак, на компьютере, подключённом к интернету и с установленной Ubuntu, ставим пакет apt-mirror через любое средство установки пакетов, например, командой

Далее необходимо определиться, в какой каталог складывать копию репозитория. Будем считать для примера, что копия репозитория будет складываться в папку /media/data/ubuntu-repo/ , которая находится на отдельном винчестере, примонтированном в каталог /media/data . Конечно нужно убедиться, что в указанной папке достаточно места для размещения полной копии нужных вам репозиториев.

Дальнейшая работа с локальной копией репозитория

После завершения работы локальные копии всех репозиториев, указанных в mirror.list , окажутся в папках mirror/имя_репозитория в указанной основной рабочей папке apt-mirror . Таким образом копия репозитория, который был задан в mirror.list как

Подключение созданной копии репозитория к другим компьютерам, разбивка её на части для записи на диски и другая полезная информация приведена в основной статье:

Создание "доверенного" репозитория

FIXME

- Описание, зачем это нужно.

Создание зеркала репозитория Ubuntu с помощью apt-mirror


Зачастую при развёртывании сети машин на Ubuntu возникает проблема с организацией доступа в интернет с целью установки новых программ из стандартных репозиториев. Например, когда доступен лишь очень узкий канал в интернет или траффик не является безлимитным. К счастью, принцип организации пакетной системы Ubuntu позволяет очень гибко управлять тем, что и откуда качать с использованием штатных средств управления пакетами. В частности, вы можете создать локальную копию нужных вам интернет-репозиториев Ubuntu и подключить её как основной источник приложений в вашу локальную сеть. Таким образом все компьютеры в вашей сети не будут требовать соединения с интернетом для установки новых программ и обновлений. И при этом, что самое важное, сохранится весь функционал пакетных менеджеров.

В этой статье я расскажу как создать локальную копию репозитория с помощью утилиты apt-mirror. Это простая и удобная утилита для создания локальных копий репозиториев Ubuntu, использующая такой же синтаксис, как и в файле /etc/apt/sources.list, в котором указываются все репозитории для Ubuntu.


Всё, что вам потребуется — это компьютер с установленной Ubuntu и безлимитным доступом к интернету.

Локальная копия официального репозитория Ubuntu 10.10 только для одной архитектуры i386 занимает 36.2 GiB, учтите это.

Итак, на компьютере, подключённом к интернету и с установленной Ubuntu, ставим пакет apt-mirror через любое средство установки пакетов, например, командой


Далее необходимо определиться, в какой каталог складывать копию репозитория. Будем считать для примера, что копия репозитория будет складываться в папку /media/data/ubuntu-repo/, которая находится на отдельном винчестере, примонтированном в каталог /media/data. Конечно нужно убедиться, что в указанной папке достаточно места для размещения полной копии нужных вам репозиториев.

Настройка apt-mirror

Всё, что осталось сделать, это отредактировать конфигурационный файл apt-mirror, добавив туда нужные опции и нужные репозитории, и запустить сам процесс зеркалирования. Этот файл называется /etc/apt/mirror.list. Ниже представлено комментированное его содержимое для случая создания копии официальных репозиториев Ubuntu 10.10 для архитектуры i386 в папке /media/data/ubuntu-repo/:


Теперь осталось запустить apt-mirror и дождаться окончания его выполнения. Перед запуском необходимо убедиться, что основной каталог /media/data/ubuntu-repo/, а так же все вспомогательные каталоги mirror, var и skel внутри него, существуют и доступны для записи пользователю apt-mirror. Создать все эти каталоги можно командами


Присвоить нужные права проще всего выставив владельцем этих каталогов пользователя apt-mirror:


После этого можно запустить apt-mirror командой


После загрузки индексов apt-mirror сообщит вам, какой объём пакетов будет загружен:


Вам останется только дождаться завершения скачивания.

Автоматическое обновление локальной копии репозитория

Можно настроить автоматическое обновление локальной копии репозиториев с помощью заданий cron. Для этого просто раскомментируйте нужную строчку с заданием в файле /etc/cron.d/apt-mirror:


Можете изменить время выполнения задания (по умолчанию — в 04:00 каждый день).

Дополнительные возможности apt-mirror

При использовании схемы, описанной выше, apt-mirror скопирует из указанных репозиториев только пакеты. Однако кроме этого в репозиториях Ubuntu содержится ещё достаточно много полезных данных, например, сетевые установщики. Всё это при использовании инструкции "clean" для этих репозиториев будет удалено, поскольку не содержится в актуальных индексах. Чтобы принудительно не очищать некоторые директории можно указать в файле mirror.list инструкцию "skip-clean" с нужным адресом. Например:


Можно указывать архитектуру непосредственно в APT строке репозитория, например вот так:

Дальнейшая работа с локальной копией репозитория

После завершения работы локальные копии всех репозиториев, указанных в mirror.list, окажутся в папках mirror/имя_репозитория в указанной основной рабочей папке apt-mirror. Таким образом копия репозитория, который был задан в mirror.list как


Затем сделать симлинк /var/www/ubuntu, указывающий на вашу папку с репозиторием:


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


В вашем случае, возможно, кроме main и restricted, будут и другие компоненты.

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


Путь, конечно, в вашем случае может отличаться.

Напоследок хочется заметить, что во многих случаях совершенно не обязательно делать копию всего репозитория, а достаточно использовать что-то вроде apt-cache или apt-move.

Дополнительные возможности apt-mirror

При использовании схемы, описанной выше, apt-mirror скопирует из указанных репозиториев только пакеты. Однако кроме этого в репозиториях Ubuntu содержится ещё достаточно много полезных данных, например, сетевые установщики. Всё это при использовании инструкции clean для этих репозиториев будет удалено, поскольку не содержится в актуальных индексах. Чтобы принудительно не очищать некоторые директории можно указать в файле mirror.list инструкцию skip-clean с нужным адресом. Например:

Можно указывать архитектуру непосредственно в APT строке репозитория, например вот так:

Краткое описание руководства

Репозиторий — это хранилище пакетов с программным обеспечением. Подробности о репозиториях можно прочитать в соответствующей статье.

Собственный репозиторий нужен для установки программ на компьютеры, не имеющие доступа в интернет. Если доступ в интернет у вас есть, и вы хотите сэкономить время и трафик при установке программ на множество компьютеров, то лучше использовать кэширование (проксирование) репозиториев.

FIXME

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

Apt-mirror, локальный репозиторий Ubuntu — это очень просто

Не удержался, чтоб не описать свой опыт создания локального репозитория после прочтения этой статьи.
Сразу замечу, что у меня была задача обновлять кучу Ubuntu серверов, достаточно быстро и прочно обосновавшихся в организации под нужды разработчиков, не пуская их при этом в Интернет. Для Windows есть WSUS, а что же для Ubuntu?

Итак, небольшая заметка, как при помощи apt-mirror сделать локальное зеркало репозиториев Ubuntu.

Прежде всего, понадобится компьютер (или виртуальная машина) с Ubuntu (я использовал 10.04) с выходом в интернет и достаточным количеством свободного места на локальном диске. В моем случае зеркалировались репозитории только для версии 10.04 x64. Общий объем занятого пространства:

Еще необходимо сделать symbolic link для нашего вэб-сервера, который и будет обеспечивать доступность пакетов для внутренних клиентов.
cd /var/www/
sudo ln -s /var/spool/apt-mirror/mirror/<mirror_name>/ubuntu/ ubuntu

Распространение репозитория

FIXME

- описание.

Прокси репозитория

FIXME

Репозиторий на CD/DVD

APTonCD
Вручную через debmirror

Описана последовательность действий для lucid (10.04) в других версиях некоторые шаги могут не понадобиться или наоборот - потребоваться что-то ещё.

1. Скачиваем зеркало с сайта: (в созданый для этого каталог, ессно)

Если надо сырцы убираем ключ —nosource.

Если не надо amd64 убираем соответственно ,amd64

или через консоль

После этого в домашнем каталоге появится файл

/ubuntu_packages_popularity.txt, в котором содержится список пакетов, отсортированный по убыванию популярности. На следующем шаге мы подсунем его debpartial. Таким образом, все самые необходимые пакеты окажутся на первых двух-трех DVD.

4. Готовим каталоги дисков:

Соответственно, если нужен amd64 то замените слово i386 на него. Если на предыдущем шаге вы создали список популярности пакетов, то нужно указать debpartial обрабатывать пакеты по порядку в соответствии с ним - добавьте опцию –include-from=имя файла

5. Создаём скрипт ruby для копирования пакетов по дискам.

Любым текстовым редактором. Вот его содержимое, которое необходимо туда скопировать:

Я не нашёл, как делать спойлеры в этой вики, сверните кто-нибудь этот код под спойлер, плиз!

6. Распихиваем пакеты по дискам вышесозданным скриптом:

И так далее. Зависит от того, сколько у вас создалось каталогов-дисков в ls ubuntu-dvd/

7. Создаём идентификаторы дисков чтобы apt(synaptic) не ругался:

В этих каталогах надо создать файл info со следующим содержанием:

Можно написать что-нибудь свое. Номер DVD-X соответственно менять.

8. И наконец последний шаг. Закатываем пакеты в образы:

Чтобы потом не запутаться надо где-то отметить дату копирования зеркала и архитектуру.

Не забывайте изменять цифры дисков в процессе создания образов и копирования.

Для автоматизации выдрать всё используемое из истории команд bash и вписать в один файл-скрипт.

Если что-то из ваших скриптов не запускается не забывайте про chmod +x filename

При нехватке места на диске можно немного сэкономить место, используя симлинки вместо копирования. Однако они могут некорректно прочитаться. Таким вот образом:

Внимательно смотрим на выхлоп раби скрипта. В идеале должно быть что-то подобное:

Т.е. все файлы у нас скопировались нормально.

Долгой жизни и процветания. — darkshvein 08.08.2010 12:14

Автоматическое обновление локальной копии репозитория

Можно настроить автоматическое обновление локальной копии репозиториев с помощью заданий cron . Для этого просто раскомментируйте нужную строчку с заданием в файле /etc/cron.d/apt-mirror :

Можете изменить время выполнения задания (по умолчанию - в 04:00 каждый день).

Настройка apt-mirror

Всё, что осталось сделать, это отредактировать конфигурационный файл apt-mirror , добавив туда нужные опции и нужные репозитории, и запустить сам процесс зеркалирования. Этот файл называется /etc/apt/mirror.list . Ниже представлено комментированное его содержимое для случая создания копии официальных репозиториев Ubuntu 10.10 для архитектуры i386 в папке /media/data/ubuntu-repo/ :

Теперь осталось запустить apt-mirror и дождаться окончания его выполнения. Перед запуском необходимо убедиться, что основной каталог /media/data/ubuntu-repo/ , а так же все вспомогательные каталоги mirror , var и skel внутри него, существуют и доступны для записи пользователю apt-mirror . Создать все эти каталоги можно командами

Присвоить нужные права проще всего выставив владельцем этих каталогов пользователя apt-mirror :

После этого можно запустить apt-mirror командой

После загрузки индексов apt-mirror сообщит вам, какой объём пакетов будет загружен:

Вам останется только дождаться завершения скачивания.

Получение репозиториев

FIXME

- описание.

Способ №1. При помощи debmirror

Способ №2. При помощи ubuntu-repository.exe

http://mozgoed-mgoy.narod.ru/ubuntu-repository/screen.jpg

Многих также интересует вопрос «Какой размер репозитория ubuntu» и «как удалить старые версии пакетов репозитория ubuntu»?

0.Требования к запуску программы. Практически такие же как и у автора программы.

Ubuntu 10.10 - Нужен пакет Mono. Запускать можно через консоль «mono ubuntu-repository.exe».

1.Как узнать размер скачиваемого репозитория? Моя программа позволяет в интерактивной форме узнать размеры репозитория и отдельных его частей.

Выбираете компоненты распространения (вторая колонка).

2. Как скачать Ubuntu репозиторий? Данная программа может скачать ubuntu репозиторий с опциональным выбором его частей.

Выбираете компоненты распространения (вторая колонка).

3. Как удалить устаревшие пакеты из скачанного репозитория? Такой вопрос часто возникает когда вы несколько раз обновили репозиторий с помощью другой программы, но она забыла удалить устаревшие пакеты. А по причине огромного размера репозитория сделать это вручную очень-очень долго.

Нажать кнопку «Обзор» и выбрать корневую папку репозитория. (в ней должны быть папки «dists» и «pool») Нажать кнопку «Удалить старые пакеты». Дождаться окончания сканирования пакетов в репозитории (окно может зависнуть, потому что ещё не успел распаралелить процессы), и дождаться окончания сканирования пакетов в папке «pool» (Процесс ещё более долгий… :( ) Откроется окошко о результатах предварительного сканирования. Согласившись с вопросом о начале Удаления, ждём окончания работы программы. Находятся все Packages.gz в файле Release в корне репозитория и из каждого архива вынимаются все ссылки на файлы. Потом для каждого файла из первого списка ищется соответствие во втором списке. Если находится, то файл не трогается. Если не находится, то файл физически удаляется.

Данная функция программы тоже полностью Portable.

-Исправлена ошибка при удалении старых пакетов (удалялся один пакет)

+При удалении старых пакетов пустые папки теперь удаляются

Создание зеркала репозитория

FIXME

Необходимо вынести различные способы создания зеркала (debmirror, apt-mirror, apt-move etc) каждый в свою статью, здесь же оставить только общие сведения по созданию зеркал (подключение их к компьютерам, разбивка на CD диски и т.д.) со ссылками на сопутствующие статьи. Пример для apt-mirror:

FIXME - тут старая статья - пока не измененная

Если нужно создать локальный репозиторий, то делаем следующее.

Устанавливаем пакет dpkg-dev (содержит нужную нам утилиту dpkg-scanpackages)

Создаём директорию, в которой будут храниться deb-пакеты. Например

Копируем туда все свои пакеты и пакеты из кэша (их там может не быть, но в любом случае, лишним не будет)

Переходим в нашу новую директорию с пакетами и собираем файл Packages.gz (хранит список пакетов и информацию о них, необходим для работы пакетных менеджеров с репозиторием)

Теперь можно скопировать директорию Packages на любой носитель, например флешку (если это нужно)

И в любое место добавляем нужную строку. В общем виде путь выглядит так: deb file:/путь/к/пакетам ./ . Примеры:

Также репозиторий можно добавить с помощью Synaptic: Система - Администрирование - Источники приложений - ПО сторонних производителей - Добавить.

Читайте также: