Временная ошибка при разрешении mirror corbina net

Обновлено: 02.07.2024

Я только что установил Ubuntu Server 18.04 и настроил SSH, чтобы я мог продолжить настройку через свой рабочий стол, но у меня возникли некоторые проблемы, которые я не могу решить.

Я пытался бежать

но постоянно получал ошибки:

Я проверил, было ли у меня интернет-соединение нормально, запустив

и я получил ответ, все хорошо там.

Я подозревал, что, возможно, мой DNS не был настроен правильно, поэтому я попытался

и получил ошибку:

Временный сбой в разрешении имен

Итак, я решил, что это на самом деле какая-то проблема DNS, но все "ответы", которые я пробовал, не сработали для меня.

Я пробовал редактировать /etc/resolv.conf без удачи, как представляется, символическая ссылка.

Я нашел ответ, который работает, только если я запускаю из-под root, то есть:

Но он дает указание отменить изменения впоследствии:

Если я это сделаю, я снова потеряю связь.

  • Должен ли я просто оставить все как есть или что-то еще?
  • Может ли это быть постоянным решением?
  • И является причиной проблемы тот факт, что /run/resolvconf/resolv.conf на самом деле не существует?

Введение

В первую очередь расскажу, что такое репозиторий (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 размещает в отдельном файле свой платный репозиторий.

Зеркало официального репозитория 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

Как я уже показал выше, в 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.

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 ответа

отлично работает, однако, это должно быть сделано вручную после каждой загрузки и после каждого отключения / повторного подключения к сети, так что это работает, но это ручное решение, а не постоянное решение;

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

вам, вероятно, придется перезагрузиться; тогда вы сможете использовать значок беспроводной сети, который появляется в области уведомлений на панели управления (убедитесь, что область уведомлений добавлена ​​на панель), чтобы выбрать беспроводную сеть; после этого он автоматически восстановит соединение;

однако для автоматического восстановления проводной сети я попытался установить avahi-daemon и avahi-autoipd, но, видимо, это не помогает; даже попробовал

в основном, если вы устанавливаете дистрибутив, такой как рабочий стол Xubuntu, устанавливается соответствующий инструмент (ы)/daemon/config, и сеть обнаруживается автоматически, когда он подключен без какой-либо пользовательской конфигурации; было бы неплохо узнать, какой инструмент /daemon/config/setting это делает.

Первый раз сталкиваюсь с такой проблемой, но даже спустя несколько часов не смог ничего починить. При минимальной загрузке Debian stable/testing появляются проблемы с apt, однако при загрузке с рабочим окружением все отлично работает.

Сама ошибка:

Чтение списков пакетов. Готово

Будут установлены следующие пакеты:

обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 >пакетов, и 0 пакетов не обновлено.

Необходимо скачать 6 475 кБ архивов.

После данной операции, объём занятого дискового пространства возрастёт на 30,7 МВ.

Хотите продолжить? [Д/н] Д

E: Невозможно получить некоторые архивы, вероятно надо запустить apt-get update или попытаться повторить запуск с ключом --fix-missing

При запуске apt-get update такая же история, только с поправкой на:

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

Приветствую. Имеется локальный сервер, на котором поднят репозиторий для Debian Buster. Репозиторий создан с помощью reprepro, используя стандартное руководство. Программы собираются на локальной машине через pbuilder и затем по ftp загружаются на сервер. Проблема заключается в следующем: я собрал более новую чем в Debian версию Mesa, загрузил её в репозиторий, обновил список пакетов на клиенте, но обновлённые версии не желают устанавливаться, как будто на них стоит какой-то запрет:

Единственный момент: так как для сборки данной версии Mesa требуется LLVM 8, а он есть в Debian Backports, то во время сборки он был установлен из бэкпортов автоматически. На клиенте бэкпорты подключены, и по идее всё должно просто работать. Но не работает(. В чём может быть дело? Может стоит поднять локальному репозиторию приоритет в настройках APT?


Зависит: libgbm1 (= 19.0.6-1) но 18.3.6-2+deb10u1 должен быть установлен

вероятнее всего от libgbm1 зависит не только меса, но и какие-то еще пакеты у которых версия указана через ‘=’ или ‘<=’. Их тоже надо пересобрать (либо это какие-то dev пакеты и их надо удалить)

xgatron ★ ( 24.09.20 20:16:36 )
Последнее исправление: xgatron 24.09.20 20:22:48 (всего исправлений: 1)

…я собрал более новую чем в Debian версию Mesa…

но ведь есть 20.1.8 в репозиториях

А что выводит при apt policy libegl-mesa0 apt policy libgbm1 ?

Samamy ★★ ( 24.09.20 20:28:44 )
Последнее исправление: Samamy 24.09.20 20:29:44 (всего исправлений: 2)


Именно. Dev пакеты имеют строгую зависимость (dev ver) == (lib ver). Именно они и не позволяют обновиться.


При попытке установить только libgbm1 сносит к чертям все иксы и прочее


Архив со сборочными скриптами брал из PPA Padoka и из Debian Testing. Одинаково что там что там.

При попытке установить только libgbm1



Хмм. Фига себе. Всё вроде ок, но не ок.


dpkg-query: ошибка: –status требует корректное имя пакета


sudo apt upgrade

на всякий случай: а hold пакетов нет?

Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 18 пакетов не обновлено.




При нажатии y , что пишет ?

Следующие пакеты будут УДАЛЕНЫ:

Отключи свой реп (временно)

После этого снова подключи свой реп.


Ничего не изменилось

Может все таки sudo apt upgrade и y ?

Samamy ★★ ( 24.09.20 21:23:46 )
Последнее исправление: Samamy 24.09.20 21:23:53 (всего исправлений: 1)

и попробуй снова.


Всё также. Обновляет только -dev пакеты


Удалил сейчас все -dev пакеты какие зависели, ещё раз почистил кеш и обновил его. Всё также

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

rumgot ★★★★★ ( 24.09.20 21:42:46 )
Последнее исправление: rumgot 24.09.20 21:43:26 (всего исправлений: 1)


Да, reprepro пересобирает индексы после попадания новых пакетов



Попробуй aptitude . Там можно посмотреть, почему тот или иной пакет не устанавливается, составить план действий, и разом запустить.



Так, кажется я начинаю понимать что к чему. У меня установлены ещё и 32х битные библиотеки, а репозиторий мой amd64. Может поэтому конфликт?


Запускай интерактивный режим, sudo aptitude .


Кстати, да. 32-битные версии тоже нужно бекпортить. У многих пакетов версии для amd64 и i386 вариантов связаны жёстко.


К сожалению сборка 32-х битных версий ничего не изменила. Полагаю что поднятие версии эпохи пакета тоже ничего не даст


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



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

Там же справка есть. На где-то пяти страницах перечислены все основные команды.

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

Может мне тоже нужно собрать всё это?

Если они нужны, то да. Если не нужны, то нет. Вслепую никак же нельзя сказать.


Да, видимо это совсем неблагодарная тема - ручной бэкпорт стека открытых видеодрайверов. Подключил репозиторий AWS от MX Linux - тут всё в порядке, хотя судя по скриптам версии пакетов (точнее эпоха) не тронуты


Бекпорт всегда муторное занятие. Я так пробовал XFCE4 бекпортировать в Debian stable. Несколько дней провозился, большей частью даже получилось. Но сильно надоело, поэтому просто на testing перешёл.

Решатель зависимостей в APT не умеет ожидаемым образом обрабатывать ситуацию, когда нужно установить пакет A, который зависит от B и C, причём B зависит от конкретной (но не последней) версии C.

Есть три варианта решения этой проблемы:

Указывать конкретные версии пакетов при установке: apt install A C=0.9 ;

Положить нужную версию пакета B в репозиторий, у которого приоритет согласно apt preferences pinning будет выше.

При использовании способа 1 можно написать программу, которая будет превращать строку apt install A в apt install A C=0.9 , вычитывая кеш apt и решая зависимости более тщательно, чем это делает сам apt.

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Данная статья является частью единого цикла статьей про сервер 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:

Цели статьи

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

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

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

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

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

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

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

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

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

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

Ветки 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. Разобрался полностью только сейчас, когда писал статью. До этого просто копировал по привычке конфиги с репами. Догадывался о чем там речь, но точно не знал. Теперь восполнил пробел и поделился с вами информацией.

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