Ubuntu archive mirror что это

Обновлено: 05.07.2024

Для системных администраторов данная тема является чуть ли не первоочередной по важности. Ведь обычно любая организация, заботясь о безопасности и надёжности работы своих серверов и вообще сетей, разрабатывает и внедряет определённые политики безопасности. Которые, в свою очередь, предусматривают ограничения на доступ в открытый интернет для большинства клиентских машин из локальной сети. Однако и без этого никак нельзя, поскольку при их обслуживании необходимо проводить обновления программного обеспечения (ПО). Распространение этих обновлений при помощи сменных носителей очень неудобно, а при наличии большого числа компьютеров в обслуживаемой локальной сети практически невозможно. В данном случае, рациональным вариантом является организация локальных репозиториев пакетов, предварительно загруженных из Интернет. О двух основных подходах при решении данной задачи на примере систем Ubuntu будет далее изложено в данной статье.

Как работают репозитории пакетов в системах Linux?

Разработчики для поддержки своих дистрибутивов и комфортной работы пользователей снабжают системы управления пакетами (СУП) специальными ссылками. Они указывают на удалённые сервера, на которых хранятся самые актуальные и протестированные разработчиками пакеты ПО для данного дистрибутива. Благодаря этим ссылкам СУП «знает» когда и откуда загрузить и установить обновления пакетов. Эти ссылки могут указывать как на удалённый ресурс, так и на локальный. Во втором случае это может быть как другой компьютер в локальной сети, так и локальный накопитель и/или даже, если постараться — оптический привод.

Сами эти ссылки хранятся в файле sources.list, который в Ubuntu расположен по адресу /etc/apt/sources.lis t. Сама ссылка (для Ubuntu) выглядит примерно так:

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

Это репозиторий, созданный разработчиком среды разработки CodeLite, специально для Ubuntu. И эта ссылка была добавлена в файл sources.list уже вручную самим пользователем-администратором компьютера. После чего становится возможной автоматическая установка актуальных и стабильных версий пакетов CodeLite, а также их обновление. А вот так может выглядеть ссылка на репозиторий, хранимый на оптическом носителе:

Использование прокси для организации локального репозитория

Данный метод подразумевает доступ к репозиториям через кеш на прокси-компьютере, который имеет прямое подключение в Интернет. Механизм работы такого локального репозитория заключается в следующем:

  • на какой-либо клиентской машине в обычном порядке запрашивается какой-либо пакет для установки/обновления через компьютер-сервер;
  • запрошенный пакет скачивается сервером, сохраняется в специально отведённом хранилище-кеше и далее становится доступным всем остальным клиентам;
  • в качестве распространителя пакетов клиентам выступает веб-сервер Apache, поэтому его установка обязательна.

Итак, для начала необходимо установить всё необходимое, т. е. веб-сервер и саму утилиту кеширования пакетов:

При установке apt-cacher будет показан диалог настройки, в котором можно настроить нужное поведение утилиты, например задать автозапуск и работу в режиме демона. Также эти и некоторые другие важные настройки можно сделать (например с помощью редактора nano) в конфигурационном файле /etc/default/apt-cacher . Для включения автозапуска apt-cacher нужно установить параметр AUTOSTART в значение «1»:

Далее, необходимо определить, какие клиенты должны иметь доступ к кешу репозитория, отредактировав конфигурационный файл /etc/apt-cacher/apt-cacher.conf:

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

Теперь необходимо указать клиентам, куда им нужно обращаться для установки пакетов и обновлений. Для этого на клиентских машинах нужно создать файл /etc/apt/apt.conf.d/01proxy с помощью того же редактора nano:

И добавить в него строку со следующей инструкцией:

Здесь в качестве адреса сервера, на котором установлен и работает apt-cacher указывается 192.168.1.100. Конечно, это может быть любой другой адрес, настроенный для этого сервера.

Теперь можно проверить работу локального репозитория (а точнее удалённого, но доступного через прокси), выполнив команду обновления данных о доступных пакетах:

