Как сделать зеркало debian

Добавил пользователь Алексей Ф.
Обновлено: 10.09.2024

Apt-spy утилита с помощью которой можно подобрать самое быстрое зеркало. Apt-spy сам сгенерирует новый файл /etc/apt/source.list с самыми быстрыми серверами.

Сразу сделаем обновление репозиториев:

Для начала установим саму утилиту, если она не стоит:

Что бы получить список всех зеркал:

Ищем самый быстрый сервер для примера в Европе (ветка testing), запускаем:

Что бы найти самое быстрое зеркало stable в Украине, выполняем:

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

Если есть вопросы, то просим Вас посетить наш форум, на котором Вы сможете попросить бесплатно описание.

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

Очень интересный материал.

Очень интересный материал. Честно говоря, я представлял все это немного не так. В общем то я спасибо хотел сказать.

Все команды, которые вносят изменения в систему, выполняются:

  • в Astra Linux - с правами администратора системы;
  • в Astra Linux Special Edition с включенным МКЦ - с правами администратора системы с высоким уровнем целостности;

То есть, команды выполняются либо применяя sudo для каждой выполняемой команды, либо для группы команд - после входа в сессию администратора:

Установка пакетов при подключенном репозитории производится в терминале командой:

также установка пакетов и настройка репозиториев может производиться с помощью графического менеджера пакетов Synaptic.

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

Эти строки добавить в файл /etc/apt/sources.list или в файлы с произвольными именами в каталоге /etc/apr/sources.list.d.

Для указания в качестве репозитория оптического диска установить диск в привод и использовать команду:

После каждого внесения изменений в список репозиториев следует обновить списки пакетов:

sudo apt update

Установщик пакетов по умолчанию, если иное не задано в файлах настройки приоритетов репозиториев, старается устанавливать самые новые версии пакетов.
При этом изменения номеров минорных версий установщиком не учитываются, т.е.:

При возможности установки пакетов пакет_1.1.1-100 и пакет_1.1.2-1 (отличие в последней цифре номера мажорной версии) будет установлен пакет_1.1.2, как имеющий старшую мажорную версию;

При возможности установки пакетов пакет_1.1.1-1 и пакет_1.1.1-100 (мажорные версии совпадают (1.1.1), отличия в минорных версиях - 1 и 100) будет установлен первый найденный в репозиториях вариант пакета.

Приоритеты выбора репозиториев задаются в каталоге /etc/apt/preferences.d/ или в файле /etc/apt/preferences.
Подробности см. по ссылке

Если приоритеты выбора репозитория не заданы явно, то

неподписанные репозитории имеют меньший приоритет, чем подписанные;

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

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

apt-cache policy имя_пакета

Использовать репозитории на оптических дисках не рекомендуется, так как работа с ними сложна и неудобна. Рекомендованным вариантом является использование сетевых репозиториев или репозиториев в локальной файловой системе (см. Создание локальных и сетевых репозиториев).

Для подключения репозиториев на оптических дисках:

Установить диск в привод и выполнить команды:

sudo apt-cdrom add
sudo apt update

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

Создать копию диска на локальном жестком диске. Это можно сделать выполнив команду:

sudo dd if=/dev/cdrom of= bs=1M

или просто скопировав содержимое диска в выбранный каталог, предварительно смонтировав диск.Смонтировать iso файл в выбранный каталог можно выполнив команду:

sudo mount -o loop

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

Обновить списки пакетов:

sudo apt update

Для автоматического монтирования сохраненного ISO-образа добавить в файл /etc/fstab строку вида:

/opt/repo iso9660 defaults 0 0

Обновить списки пакетов:

sudo apt update

Подключение репозиториев Debian

С установкой пакета debian-archive-keyring

Для Astra Linux Common Edition 2.12:

Установить пакет dirmngr для управления ключами и пакет debian-archive-keyring, содержащий ключи к репозиториям Debian:

sudo apt install debian-archive-keyring dirmngr

В файл /etc/apt/sources.list добавить ссылку на репозиторий Debian:

После добавления ссылки выполнить команду:

sudo apt update

На момент написания этой статьи к репозиторию Stretch относится третий, последний отпечаток.

Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):

пакет debian-archive-keyring может быть установлен из репозитория Astra Linux Common Edition после подключения этого репозитория или командами:

sudo apt install ./debian-archive-keyring_2017.5_all.deb

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

Без установки пакета debian-archive-keyring

Установить ключ проверки подлинности репозитория:

Установить пакет dirmngr (если он ранее не установлен) и использовать команду apt-key с указанием нужного отпечатка ключа:

Если сервер keys.gnupg.net не отвечает или выдаёт ошибку вида "gpg: сбой при получении с сервера ключей: Нет данных" , то выполнить действия:

Вариант 1. Временно изменить настройки DNS, оставив только сервер DNS 8.8.8.8, после чего повторно получить ключи вышеуказанной командой.После успешного получения ключей настройки можно восстановить.

При тестировании плейбуков на чистой 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, в моем случае он лучше по всем параметрам, подробности читайте в продолжении

Устанавливайте репозитории в Debian легко и быстро. В статье мы расскажем, что такое репозитории, какие они бывают, а также, как происходит настройка репозиториев в Debian.

Ч то такое репозитории в Linux

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

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

Для работы с программным обеспечением на Debian надо знать псевдонимы версий Debian, официальные репозитории, а также виды веток программных пакетов. Сначала рассмотрим основные репозитории и разделы в Debian.

Т ипы официальных репозиториев в Debian

Существует официальный список репозиториев Дебиан. Расскажем про каждый из них подробнее.


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

В репозитории Testing находятся разработанные программы, которые ещё не прошли много тестов, чтобы перейти в ветку Stable. Пакеты в Testing попадают из репозитория Unstable. Использовать программы из репозитория Testing следует, только чтобы ознакомиться с возможностями нового релиза программы, так как они могут иметь ошибки при использовании.

Sid - это репозиторий с самым свежим программным обеспечением. Если в репозитории Testing ошибок может совсем не быть, так как до этого программа уже прошла большой путь проверок, то здесь ПО только начало свой путь. Использовать программы из этого репозитория не рекомендуется. Также Unstable может нарушить зависимости пакетов, так что потом вернуться на Stable будет трудно.

Oldstable — кодовое имя предыдущего Stable репозитория. При публикации новой версии Stable, предыдущая переходит в ветку Oldstable. Для этого репозитория ещё продолжают выпускаться обновления безопасности.

Experimental репозиторий содержит пакеты и утилиты, которые только разрабатываются и находятся в состоянии начальной версии. Он предназначен для разработчиков и тестировщиков.

Backports - компромисс между Stable-веткой и набором программ Testing. Он содержит преимущественно пакеты из Testing и немного из Unstable. Пакеты из Backports, где это возможно, устанавливаются без новых библиотек. Это сделано для того, чтобы при необходимости можно было вернуться на Stable. Если вам нужно ПО из веток Testing и Unstable, то лучше использовать этот репозиторий.

В Debian каждый репозиторий состоит из нескольких веток (разделов):

Пакеты в каждой из веток (main, contrib и non-free) полностью готовы к работе с дистрибутивом Debian. Также для добавления репозитория вам понадобятся названия псевдонимов версий Debian.

П севдонимы версий Debian

  • Debian 7 - Wheezy,
  • Debian 8 - Jessie,
  • Debian 9 - Stretch,
  • Debian 10 - Buster,
  • Debian 11 - Bullseye.

Знание релизов понадобится при добавлении репозитория.

К ак добавить официальный репозиторий в Debian

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

Как подключить репозиторий Debian:

1. Откройте терминал сочетанием клавиш Ctrl+Alt+T .

2. Отредактируйте файл /etc/apt/sources.list . Введите в терминал:

sudo nano /etc/apt/sources.list


3. В конец файла вставьте команду с адресом репозитория:


  • deb - указывает на то, что это пакет Debian;
  • ссылка на репозиторий пакетов Debian (выглядит, как обычный URL-адрес сайта). На сайте Debian есть ссылки на зеркала , а также список сгруппированных пакетов , по категориям Stable, Testing, Unstable;
  • название версии Debian - кодовое имя дистрибутива, псевдоним (например, Buster - Debian 10, Stretch - Debian 9, Jessie - Debian 8, и т.д);
  • main - компонент, который указывает на полностью свободное программное обеспечение. Также можно указать компоненты contrib и non-free.

Пример. Чтобы скачать программу MariaDB для Debian 10, надо ввести:

4. Сохраните и закройте файл сочетанием клавиш Ctrl+O и Ctrl+X

5. Обновите пакеты:

sudo apt-get update

Готово, установка репозиториев в Debian прошла успешно.

К ак удалить репозиторий в Debian

Удаление репозиториев в Debian можно провести двумя способами.

Способ 1. Удаление строки

1. Откройте терминал сочетанием клавиш Ctrl+Alt+T .

2. Откройте файл /etc/apt/sources.list . Введите в терминал:

sudo nano /etc/apt/sources.list

3. Найдите запись с репозиторием и удалите её:


Способ 2. Комментирование строки

1. Откройте терминал сочетанием клавиш Ctrl+Alt+T .

2. Откройте файл /etc/apt/sources.list . Введите в терминал:

sudo nano /etc/apt/sources.list

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