Debian не обновляется репозиторий

Обновлено: 04.07.2024

17 июня 2017 года вышло очередное обновление популярного linux дистрибутива Debian. Это уже 9-й выпуск Debian под кодовым названием Stretch. Я подробно расскажу, как выполнить обновление с предыдущего выпуска Debian 8 Jessie до Debian 9 Stretch. Процесс обновления не сложный, выполняется штатными средствами с помощью apt.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда. Если вам нужна чистая установка новой версии, можете воспользоваться подробным руководством на эту тему - скачать и установить Debian 9 Stretch

Введение

  • Замена пакета mysql на mariadb. Ранее этот шаг был сделан на centos. Теперь и debian решили использовать по-умолчанию mariadb.
  • Инсталлятор теперь по-умолчанию использует графический режим.
  • В состав системы включены инструменты по управлению nftables - новый firewall, который нацелен на замену iptables.
  • Появился новый репозиторий dbg-sym с пакетами для отладки.
  • В новый дистрибутив внедрена система предсказуемого именования сетевых интерфейсов. Вместо eth0, eth1 и т.д. будет использована информация в зависимости от возможностей биоса - enoN, ensN, enpNsM. Если параметры новой разметки интерфейсов будут недоступны, будут использоваться старые. В общем и целом это должно предотвратить ситуацию, когда после добавления нового сетевого интерфейса, изменяются имена в системе уже существующих адаптеров.

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

Подготовка сервера к обновлению

Будем обновлять следующую систему:

Для нее мы проведем обновление до 9-й версии Stretch.

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

Я рекомендую сделать резервную копию папок: /etc, /var/lib/dpkg, файла /var/lib/apt/extended_states. Сохраните вывод команды:

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

Теперь обновим текущую систему Jessie:

Обновляем список доступных пакетов для нового выпуска:

Обновление debian с 8 до 9

Обновление системы будем делать в 2 этапа. Сначала минимальное обновление, потом полное. Делаем минимальное обновление:

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

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

После завершения минимального обновления debian, запускаем полное:

Эта команда произведёт полное обновление системы, установив последние доступные версии всех пакетов и разрешит все изменившиеся между выпусками Jessie и Stretch зависимости. При необходимости будут установлены новые пакеты и удалены все вызывающие конфликты устаревшие пакеты.

Если у вас была установлена база данных mysql, то она автоматически будет заменена на mariadb.

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

После завершения работы команды apt dist-upgrade обновление завершено. Можно перезагружаться:

Обновление jessie прошло успешно. На выходе имеем последнюю версию Debian 9.0 Stretch.

Онлайн курсы по Mikrotik

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

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

Дополнительные материалы по Debian

  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron
Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика. Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования. Подробное описание настройки сети в Debian - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др. Обновление предыдущей версии Debian 8 Jessie до последней Debian 9 Stratch. Подробная инструкция с описанием по каждому этапу обновления. Обновление версии Debian 7 wheezy до Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления. Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.
  • Proxmox
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp
Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке. Настройка интернет шлюза на Debian. Включает в себя настройку iptables, nat, dhcp, dns, iftop. Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk. Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки. Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива. Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.
  • Бэкап с помощью rsync
  • Тюнинг postgresl для 1C
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

Автор Zerox

26 комментариев

Не все так просто. В debian 9 версии некоторых пакетов выше, чем в debian 8. И не у всех пакетов конфигурационные файлы совместимы. Опишу с чем я столкнулся на практике: opendkim перестал работать, fail2ban выдавал предупреждения, но запускался (возможно фильтры при этом не работали), sshd работал, но в логах появились предупреждения, postfixadmin работал, но при этом dpkg выдавал ошибку dpkg: ошибка при обработке пакета postfixadmin (--configure).
Возможно кто-нибудь столкнется и с другими проблемами. Так что обновиться без танцев с бубном не всегда получится, особенно если установлено много пакетов.

Все верно, чаще всего так и бывает. Лично я никогда не обновляю рабочие сервера с версии на версию. Только перенос на новый сервер и тестирование, потом вывод из работы старого. Именно поэтому я предпочитаю систему centos. У нее период поддержки 10 лет, против 5 лет у debian и ubuntu.

После обновления получается mysql не будет. А что будет с базой данных? Она останется и будет работать в mariadb?

Да, с базой все должно быть в порядке. Но на всякий случай лучше сделать бэкап баз.

После обновления неработает systemd сервер запускается раз через раз, повсюду ошибки