APT-MIRROR – полноценный локальный репозиторий

Данный способ является более «продвинутым» по сравнению с использованием apt-cache. Поскольку предполагает наличие полноценного хранилища пакетов прямо на локальном компьютере/сервере или в локальной сети. Но сначала такое хранилище необходимо создать, загрузив в него все необходимые пакеты. Как и в случае с apt-cache, в качестве распространителя пакетов выступает веб-сервер Apache. Порядок настройки локального репозитория при помощи утилиты apt-mirror следующий:

  1. установка необходимых пакетов: apt-mirror и apache2;
  2. создание локального хранилища и настройка источников для загрузки, загрузка пакетов в хранилище;
  3. открытие доступа к готовому хранилищу для клиентов;
  4. настройка клиентов для использования локального репозитория.

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

Далее, нужно создать локальное хранилище пакетов, пусть это будет каталог /localrepo :

Теперь в конфигурационном файле /etc/apt/mirror.list нужно отредактировать строку с инструкцией «set base_path». Указав в ней только что созданный каталог для хранилища:

Далее, в этом же файле можно добавить необходимые репозитории, с которых будут загружены пакеты. Можно скопировать все стандартный репозитории из /etc/apt/sources.list .
Сохранив настройки можно запустить загрузку пакетов командой:

Это может занять длительное время, в зависимости от скорости соединения с Интернет. Данную команду очень полезно добавить в список регулярных процедур cron, чтобы локальный репозиторий обновлялся автоматически.

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

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

Теперь ссылка ubuntu будет использоваться для задания репозиториев на стороне клиентов с помощью редатирования файла /etc/apt/sources.list:
Открыв этот файл (с использованием команды sudo) с помощью редактора nano, нужно теперь добавить в него следующие репозитории:

Здесь адрес 192.168.1.100 — это IP-адрес компьютера, на котором был создан и настроен локальный репозиторий.
Теперь, для работы с пакетами можно использовать обычные команды apt:

Заключение

В заключение следует напомнить, что способы организации локальных репозиториев, описанные выше подходят для систем на базе формата debian-пакетов. Для систем, основанных на RPM следует использовать другие инструменты.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Чтобы создать зеркало репозитория, следуйте этим инструкциям

Это не покроет все остальные варианты, но даст возможность поэксперементировать. Чтобы всё прошло успешно, понадобится 8,2 ГБ дискового пространства для основных исходников и бинарных пакетов. Это число со временем возрастёт.

Альтернативная точка зрения

Создание локального репозитария - позволит вам создать локальный репозиторий для пакетов, принесенных на флешке или другом носителе, а потом использовать synaptic/kynaptic (или apt-get install package_name).

apt-mirror - Эта инструкция покажет, как создать зеркало Debian/Ubuntu для вашей локальной сети при помощи утилиты apt-mirror.

Начало процесса создания зеркала

Пожалуйста, заранее убедитесь, что для пакетов, которые вы собираетесь скачать, достаточно места!
(Если вы продвинутый пользователь, то можете создать разные части зеркала на разных носителях, но в этом путеводителе этот вариант не описывается.)
Своё зеркало мы будем создавать в /home/ при помощи

Создайте файл `mirrorbuild.sh`

Чтобы создать файл mirrorbuild.sh
Откройте предпочитаемый вами редактор так

Содержимое скрипта зеркала, пожалуйста адаптируйте его под свои нужды

Как использовать файл

  • Сохраните файл и выйдите из редактора.
  • Теперь поменяйте права и владельца зеркала. Имя группы - ваше имя пользователя:
  • И заключительная часть настраивания зеркала - загрузка файлов

Теперь прогуляйтесь. Вашей машине придётся много чего скачать!

Установите зеркало

Нам нужно установить веб-сервер - Apache2. Вы можете выбрать apache версии 1.3, но это выходит за рамки этого документа.
Обычно это делается так: sudo apt-get install apache2

