bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward

Помилка WARNING: Cannot find a valid baseurl for repo в Ubuntu

calendar_month March 16, 2025 schedule 9 хв. читання visibility 777 переглядів
person
Valebyte Team
Помилка WARNING: Cannot find a valid baseurl for repo в Ubuntu
summarize

TL;DR

  • Ошибка вызвана некорректными URL в /etc/apt/sources.list или в файлах директории /etc/apt/sources.list.d/.
  • Проверьте настройки DNS и доступ к интернету, если адрес репозитория указан верно, но не пингуется.
  • Убедитесь, что фаервол или прокси-сервер не блокируют исходящие соединения через порты 80 и 443.
  • Проблема часто решается обновлением GPG-ключей, необходимых для аутентификации источников пакетов.

Помилка WARNING: Cannot find a valid baseurl for repo в Ubuntu 22.04

Помилка

WARNING: Cannot find a valid baseurl for repo
в Ubuntu 22.04, як правило, вказує на те, що система управління пакетами APT не може знайти або отримати доступ до одного з налаштованих джерел пакетів (репозиторіїв). Це може бути викликано некоректними записами у файлах /etc/apt/sources.list або /etc/apt/sources.list.d/*.list, проблемами з мережевим підключенням, некоректним налаштуванням DNS, проксі-сервера або відсутністю необхідних GPG-ключів для аутентифікації репозиторіїв. Для системних адміністраторів і розробників, що працюють з серверами на Ubuntu, ця проблема означає неможливість встановлення, оновлення або видалення програмного забезпечення, що критично для підтримки працездатності та безпеки систем.

Що означає "WARNING: Cannot find a valid baseurl for repo"?

Illustration of a broken chain link with a '404' error, symbolizing a broken repository link in Ubuntu.

Перш ніж занурюватися в усунення проблеми, давайте розберемося з її суттю. У світі Ubuntu та Debian-подібних систем, пакети розповсюджуються через репозиторії. Ці репозиторії являють собою сервери, на яких зберігаються скомпільовані програми і метадані про них. Файли /etc/apt/sources.list і ті, що знаходяться в директорії /etc/apt/sources.list.d/, містять список цих репозиторіїв, вказуючи APT, звідки скачувати пакети.

Коли ви бачите повідомлення

WARNING: Cannot find a valid baseurl for repo
, це означає, що APT намагався звернутися за вказаною URL-адресою репозиторію (який в даному контексті і є "baseurl"), але не зміг його знайти або отримати до нього доступ. Причини можуть бути різними:

  • Невірний URL: Помилка в адресі репозиторію, застаріла або неіснуюча адреса.
  • Проблеми з мережею: Ваш сервер не має доступу до інтернету, DNS-сервери не працюють або не можуть розпізнати доменне ім'я репозиторію.
  • Проксі-сервер або фаєрвол: Неправильно налаштований проксі, що блокує доступ, або правила фаєрвола, що перешкоджають вихідним з'єднанням на порти 80/443.
  • Недоступність репозиторію: Сам сервер репозиторію тимчасово недоступний або перевантажений.
  • Відсутність GPG-ключа: Хоча це частіше викликає помилку "NO_PUBKEY", іноді проблеми з ключами можуть проявлятися і як неможливість знайти "baseurl", якщо APT не може адекватно прочитати метадані.

Розуміння цих базових причин допоможе нам систематично підійти до діагностики і усунення проблеми.

Покрокова інструкція з усунення проблеми

Для системних адміністраторів, які працюють з серверами, командний рядок — наш основний інструмент. Пройдемося по крокам, які допоможуть вам локалізувати і виправити помилку.

Крок 1: Базова діагностика мережі і DNS

Найбільш очевидне, але часто забувається — перевірка мережевого підключення. Якщо сервер не може зв'язатися із зовнішнім світом, APT, природно, не зможе знайти репозиторії.

1.1. Перевірка мережевого з'єднання

Переконайтеся, що ваш сервер має доступ до інтернету:

ping -c 4 google.com

Якщо ping не проходить, перевірте конфігурацію мережевих інтерфейсів:

ip a
route -n

Переконайтеся, що інтерфейс активний, має IP-адресу і є маршрут за замовчуванням (default gateway).

1.2. Перевірка розпізнавання DNS

Навіть якщо ping по IP-адресі працює, проблеми з DNS можуть перешкодити розпізнаванню доменних імен репозиторіїв.

dig google.com
nslookup archive.ubuntu.com

Перевірте вміст файлу /etc/resolv.conf. Переконайтеся, що там вказані коректні і доступні DNS-сервери (наприклад, 8.8.8.8, 1.1.1.1 або DNS вашого провайдера/хостера).

cat /etc/resolv.conf

Якщо DNS-сервери некоректні або недоступні, змініть їх. Наприклад, для використання публічних DNS Google:

sudo nano /etc/resolv.conf

Додайте або відредагуйте рядки:

nameserver 8.8.8.8
nameserver 8.8.4.4

Збережіть зміни. У деяких системах /etc/resolv.conf управляється netplan або systemd-resolved, і пряма правка може бути перезаписана. В цьому випадку, налаштовуйте DNS через netplan або відповідний сервіс.

Крок 2: Перевірка та виправлення файлу `/etc/apt/sources.list`

Це найбільш часта причина помилки. Файл /etc/apt/sources.list є основою для APT. Будь-яка помилка або некоректний URL тут призведе до проблем.

2.1. Резервне копіювання

Перед будь-якими змінами завжди робіть резервну копію:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.2. Редагування файлу

Відкрийте файл для редагування:

sudo nano /etc/apt/sources.list

Шукайте рядки, які починаються з deb або deb-src. Вони повинні мати формат:

deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse

Де:

  • deb/deb-src: тип репозиторію (бінарні пакети/вихідні коди).
  • http://archive.ubuntu.com/ubuntu/: базовий URL репозиторію.
  • jammy: кодове ім'я випуску Ubuntu (для 22.04 це Jammy Jellyfish).
  • main restricted universe multiverse: компоненти репозиторію.

Що перевіряти:

  • Помилки в URL: Уважно перевірте кожну букву.
  • Невірне кодове ім'я: Переконайтеся, що використовуєте jammy, а не focal або kinetic.
  • Протокол: Переконайтеся, що використовується http:// або https://.
  • Закоментовані рядки: Рядки, що починаються з #, ігноруються. Переконайтеся, що потрібні репозиторії не закоментовані.
  • Неіснуючі репозиторії: Якщо ви додавали сторонні репозиторії вручну, можливо, вони більше не існують. Тимчасово закоментуйте їх або видаліть.

Для стандартної установки Ubuntu 22.04, вміст sources.list повинен виглядати приблизно так:

# Основні репозиторії Ubuntu
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse

# Оновлення безпеки
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# Оновлення (рекомендується)
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
# Запропоновані оновлення (опціонально, для новіших, але менш стабільних версій) # deb http://archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse # Бекпорти (для нових версій ПЗ, що не входять до основного релізу) # deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

Збережіть файл (Ctrl+O, Enter, Ctrl+X в nano) і спробуйте виконати:

sudo apt update

Крок 3: Перевірка файлів у `/etc/apt/sources.list.d/`

Крім основного файлу sources.list, APT також зчитує конфігурацію репозиторіїв з файлів з розширенням .list в директорії /etc/apt/sources.list.d/. Часто саме тут криються проблеми, пов'язані зі сторонніми PPA (Personal Package Archives) або репозиторіями, доданими вручну (наприклад, Docker, Nginx, VS Code).

3.1. Ідентифікація проблемних файлів

Перерахуйте вміст директорії:

ls -l /etc/apt/sources.list.d/

Ви побачите список файлів, наприклад, docker.list, nginx.list, ondrej-php.list і т.д. Відкрийте кожен з них по черзі і перевірте на наявність тих же проблем, що і в sources.list: описки, неіснуючі URL, невірні кодові імена.

sudo nano /etc/apt/sources.list.d/імя_файлу.list

3.2. Тимчасове відключення/видалення

Якщо ви підозрюєте, що проблема походить від певного стороннього репозиторію, ви можете тимчасово відключити його, перейменувавши файл (наприклад, додавши .bak до розширення) або закоментувавши всі рядки в ньому. Якщо це PPA, використовуйте add-apt-repository --remove:

sudo mv /etc/apt/sources.list.d/проблемний_репозиторій.list /etc/apt/sources.list.d/проблемний_репозиторій.list.disabled
# АБО для PPA
sudo add-apt-repository --remove ppa:користувач/ppa-ім'я

Після відключення потенційно проблемних репозиторіїв, знову спробуйте:

sudo apt update

Якщо помилка зникла, ви знайшли винуватця. Тепер ви можете або виправити файл репозиторію, або знайти альтернативне джерело, або просто не використовувати цей репозиторій.

Крок 4: Оновлення списку пакетів і кешу APT

Після будь-яких змін у файлах репозиторіїв, необхідно оновити кеш пакетів APT.

sudo apt update

Ця команда завантажує оновлені списки пакетів з репозиторіїв. Якщо вона пройшла без помилок, значить, ви успішно вирішили проблему.

Також корисно очистити локальний кеш пакетів. Це не є прямою причиною помилки "baseurl", але хороша практика, щоб переконатися, що APT не працює з застарілими або пошкодженими метаданими:

sudo apt clean
sudo apt autoclean
  • apt clean: Видаляє всі завантажені файли пакетів (.deb) з каталогу кешу APT (/var/cache/apt/archives/).
  • apt autoclean: Видаляє тільки ті файли пакетів, які більше не можуть бути завантажені і, по суті, марні.

Крок 5: Перевірка GPG-ключів репозиторіїв

Іноді, хоча й рідше, помилка "Cannot find a valid baseurl" може бути побічно пов'язана з проблемами GPG-ключів. Якщо APT не може аутентифікувати репозиторій через відсутній або недійсний ключ, він може в деяких випадках інтерпретувати це як проблему з доступом до baseurl.

Для перевірки ключів використовуйте:

sudo apt-key list

Ця команда покаже список ключів, імпортованих в систему. Якщо ви бачите попередження про прострочені або відсутні ключі, або якщо apt update видає помилки типу "NO_PUBKEY", вам потрібно імпортувати відповідні ключі.

Для PPA ключі зазвичай імпортуються так:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ТУТ_ID_КЛЮЧА

Де ТУТ_ID_КЛЮЧА — це 8- або 16-значний ID, який вказується в помилці "NO_PUBKEY".

Більш сучасний і безпечний спосіб додавання ключів для сторонніх репозиторіїв (особливо якщо вони використовують signed-by у файлах .list) — це завантаження ключа і розміщення його в /etc/apt/trusted.gpg.d/ або /usr/share/keyrings/:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Потім в .list файлі:
# deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu jammy stable

Крок 6: Переключення на інше дзеркало Ubuntu

У рідкісних випадках проблема може бути пов'язана з конкретним дзеркалом Ubuntu, яке ви використовуєте, якщо воно тимчасово недоступне або повільне. Ви можете спробувати переключитися на інше офіційне дзеркало.

В /etc/apt/sources.list змініть archive.ubuntu.com на інше дзеркало. Наприклад, для Росії:

deb http://ru.archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse

Або використовуйте основний сервер, якщо ви використовували регіональний:

deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse

Збережіть і знову виконайте sudo apt update.

Крок 7: Усунення проблем з проксі або фаєрволом

Якщо ваш сервер знаходиться за проксі-сервером або має активний фаєрвол, це може бути причиною проблеми.

7.1. Перевірка проксі-налаштувань

Перевірте змінні оточення, пов'язані з проксі:

env | grep -i proxy

Якщо є змінні типу http_proxy, https_proxy, ftp_proxy, переконайтеся, що вони коректні. APT також має свою власну конфігурацію проксі в файлі /etc/apt/apt.conf або /etc/apt/apt.conf.d/.

Створіть або відредагуйте файл /etc/apt/apt.conf.d/00proxy (або /etc/apt/apt.conf):

sudo nano /etc/apt/apt.conf.d/00proxy

І додайте рядки:

Acquire::http::Proxy "http://user:[email protected]:8080/";
Acquire::https::Proxy "http://user:[email protected]:8080/";

Замініть дані на свої. Якщо проксі не вимагає аутентифікації, просто http://proxy.example.com:8080/.

7.2. Перевірка фаєрвола

Перевірте стан фаєрвола (наприклад, UFW або IPTables):

sudo ufw status verbose
sudo iptables -L -v -n

Переконайтеся, що вихідні з'єднання на порти 80 (HTTP) і 443 (HTTPS) дозволені. Якщо ви використовуєте UFW, ви можете тимчасово відключити його для перевірки:

sudo ufw disable

Якщо після цього sudo apt update проходить, значить, проблема була в фаєрволі. Не забудьте включити його назад і налаштувати правила, що дозволяють потрібний трафік.

Потрібен надійний сервер Ubuntu 22.04 без помилок?

Забудьте про проблеми з репозиторіями. Розгорніть свій проект на наших оптимізованих VPS. — від €4.49/міс.

Почати з VPS →
sudo ufw enable
rocket_launch Quick pick

Looking for a server that just works?

Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.

View VPS plans arrow_forward

Коли нічого не допомагає: Останні штрихи та поради

Якщо ви пройшли всі кроки, а помилка все ще присутня, ось кілька додаткових моментів:

  • Перевірка системного часу: Неправильно налаштований системний час може викликати проблеми з SSL/TLS сертифікатами, що може перешкоджати доступу до HTTPS-репозиторіїв. Перевірте час і синхронізуйте його з NTP-сервером:
    timedatectl
    sudo timedatectl set-ntp true
  • Відновлення sources.list з чистого аркуша: Якщо ви сильно заплуталися в файлах репозиторіїв, можна створити новий sources.list, використовуючи генератор (наприклад, Ubuntu Sources List Generator) або скопіювавши стандартний файл з працюючої системи Ubuntu 22.04.
  • Використання Live CD/USB: Якщо система зовсім не завантажується або ви не можете отримати доступ до мережі, ви можете завантажитися з Live CD/USB, змонтувати файлову систему сервера і відредагувати файли вручну.
  • Перевірка логів: Іноді /var/log/apt/term.log або /var/log/syslog можуть містити більш детальну інформацію про помилки.

Висновки

Помилка

WARNING: Cannot find a valid baseurl for repo
в Ubuntu 22.04 — це, по суті, повідомлення про те, що APT не може достукатися до одного зі своїх джерел пакетів. Найчастіше проблема криється в некоректних записах в /etc/apt/sources.list або файлах в /etc/apt/sources.list.d/, а також в мережевих проблемах або налаштуваннях DNS. Систематичний підхід, починаючи з базової діагностики мережі і поступово переходячи до перевірки конфігурації репозиторіїв, GPG-ключів і проксі/фаєрвола, дозволяє успішно локалізувати і усунути цю проблему.

Як колеги-сисадміни, ми знаємо, що підтримка актуальних і коректних джерел пакетів є наріжним каменем стабільної і безпечної роботи будь-якої системи на базі Linux. Регулярна перевірка конфігурації і розуміння принципів роботи APT значно спрощують діагностику подібних проблем і мінімізують час простою.

Масштабуйте свої проекти Ubuntu 22.04 без проблем

Для ще більшої гнучкості і масштабованості, переходьте на наші потужні хмарні інстанси.

Дослідити хмару →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.