в общем не советую.

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

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

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

Пока не отключил эти строки, которые давали ошибки на всех серверах репозитариев, апдейт не проходил.
Отключил их - и Дебиан обновился до 9.1.
Может, в этих строках содержится ошибка?

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

Хорошо, спасибо за идею, попробую.

И еще. Если вы разбираетесь в OpenVPN, хотелось бы обсудить с вами небольшой коммерческий вопрос по email или другим способом.

В контактах на сайте есть мой е-мейл, можно писать туда.

> Тут налицо проблемы с доступностью репозиториев, поэтому ничего и не обновилось. > Надо решать сначала эту проблему, потом обновляться.
> Причин недоступности репозиториев может быть много.
> Возможно банально сетевые проблемы.

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

Очень обрадовался этой статье, которая призвана упростить адейт нормально работающего Debian 8.
Выполнил все по пунктам.
Хотя в целом обновление прошло успешно, тем не менее, возникали ошибки недоступности некоторых разделов репозитариев, в частности, не проходили deb-src.
Да и после обновления теперь то тоже возникают ошибки, например:

E: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

В итоге после ребута версия Debian осталась прежней. Почему?

lsb_release -a
LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
Distributor ID: Debian
Description: Debian GNU/Linux 8.9 (jessie)
Release: 8.9
Codename: jessie

Тут налицо проблемы с доступностью репозиториев, поэтому ничего и не обновилось. Надо решать сначала эту проблему, потом обновляться. Причин недоступности репозиториев может быть много. Возможно банально сетевые проблемы.

Обновил Debian 8 до debian 9. Хорошо, что перед обновлением сохранил образ системы. Во-первых, обновление продолжалось более двух часов, за это время запросто установил Debian 9.1 на USB_HDD. Во-вторых, слетела половина дополнительных программ и настроек, например пропал Grub Customizer, испортились настройки WPS Writer, пропали дополнительные шрифты, пропал аплет "Диспетчер настроек" в сессии Xfce, и соответственный, в сессии Gnome, пропали обои рабочего стола и восстановить их не удалось. В-третьих, при переходе из сессии Gnome в сессию Xfce бесконечное требование пароля, наоборот нормально Уже этого достаточно, чтобы впредь отказаться от обновления. Гораздо более эффективно и меньше глюков, просто снести систему и установить новую

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

Операционная система Debian – один из самых стабильных вариантов на рынке, но казусы случаются везде. Чтобы застраховать ПК или сервер от попадания вирусов, а также защититься от мошенников, необходимо своевременно устанавливать обновления.

Обновить Debian – задача не из сложных. Этот процесс обусловлен выполнением нескольких примитивных шагов.

Обновление Debian через терминал

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

Откроем файл sources.list редактором nano, внимательно смотрим на список репозиториев.

$ sudo nano /etc/apt/sources.list

sources

Нормально: в нем наличествуют основные хранилища операционной системы (stretch), репозиторий стандартных обновлений, а также хранилище обновлений безопасности.

Плохо: в файле наличествуют testing, sid, back ports.

Установленные репозитории можно посмотреть и другим способом. Например, воспользовавшись дополнением «Программы и обновления».

Отключите галочки напротив тех репозиториев, которые помешают обновлению ОС. Их названия упоминались чуть выше.

sudo bash

По аналогии с убунту , астра линукс , списки пакетов обновляются по команде:

ВАЖНО! вместо apt-get можно использовать более новую команду apt, в некоторых случаях интерпретатор напишет ошибку, команда не найдена. Чтобы убрать ошибку, необходимо установить apt.

update

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

Даем согласие на установку. Апгрейд пакетов Debian займет некоторое время. На сроки влияет производительность ПК и скорость Интернет-соединения. Если система обновлялась давно, на это потребуется больше времени.

Согласие на обновление

Обновление Дебиан в графическом интерфейсе

Данный способ обновления также не обойдется без графического дополнения «Программы и обновления». Осуществите проверку обновлений в одноименной вкладке, активируйте уведомление о найденных обновах.

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

Чтобы установить обновления, также можно воспользоваться программой «Центр приложений» (открывается через главное меню). Далее перешагните в подраздел «Обновления».

Найдите на экране значок «Обновить», нажмите на него. Это позволит произвести обмен данными. После этого вам предстоит закончить установку выявленных обновлений.

Debian также обновляется при помощи установки популярного софта под названием « Synaptic ». Она не является базовой утилитой, однако ее можно установить.