Затем (для простоты) давайте сделаем ссылку из /home/UbuntuMirror на /var/www/ubuntu.

Создайте cronjob чтобы зеркало обновлялось

Чтобы зеркало оставалось актуальным, добавьте скрипт зеркала в cron. Чтобы отредактировать файл crontab пользователя root, выполните:

И вставьте эту строку:

Она будет запускать скрипт каждые двенадцать часов на второй минуте часа. УБЕДИТЕСЬ что под добавленной строкой есть пустая строка, иначе команда никогда не выполнится. Если вам свойственна педантичность, перезапустите cron:

Настройте клиенские системы

Откройте терминал и введите:

Теперь в редакторе наберите следующие строки:

Затем сохраните и закройте файл.
Если теперь запустить

, обновления будут загружаться с вашего нового сервера!

RussianDocumentation/Debmirror (последним исправлял пользователь toheen 2009-04-18 08:10:52)

The material on this wiki is available under a free license, see Copyright / License for details.

При тестировании плейбуков на чистой Ubuntu (а как же еще?) самые большие накладные расходы по времени (субъективно) и уж точно самые большие по трафику уходят на установку пакетов из системного репозитория. Особенно это заметно, когда видишь, что один и тот же тест Travis CI прогоняет в 1.5 раза быстрее.

Tl;dr: не делайте локальный репозиторий через apt-mirror для мелких задач, не стоит оно того. Вместо этого нужно поднять кеширующий сервер через apt-cacher-ng.

Tux and servers

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

Для синхронизации локального репозитория с основным вариант один - apt-mirror . Официальный сайт считает нас умными, поэтому все его инструкции заключаются в 3 строчках:

Все действительно почти так просто. Почти.

Выбор самого быстрого репозитория

Пакета нет в репозитории Ubuntu, поэтому качаем из репозитория Debian В результате вы получите список из 3 самых быстрых (по пингу) репозиториев:

Конфигурация

Это же в виде команд:

Добавляем в cron задание по обновлению репозитория, я буду запускать в 1 ночи:

Настраиваем nginx на отдачу репозитория, у меня конфиг такой:

Все готово, осталось запустить apt-mirror и подождать денек: у меня выкачивалось 142 Гб. Причем обновления тоже будут весить ощутимо, как я понял: через день я запустил apt-mirror еще раз, он скачал 1.5 Гб.

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

date = “Ошибка” slug = “Ошибка/why-you-should-not-use-apt-mirror-for-ansible-tests-in-docker” Хотя нет, насладиться сразу конечно не получилось. По какой-то причине (наверное причина в месте на диске), apt-mirror выкачивает только amd64 пакеты, из-за чего apt-get update ругается:

Казалось бы ничего страшного, но уверен, что в тестах ненулевой код выхода apt-get будет все останавливать, поэтому придется чинить.

Решение напрашивается: явно указывать в sources.list , что в репозитории только amd64 пакеты, то есть вместо:

С настройкой apt-mirror закончили, перейдем к использованию в тестах.

Переключение Docker контейнера на локальный apt репозиторий

  1. [Плохой способ] Подмена через DNS
  2. [Хороший способ] Подмена /etc/apt/sources.list

Я выбрал хороший. Делается это монтированием файла на место /etc/apt/sources.list :

Чтобы не тащить с собой артефакты, файл создается командой.

После этого проверяем, это должно отработать нормально:

Если readlink выдает ошибку readlink: illegal option -- f , тогда вы скорее всего сидите на MacOS и вам нужно сделать brew install coreutils и прописать в переменную PATH то, что он просит.

Сравнение скорости

Я потратил около 4 часов на то, чтобы настроить локальные репозитории, посмотрим, сколько я сэкономил времени. Скорость инета у меня 30 мбит.

Я сравнил отработку time molecule test на 3 ansible ролях, вот результаты:

Роль Стандартный репозиторий Локальный репозиторий Travis CI:
ansible-role-common 8:04 6:18 4:32
ansible-role-mysql 3:41 3:22 3:46
ansible-role-zsh 3:29 2:54 4:08

