#Что означает ошибка
Repository 'repo-oss' is invalid / Valid metadata not found
Repository 'repo-oss' is invalid / Valid metadata not found at specified URL / Download (curl) error ... Error code: Connection failed в zypper означают, что метаданные репозитория не удалось получить. Причины: нет сети или DNS, неверный URL, временно недоступное зеркало, истёкшие GPG-ключи, прокси.
Определите, ошибка в сети или в адресе.
Сообщение zypper содержит URL — проверьте его в браузере.
Zypper не смог получить метаданные: репозиторий переехал, зеркало недоступно или версия системы устарела. Проверьте список репозиториев и обновите их.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Зеркало недоступно | Сеть. | Проверьте. |
| Устаревший репозиторий | Релиз снят. | Обновите адрес. |
| Повреждён кэш | Метаданные. | zypper clean. |
| Неверное время | Подписи. | Синхронизируйте. |
#Пошаговое решение
- Проверьте сеть и DNSОткройте несколько разных сайтов или сервисов и проверьте, работает ли подключение на другом устройстве в той же сети. Для сравнения переключитесь между Wi-Fi и мобильным интернетом, если это возможно. Если ошибка только на одном устройстве, проверяйте его сетевые настройки; если на всех — роутер или провайдера.
- Проверьте URL репозиториевВ терминале openSUSE выполните
sudo zypper lr -u, чтобы получить идентификаторы, имена и URL репозиториев. Найдите тот, который указан в сообщенииRepository refresh failed, и проверьте его адрес на официальном сайте поставщика и соответствие выпуску Leap или Tumbleweed. Для проверки сети используйтеcurl -Iс фактическим URL. Не смешивайте Leap и Tumbleweed и не подменяйте URL случайным зеркалом. - Очистите кэш и обновитеУточните, какому приложению принадлежит кэш; сначала сохраните рабочие данные. Используйте штатную команду очистки именно этого приложения или пакетного менеджера, а не удаляйте произвольные системные каталоги.
- Отключите неработающие репозиторииЕсли не работает только сторонний репозиторий, который сейчас не нужен, можно временно отключить его командой
sudo zypper mr -d ИДЕНТИФИКАТОР, взяв точный идентификатор изsudo zypper lr -u. После этого выполнитеsudo zypper refresh. Чтобы вернуть источник, используйтеsudo zypper mr -e ИДЕНТИФИКАТОР. Не отключайте основные системные репозитории без согласования, особенно при обновлении Tumbleweed. - Настройте прокси или смените зеркалоСначала запишите адрес и имя репозитория из сообщения об ошибке. В Debian/Ubuntu проверьте
/etc/apt/sources.listи файлы/etc/apt/sources.list.d/, в Fedora —/etc/yum.repos.d/, в Arch/Manjaro —/etc/pacman.d/mirrorlist. Сверьте адрес с официальной документацией именно вашей версии Linux, сохраните копию файла конфигурации и меняйте только неисправную запись. Затем обновите метаданные соответствующим менеджером пакетов. - Список, очистка и обновление репозиториевLinux · Терминал (Bash)КомандаНужен sudoСписок, очистка и обновление репозиториев.
sudo zypper lr -usudo zypper clean -asudo zypper ref
#Сеть и адрес
Проверьте доступ: ping -c3 download.opensuse.org, curl -I https://download.opensuse.org/. Список репозиториев: zypper lr -u — проверьте адреса. Типичные верные адреса Tumbleweed: https://download.opensuse.org/tumbleweed/repo/oss/, Leap — https://download.opensuse.org/distribution/leap/$releasever/repo/oss/. Замените неверный: sudo zypper mr -r/sudo zypper ar -f URL имя и удалите старый zypper rr имя.
#Кэш и ключи
Очистите кэш: sudo zypper clean -a и sudo zypper ref -f. Принять новый GPG-ключ: при запросе выберите a (always trust) только если ключ с официального репозитория. Проверьте время (timedatectl). Если репозиторий старой версии (Leap EOL), перейдите на актуальную. Для сторонних репозиториев (OBS) сверьте название вашей версии (openSUSE_Tumbleweed, 15.6).
#Прокси и фильтры
Если нужен прокси, задайте в /etc/sysconfig/proxy: PROXY_ENABLED="yes", HTTP_PROXY, HTTPS_PROXY. Временно отключите неработающий репозиторий: sudo zypper mr -d имя. Выберите зеркало ближе: использовать mirrorcache и замените download.opensuse.org на ftp.gwdg.de/pub/opensuse или зеркало из . Проверьте IPv6: если он нерабочий, отключите на время (sysctl -w net.ipv6.conf.all.disable_ipv6=1).
zypper lr -usudo zypper clean -asudo zypper ref -fcurl -I https://download.opensuse.org/