Новый софт появится в меню устройства. ПО работает без перебоев, а потому пользуется большим спросом среди пользователей. Откройте Synaptic, кликните на кнопку «Обновить». Далее произойдет обмен данными между списками пакетов хранилищ.

Следующий шаг: кликните на кнопку «Отметить…». Актуальные апгрейды попадут в список необходимых установок. Программа выдаст запланированные модернизации.

Нажатие на клавишу «Применить» запустит процесс обновление. Не прерывайте его до полного завершения.

Заключение

Беспроблемная и безопасная работа компьютера возможна лишь при бережном обращении. С новой версией ОС устройство работает быстрее и без лагов. К тому же, это минимизирует вероятность попадания вирусов на ПК и сервер. Мошенникам будет сложнее взломать обновленную версию Debian, а значит, пользователь может не беспокоиться за сохранность и конфиденциальность личных данных.

Обновление операционной системы Debian осуществляется многообразными способами и неважно какая версия стоит 9, 8,7. Каждый пользователь может избрать для себя самый удобный и понятный вариант установки обновлений системы.

14 августа 2021 года состоялся релиз старой и очень популярной Linux системы - Debian. В своей статье я подробно расскажу, как обновиться с прошлого релиза Debian 10 до 11-й версии Bullseye. Сам процесс не сложный, проходит в штатном режиме с помощью встроенных средств операционной системы.

Хочешь научиться автоматически разворачивать и поддерживать высоконагруженные проекты? Тогда рекомендую познакомиться с онлайн курсом " Infrastructure as a code." в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .

Что нового в Debian 11

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

  • Очевидно, что обновилось ядро Linux. Теперь это будет версия 5.10.
  • Обновлены версии пакетов графического окружения и офисных программ.
  • Понятное дело, что обновился весь софт. Не буду перечислять изменение версий. Отмечу только некоторые наиболее значимые изменения. Версия php в базе будет 7.4, python - 3.9, MariaDB - 10.5, nginx - 1.18.
  • Обновились cgroups до версии v2.
  • Systemd по умолчанию теперь пишет свой журнал с помощью systemd-journald. Хорошо, что традиционные логи, которые пишет rsyslog пока оставили.
  • Больше не будет однодисковых образов с Xfce (жаль :( ). Остался netinst.iso и DVD-1.iso, не считая live образов.

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

Подготовка системы к обновлению

Перед обновлением Debian рекомендую в первую очередь проверить все бэкапы. Это если вы обновляете прод, что я делать сразу не рекомендую. Для начала проверьте всё на копии виртуальной машины в тестовом окружении. После этого уже переходите к рабочей системе. Так же рекомендую на всякий случай сохранить список текущих установленных пакетов:

Или сразу с версиями. Тоже может пригодиться.

Прежде всего полностью обновим текущую систему:

Проверим версию. Должна быть самая последняя:

Подготовка Debian 10 buster к обновлению

Обновление файла репозиториев

Теперь обновим файл с репозиториями /etc/apt/sources.list и изменим релиз с buster на bullseye. Содержимое этого файла должно стать примерно следующим:

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

Upgrade Debian 10 to Debian 11 Bullseye

Теперь можно запустить непосредственно обновление системы Debian 10 до 11 версии. Перед этим обязательно убедитесь, что у вас есть доступ к консоли сервера, а не только ssh подключение. Обычно всё проходит нормально и одного ssh достаточно. Но если обновляете prod, лучше перестраховаться. Сначала обновим список пакетов.

Важно! Дальнейшие команды запускайте в голой консоли, а не в терминале какой-то графической оболочки, если она у вас установлена. В процессе обновления этот терминал будет закрыт и обновление прервётся.

Обновление репозитория для Bullseye

Теперь сделаем минимальное обновление, которое не требует установки новых пакетов или удаления старых. Обязательно запускайте его через screen или tmux. В случае обрыва связи при подключении по ssh, могут произойти непрогнозируемые проблемы с работоспособностью системы. Процесс обновления обязательно должен полностью завершиться успешно.

Upgrade Debian 10 to Debian 11 Bullseye

Не отходите далеко от консоли, так как в процессе обновления Debian 10 до 11 вам могут задавать наводящие вопросы. Достаточно выбирать дефолтные значения, чтобы все прошло успешно. Первым делом, вам надо будет прочитать список изменений и выйти из режима чтения, нажав q.

Информация об обновлении Debian 10 до 11

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

Полное обновление до Debian 11

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

Дожидаемся загрузки Debian 11 Bullseye и проверяем версию.

Проверка версии обновленной системы Debian 11 Bullseye

Всё в порядке. Обновление прошло успешно.

Заключение

В общем случае, обновление Debian с релиза на релиз проходит штатно и не является сколь-нибудь сложной процедурой. Но это при условии, что не возникает конфликтов зависимостей и поддержки различного софта новой версии. Проблемы скорее всего будут в другом месте и связаны с софтом. Новая система получает обновленные версии всего софта. Где-то может измениться конфиг, где-то исходники сайта не поддерживают работу с новой версией php или БД.

Всё это придётся в ручном режиме отлаживать и исправлять. Так что кажущаяся лёгкость обновления непосредственно системы может быть обманчивой. Внимательно всё проверьте перед этим. Иногда может быть проще и надёжнее выполнить миграцию системы на новую версию, а не её обновление.

Для любого сервера необходимо иметь возможность оперативно получить актуальное свежее программное обеспечение. Я расскажу, как настраивать список репозиториев в Debian - добавлять, удалять, редактировать разные repository в sources.list. Разберем внимательно эту тему, обратив внимание на различные нюансы, которые присутствуют, как и в любом другом деле.

Хочешь научиться автоматически разворачивать и поддерживать высоконагруженные проекты? Тогда рекомендую познакомиться с онлайн курсом " Infrastructure as a code." в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .

Данная статья является частью единого цикла статьей про сервер Debian.

Цели статьи

  1. Рассмотреть различные ветки официальных репозиториев.
  2. Подробно рассказать, как настраивать репозитории в debian.
  3. Показать на примере, как настроить локальный репозиторий.
  4. Составить список актуальных репозиториев для старых версий Debian.

Введение

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

Существуют repository не только для операционных систем, но и для программ. Там могут быть как уже скомпилированные и готовые к установке пакеты, так и исходные коды программных продуктов. Большинство репозиториев содержат готовые пакеты. Это относится и к стандартным репозиториям Debian.

Помимо официальных списков реп (транскрипция от сокращения repo), есть сторонние, которые поддерживают производители программ либо энтузиасты. Нужно внимательно относиться к сторонним репозиториям, не добавлять их бездумно. Там может располагаться любое ПО, в том числе не то, что заявлено изначально. Либо они могут быть взломаны для размещения вредоносных программ.

Управлением пакетами и работой с repository lists в Debian занимаются отдельные утилиты:

  • apt
  • apt-get
  • synaptic
  • aptitude и др.

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

Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему:

Список репозиториев в sources.list

Изначально, содержимое sources.list будет зависеть от того, какой источник для пакетов вы выбрали во время установки debian. К примеру, в моем случае для системы Debian 10 он выглядит следующим образом.

Репозитории Debian в sources.list

Для Debian 11 bullseye немного изменился формат записи для репозитория security. Теперь он выглядит так:

Репозитории Debian 11 Bullseye

В общем случае файл sources.list имеет следующую структуру:

deb и deb-src тип архива, бинарные пакеты (deb) или пакеты с исходным кодом (deb-src)
http://site.example.com/debian url репозитория
distribution псевдоним релиза (bullseye, buster, stretch и т.д.), либо класс релиза (stable, oldstable и т.д.)
component main, contrib или non-free набор пакетов

Про псевдонимы релизов и наборы пакетов мы поговорим ниже более подробно в соответствующем разделе.

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

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

Как я уже показал выше, в sources.list используются псевдонимы, либо классы релиза, а так же разные ветки наборов пакетов. С псевдонимами релизов все понятно. Они названы в честь персонажей мультфильма История игрушек (Toy story) - Wheezy, Jessie, Stretch, Buster, Bullseye и т.д. А вот насчет классов релизов поговорим отдельно. Существуют следующие официальные классы релизов Debian.

Stable

Стабильная ветка официального текущего релиза Debian. То есть это самая свежая и актуальная версия, которую рекомендуется использовать. Официальный репозиторий стабильной ветки содержит проверенный набор программ, зачастую не очень свежих версий. Это плата за надежность. В production рекомендуется использовать пакеты именно из репозитория stable.

В этом репозитории регулярно публикуются все актуальные обновления текущего релиза. Он формируется из ветки Testing, которая в момент релиза новой версии превращается в Stable.

Oldstable

Oldstable - кодовое имя предыдущего stable repository. Для этого репозитория выпускаются обновления безопасности. Ветка Oldstable формируется из Stable предыдущего релиза на момент публикации нового.

Testing

Testing содержит в себе текущее состояние разработки нового стабильного релиза. После его выхода, testing становится stable. Пакеты в testing попадают из репы unstable. В общем случае использовать репозиторий testing следует только для тестовых целей, чтобы посмотреть на новый релиз.

Для этого можно сделать чистую установку текущего релиза, затем изменить repo со stable на testing и обновиться. Вы получите свежую версию тестового релиза, который готовится к выпуску.

Unstable (sid)

Sid это repository с самым свежим программных обеспечением. Проблема только в том, что оно еще не протестировано достаточным образом для использования. Если вы точно уверены, что вам нужен новый софт и он не сломает вам систему, можете поставить его из unstable репозитория. Но в общем случае, делать это не рекомендуется.

Даже если софт из unstable не повредит работе системы, он может нарушить зависимости пакетов, так что потом может быть затруднительно вернуться на stable repo.

Experimental

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

Backports

Backports repository выступает как некий компромисс между стабильностью основной ветки и свежим набором программ из ветки testing. Репозиторий backports содержит пакеты преимущественно из testing и немного из unstable (только для обновлений безопасности).

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

Если вам нужен софт из веток testing и unstable, лучше использовать backports. Репозиторий создан как раз для того, чтобы не прыгать между этими ветками.

Это все, что касается деления репозиториев по классам релизов. Есть еще небольшое разделение, которое явно нигде не описано и сразу не догадаешься, как оно работает и устроено.

Важное замечание. Я не рекомендую в качестве репозиториев указывать классы релизов - stable, oldstable и т.д. Всегда явно указывайте название релиза - bullseye, buster, stretch и т.д. Иначе в случае выхода нового релиза, вы при обычном обновлении получите обновление релиза, даже если не собирались его обновлять.

Security updates

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

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

Stable-updates

Еще один отдельный репозиторий для установки пакетов через механизм stable-updates. Добавить его можно следующим образом.

Через этот repository вы будете по мере выпуска получать обновления, которые готовятся к публикации в очередном обновлении релиза. Так называемые Point Releases - 10.1, 10.2 и т.д. Случаются они не часто, примерно раз в 2-3 месяца, но проверенные для них обновления можно получить ранее как раз с помощью stable-updates.

Ветки main, contrib, non-free

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

  1. main состоит из DFSG-compliant пакетов, которым не требуется другое ПО из других источников. Эти пакеты считаются частью дистрибутива Debian. Они полностью свободны для любого использования.
  2. contrib пакеты так же содержат DFSG-compliant ПО, но их зависимости могут требовать дополнительное ПО, которое может быть в других источниках, например ветке non-free.
  3. non-free содержит все остальное ПО, которое не соответствует DFSG.

DFSG - Debian Free Software Guidelines, критерии Debian по определению свободного ПО. В любом случае, пакеты из всех трех веток main, contrib и non-free полностью протестированы и подготовлены для работы с дистрибутивом Debian.

Теперь, зная всю теорию по репозиториям в Debian, мы можем проанализировать файл sources.list, который мы получили после установки. В нем подключены 3 репозитория с ветками main.

Это stable repo текущего релиза. Далее идет security repository для установки свежих обновлений безопасности.

И в завершении stable-updates для получения стабильных обновлений до очередного Point Release текущего дистрибутива.

Признаюсь честно, я много лет администрировал сервера с Debian, а до конца не понимал, что у меня записано в sources.list. Разобрался полностью только сейчас, когда писал статью. До этого просто копировал по привычке конфиги с репами. Догадывался о чем там речь, но точно не знал. Теперь восполнил пробел и поделился с вами информацией.

Добавить новый repository в debian

Теперь от теории перейдем к практике. Давайте вручную добавим новый репозиторий в Debian. К примеру, нам нужно установить на сервер стабильную версию MariaDB. Для этого добавим ее репозиторий. Это можно сделать либо в файле sources.list, но лучше создать отдельный в sources.list.d. Назовем его MariaDB.list.

После подключения репозитория, надо добавить его gpg ключ.

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

Добавление репозитория в Debian

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

Новый репозиторий

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

Зеркало официального репозитория yandex mirror

Repository yandex mirror можно так же использовать для сетевой установки систем.

Sources List Generator (генератор списка репозиториев)

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

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

К примеру, я указал в List Generator, что мне надо подготовить список репозиториев со следующими параметрами:

  1. Репозиторий Stable
  2. Ветка main (просто отключил ветки contrib и non-free)
  3. Mirror - Russia
  4. Включить репозитории Security и Updates
  5. Добавить repo для софта - Docker, MariaDB, Nginx, NodeJS, Php, Webmin

В итоге получил вот такой sources.list

К нему еще список gpg ключей для импорта. В принципе, к списку у меня претензий нет. Все по делу. Нужно только проверить php и mariadb repository. Мне предложенные не знакомы.

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

Локальный репозиторий

Есть несколько способов создать локальный репозиторий Debian. Из того, что я пробовал, самым простым и удобным мне показался apt-mirror, но у него есть один баг, если его использовать как зеркало официальных репозиториев. Он не качает переводы в формате .gz и.xz, только .bz2. В итоге, когда будете использовать локальный репозиторий в качестве зеркала официального, получите ошибку:

Дальше создаем каталог для локального репозитория и конфиг.

Конфиг делаем примерно следующего содержания.

Выполняем инициализацию репозитория.

Теперь можно добавлять пакеты в локальный репозиторий следующей командой.

Для того, чтобы подключить локально новый репозиторий, его нужно добавить в sources.list.

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

Локальный репозиторий Debian

Архив репозиториев для старых версий

Ниже представляю готовые настройки репозиториев для прошлых версий.

Debian 9 stretch

Репозитории Debian 9 stretch пока еще находятся в основных репозиториях:

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

Debian 8 jessie

Репозитории Debian 8 jessie:

Debian 7 wheezy

Репозитории Debian 7 wheezy:

Debian 6 squeeze

Репозитории Debian 6 squeeze:

Возможные ошибки

Рассмотрим наиболее популярные ошибки, которые возникают при добавлении и обновлении репозиториев.

Репозиторий не содержит файла Release

Текст ошибки, по идее, дает готовый ответ. В репозитории нет обязательного файла Release. Но суть в том, что он скорее всего есть. Дело тут чаще всего в том, что вы добавили к себе репозиторий, который не содержит указанной вами ветки. К примеру, вы добавили репозиторий в дистрибутив Buster, а в репозитории нет поддержки этого дистрибутива. Предыдущие есть, а этого нет.

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

Заключение

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

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.


Пальцем в небо: пробует подключаться по ipv6, который не настроен, долго висит и по таймауту переходит на следующий ip-адрес домена.

Radjah ★★★★★ ( 17.07.19 09:43:03 )
Последнее исправление: Radjah 17.07.19 09:44:34 (всего исправлений: 1)

У меня вообще вот что на sudo выдает "-bash: sudo command not found" Раньше был опыт с ubuntu, может тут что-то по другому делается.


ты видимо хотел сказать sudo apt-get update && sudo apt-get upgrade

пользователь с админ. полномочиями (root) есть же? Логинься в него и пробуй выполнять команды от его имени.

anymouze ★★ ( 17.07.19 12:30:41 )
Последнее исправление: anymouze 17.07.19 12:32:00 (всего исправлений: 1)

Я от пользователя root и делаю.

А как установить ssh, и тд без интернета? Могу ли где-то найти эти файлы и подцепить с сетевой папки на виртуалку?

может всё таки source.list починишь (или причину найдешь — может не он виноват)

С этим тоже не работает, дело в чем-то другом. А если при установке указывал локацию usa, это могло повлиять?

интернет есть на этом дебиане? а реальный ip конечно не из usa (влияет или нет — не знаю, не сталкивался)

Что внутри source.list


Landgraf ★★★★★ ( 18.07.19 09:27:53 )
Последнее исправление: Landgraf 18.07.19 09:28:05 (всего исправлений: 1)

Есть ещё шанс за что-то зацепиться в логах или выхлопе apt-get update (как вариант apt ), но что-то я уже сомневаюсь. Возможно и правда дело в указанном местоположении. Попробуй указать зеркало ближайшее к дислокации виртуалки.

Может, конечно, другие причины виноваты — как их угадать по этим крохам?!

Например, если запускать apt update при отсутствии подключении к сети: он завершается с ошибкой или тоже виснет?

В общем, попытался много чего сделать, видимо безопасники блокируют трафик, либо что-то с дебианом. Попробую поставить ubuntu, если заработает, значит в образе дело.

видимо безопасники блокируют трафик

такое надо выяснять-решать до установки

скорее нет, чем да. опять же, есть же в debian возможность создать и использовать offline-репозитарии.

в debian в root переходиш комадой вводиш пароль. переходиш apt install пакет

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