Как видно, прирост небольшой, всего 20-30%. UPD 26.02.2017: на при написании статьи про apt-cacher-ng я перепроверил результаты и разница сократилась до 10-20%.

Тут надо заметить, что в test входит проверка идемпотентности, где никакие пакеты не ставятся. Тогда я сравнил время выполнения ‘molecule converge’ для ansible-role-mysql и получил немного лучшие результаты: 2:30 против 3:17, это уже почти в 2 раза быстрее.

Роль Стандартный репозиторий Локальный репозиторий
ansible-role-common 8:15 6:09
ansible-role-mysql 3:17 2:30
ansible-role-zsh 4:05 2:43

Выводы по поводу apt-mirror

Результаты меня немного расстроили. Оказалось, что поразительного прироста в скорости, на который я надеялся, не будет.

Плюсы:

  • один раз потратил время, чтобы при каждом тесте ждать меньше
  • уменьшает желание тестировать не на чистой машине
  • интернет-канал не занимается в рабочее время

Минусы

  • эффект слабый, 20-30%
  • сложности с пробросом файла sources.list
  • уход от стандартной конфигурации Gitlab CI
  • разные конфиги для Travis CI и Gitlab CI

На основе этого сделал для себя вывод: это подходит только для локального постоянного применения, в остальных случаях минусы перевешивают.

Что-то тут не так…

После этого я задумался: а как делают “большие”? Из серьезных решений для локальных репозиториев я знаю только Artifactory. Пошел посмотреть, как у них обстоят дела с зеркалами и нашел: они умеют быть зеркалом, но не рекоменуют их так использовать, т.к. это неэффективно. Вместо этого они предлагают пользоваться ими как кеширующим сервером. Такие дела…

UPD 26.02.2017: перешел на использование apt-cacher-ng, в моем случае он лучше по всем параметрам, подробности читайте в продолжении

Я хочу обновить мой sources.list файл с самым быстрым сервером из командной строки в новой установке Ubuntu Server. Я знаю, что это легко сделать с графическим интерфейсом, но, кажется, нет простого способа сделать это из командной строки?

Кажется, он не включен в более новую Ubuntu из-за проблем с безопасностью: смотрите: Отчет об ошибках

Но.. Обычно я использую команду ping, чтобы узнать скорость соединения с каким-либо местом. Количество прыжков и задержка.

Вам больше не нужно искать - как объяснил ajmitch, вы можете использовать deb mirror автоматически выбрать лучшее зеркало для вас.

apt-get теперь поддерживает метод mirror, который автоматически выберет хорошее зеркало в зависимости от вашего местоположения. Ввод:

на вершине в вашем /etc/apt/sources.list файл должен быть всем, что нужно, чтобы автоматически выбрать зеркало для вас в зависимости от вашего географического положения.

Пользователи Lucid (10.04), Maverick (10.10), Natty (11.04) и Oneiric (11.10) могут заменить precise с соответствующим именем.

Вот один способ, который всегда будет работать, используя старый добрый netselect и немного grep магия:

Взлом у терминала-наркомана "найди лучший сервер"!

Найдите самые быстрые зеркала Ubuntu из своего местоположения, либо в актуальном состоянии, либо самое большее на шесть часов позже с этим (я объясню это ниже, извините, что в Markdown это не очень хорошо)

Это кавычки (не вставляйте, просто для объяснения)

Вот пример выходных данных из Калифорнии, США:

Вот скрипт Python, который я написал, который находит зеркала с самой низкой задержкой TCP.

Сценарий также предоставляет данные о пропускной способности и состоянии, взятые из панели запуска, и генерирует новый sources.list файл автоматически или с помощью зеркала, выбранного из списка.

Пример использования, который позволяет вам выбрать из 5 зеркал США с самой низкой задержкой для вашей машины:

Пожалуйста, дайте мне знать, если вы считаете это полезным или у вас есть предложения (=

Я знаю, что это не дает прямого ответа на вопрос OP, но в версии Ubuntu для настольных ПК /GUI есть кнопка, которая находит лучшее зеркало для вас. Казалось, что это работает довольно хорошо, поэтому я кратко рассмотрел это, но у меня не было времени, чтобы продолжить.

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

Если кому-то интересно, похоже, что тест находится в:

Опять же, это примерно так же далеко, как я, но я решил оставить это здесь на случай, если кто-то захочет. Я, вероятно, вернусь к этому, когда у меня будет немного больше времени.

Команда, которая находит быстрые зеркала

На Ubuntu 18.04 я получил хорошие результаты, запустив

Это распечатывает список зеркал, организованных по "времени" (не объяснено), и затем я использовал одно из зеркал, которое им заняло самое высокое место.

Подробнее

Для меня было полезно протестировать некоторые из лучших результатов, выведенных этой командой, установив их в качестве моего зеркала в /etc/apt/sources.list а затем делать

чтобы увидеть, сколько времени понадобилось, чтобы загрузить список пакетов с этого зеркала. Я проверил лучшие три предложения, и все они были быстрыми, но одно из них было в два раза быстрее, чем два других в time sudo apt update тестовое задание.

Вот пример вывода из python /usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py :

Для командной строки вы можете использовать инструмент Python под названием apt-smart

Пример использования, который позволяет вам перечислить ранжированные зеркала в вашей стране (автоматически обнаруживать):

С -l , или --list-mirrors , вы получите (пример вывода с сервера Travis CI US):

Конечно, apt-smart также можете изменить свой sources.list, если вы хотите:

С -a , или --auto-change-mirror чтобы обнаружить доступные зеркала, ранжируйте зеркала по скорости соединения и состоянию обновления и обновите /etc/apt/sources.list, чтобы использовать лучшее доступное зеркало.

С -c , или --change-mirror MIRROR_URL обновить /etc/apt/sources.list, чтобы использовать данный MIRROR_URL.

По сравнению с другими инструментами:

Вы можете легко установить apt-smart с помощью pip , подробные инструкции по установке и использованию copy'n'paste смотрите в Project Readme.

Загрузка из основного архива Ubuntu идет медленно, даже если это не день релиза, как я могу получить apt-get для автоматического использования близкого мне зеркала?

apt-get теперь поддерживает метод "зеркала", который автоматически выбирает хорошее зеркало в зависимости от вашего местоположения. Помещение:

сверху в вашем файле /etc/apt/sources.list должно быть всем необходимым для того, чтобы он автоматически выбрал для вас зеркало, основываясь на вашем географическом местоположении.

Lucid (10.04), Maverick (10. 10), Нэтти (11.04), И Oneiric (11.10) пользователи могут заменить precision на соответствующее имя.

Я всегда ходил с 'выберите лучший сервер' GUI инструмент: из Ubuntu Software Center, перейдите в Edit -> Software Sources в меню. (Вы также можете сделать это из Параметры для Synaptic или Менеджера обновлений).

На вкладке Ubuntu Software есть выпадающий список рядом с "Загрузка с:" Если вы выберете "Другое. " вы получите кнопку с надписью "Выберите лучший сервер"; нажав на нее, Ubuntu запустит некоторые тесты, чтобы увидеть, какое зеркало даст лучшую скорость загрузки.

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

Вот несколько скриншотов для графического метода, как предложил Хорхе:

Откройте Центр программного обеспечения Ubuntu, нажмите Edit в глобальном меню и перейдите в 'Software Sources. '

Нажмите на выпадающее меню рядом с 'Download From' и выберите 'Other. '

Нажмите на Выберите лучший сервер

Выделяется лучший сервер. Щелкните по Выберите сервер , и все готово!


Для быстрого обновления я загрузил альтернативный диск, используя торренты. После такого апгрейда я все-таки оказался с системой, у которой еще не все обновления (вероятно, после того, как ISO был упакован).

Совет для пользователей Kubuntu 12.04 .

Из Центра программного обеспечения Muon:

  • Настройки> Настроить программное обеспечение Источники

Затем на вкладке «Программное обеспечение Kubuntu»:

Будет выбран сервер с самым быстрым пингом (самый быстрый сервер в то время)

Я нахожусь в Великобритании, но мой самый быстрый сервер - «сервер для Непала». - примерно в 10 раз быстрее, чем то, что я получал с сервером по умолчанию для Великобритании!

Здесь - написанный мной скрипт Python, который возвращает список зеркал с наименьшей задержкой для указанной страны.

Скрипт также предоставляет информацию о пропускной способности и статусе, взятую с зеркал. 'страницы панели запуска и сгенерирует новый файл sources.list , используя зеркало, выбранное из списка.

В идеале, весь метод распространения адаптировал торрент-протокол, поэтому нам не пришлось бы ничего настраивать.

Déi geographesch Lag gëtt net ëmmer dee beschte Spigel. Zum Beispill, ech wunnen a BC Kanada, an déi meescht, déi an dëser Provënz sinn, sollten e Spigel a BC, Kalifornien oder an engem Pazifesche Staat fannen, vläicht souguer Arizona.

Awer hei am Norden meng ISP (am Géigesaz zu der Telefonsfirma. ) huet nëmmen eng Faserlinn aus dëser Stad eraus, an et geet direkt op Calgary (1000km ëstlech vun hei) wou et en NEX steckelt gedeelt mat der Linn op Ucalgary, wou se e léiwen Debian an Ubuntu hunn a wien-weess-wat- soss Spigel. Et schéngt, datt d'Uni dee selwechten ISP huet wéi ech, an dofir ginn d'Transferraten a Megabyte pro Sekonn gemooss, am Géigesaz zu den 50-100 Kilobytes pro Sekonn, déi ech vun engem Standardspigel kréien.

Also. Ech recommandéieren Är lokal Internet Netzwierk Topologie ze kennen. Schéin Saache wéi Netzwierk Austausch kënne fir eng séier Verbindung mat spezifesche Plazen. Bleift am Netzwierk vun Ärem ISP kann e puer Geschwindegottelen ëmgoen, déi Dir soss an der Äussewelt hutt.

Dank dem Post betreffend dem GUI-Tool fir dëst z'änneren, hunn ech dee Spigel fonnt an als Standard gesat. Gutt Show fir dëst Thema!

Мой сценарий Python pt apt-smart , который автоматически находит зеркала в вашей стране, сравнивает и ранжирует их по статусу и скорости, наконец, при желании меняет sources.list.

Различия между apt-smart и другой упомянутый ответ apt-select :

Вы можете легко установить apt-smart через pip , подробные команды установки copy'n'paste см. В Project Readme .

Пример использования, который позволяет вы перечисляете ранжированные зеркала в своей стране:

С помощью -l или - list-mirrors вы получите (пример вывода с сервера Travis CI в США):

Простое добавление строк зеркала deb в /etc/apt/sources.list даст вам дублирующиеся исходные коды. Кроме того, поскольку apt проверяет только повторяющиеся строки , ошибки нет. Нам необходимо заменить исходное содержимое файла, чтобы предотвратить эту проблему.

Я составил полный список для замены исходного файла списка источников. Это включает в себя основной, ограниченный, универсальный, мультивселенную, предлагаемую и каноническую репозитории.

Примечание: строки для «предлагаемого» закомментированы. Кроме того, канонический «партнерский» репозиторий (с закрытым исходным кодом и проприетарный) не работает с зеркалами, поэтому эти строки остаются неизменными.

Сначала выполните следующую команду, чтобы сделать резервную копию и удалить файл списка источников :

После сохранения файла выполните следующую команду, чтобы автоматически применить вашу версию Ubuntu (bionic, eoan, xenial и т. д.):

Наконец , выполните следующую команду, чтобы обновить apt:

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