Не удается синхронизировать кэш для репозитория base игнорируя это репо

Обновлено: 02.07.2024

Статья представляет из себя небольшую шпаргалку по работе с пакетным менеджером dnf (CentOS 8) и yum (CentOS 7 и ниже). В данном руководстве мы будем использовать только команду yum, так как она работает и в CentOS 7 и в 8.

Репозитории

Команда yum/dnf использует репозитории для своей работы. Очень важно понять, как с ними работать в системе. Конфиги репозиториев CentOS описывают пути, по которым система может брать установочные файлы для пакетов, а также правила работы с самими репозиториями.

Примеры команд для управления репозиториями

1. Просмотр репозиториев.

Список включенных репозиториев:

Список включенных и отключенных репозиториев:

yum repolist all

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

Список отключенных репозиториев можно посмотреть отдельно командой:

yum repolist disabled

2. Добавление репозитория командой.

Для добавления репозитория мы можем воспользоваться командой yum-config-manager, для этого сначала нужно установить yum-utils:

yum install yum-utils

yum-config-manager --add-repo <репозиторий>

3. Добавление репозитория через файл.

Также мы можем создать конфигурационный файл с описанием репозитория. Все файлы находятся в каталоге /etc/yum.repos.d. Например, создадим файл с добавлением репозитория mariadb:

  • name — произвольное имя репозитория.
  • baseurl — путь, по которому система может забирать пакеты из репозитория.
  • gpgkey — путь до открытого gpg-ключа. Нужен для проверки цифровой подписи пакетов.
  • gpgcheck — нужно ли проверять цифровую подпись пакетов.
  • enabled — опция включает или выключает репозиторий.

4. Временное включение и отключение репозиториев во время операций (на примере репозитория EPEL).

Отключить во время обновления:

yum update --disablerepo=epel

Включить во время обновления:

yum update --enablerepo=epel

Отключить во время установки:

yum install --disablerepo=epel

Включить во время установки:

yum install --enablerepo=epel

5. Постоянное отключение/включение репозиториев.

Мы можем отключить наш репозиторий командой:

yum-config-manager --disable <имя репозитория>

* для выполнения данной команды мы должны установить в систему пакет yum-utils.

Разрешить репозиторий можно той же командой с опцией --enable:

Также мы можем выполнить настройку в конфигурационном файле, например:

* в данном примере 1 разрешает репозиторий, а 0 запрещает.

6. Настройка опций.

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

yum-config-manager --save --setopt=<имя репозитория>.<имя опции>=<значение>

yum-config-manager --save --setopt=mariadb.module_hotfixes=1

Обслуживание

1. Удалить кэш для списков пакетов в репозиториях, а также загруженные исходники для пакетов:

yum clean --enablerepo=* all

Также мы можем удалить кэш только для определенных репозиториев, например:

yum clean all --disablerepo="*" --enablerepo="epel,nginx-thirdparty"

* обязательно, сначала должен следовать disablerepo, после enablerepo.

2. Сформировать кэш списков пакетов в репозиториях:

Установка, обновление и получение информации о пакетах

1. Установка пакета:

yum install <имя пакета>

2. Обновление всех установленных пакетов:

3. Обнолвение конкретного пакета

yum update <имя пакета>

4. Установить пакет из определенного репозитория:

yum --disablerepo="*" --enablerepo=thirdparty install nginx

* как говорилось выше, мы можем оперировать опциями disablerepo и enablerepo для включения и отключения репозитория во время установки. В данном примере мы запретили все и разрешили установить нужный нам пакет из репозитория thirdparty.

5. Только скачать пакет, не устанавливая его:

yum install --downloadonly --downloaddir=<куда скачать> <имя пакета>

yum install --downloadonly --downloaddir=/tmp nodejs

* скачиваем пакет nodejs в каталог /tmp.

6. Распаковать содержимое пакета RPM:

rpm2cpio <путь до файла rpm> | cpio -idmv

Просмотр информации о пакетах

1. Список установленных пакетов:

yum list --installed

2. Получение зависимостей для пакета:

yum deplist <имя пакета>

yum deplist nginx

* покажет, какие пакеты или библиотеки необходимы для установки nginx. Дополнительно, могут быть указаны пакеты, которые нужны для удовлетворения зависимостей.

3. Посмотреть список файлов внутри установочного пакета.

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

rpm -ql <имя установленного пакета>

Или из установочного файла:

rpm -qlp <путь до RPM-пакета>

rpm -qlp nginx.rpm

4. Посмотреть, какой пакет предоставляет определенный файл:

yum provides audit-libs-python

В данном примере мы получим ответ:

audit-libs-python-2.8.5-4.el7.x86_64 : Python bindings for libaudit
Repo : base

Это значит, что audit-libs-python содержится в пакете audit-libs-python-2.8.5-4.el7.x86_64, который в свою очередь, находится в репозитории base.

Можно также выполнять поиск по маске:

yum provides audit-libs-*

Управление потоками (модулями)

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

1. Вывести список доступных модулей:

dnf module list

  • [d] — значения по умолчанию.
  • [e] — включенные модули.
  • [x] — отключены.
  • [i] — установленные.

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

Мы также можем посмотреть отдельные по состоянию группы модулей:

dnf module list --enabled

dnf module list --disabled

dnf module list --installed

2. Вывести список возможных модулей для конкретного пакета:

dnf module list nodejs

* в данном примере для nodejs.

3. Разрешить или запретить конкретный модуль:

dnf module enable nodejs:12

dnf module disable nodejs:14

* первая команда разрешит модуль nodejs версии 12, вторая, соответственно, запрещает использование модуля nodejs версии 14.

4. Переключение модуля.

Если мы хотим изменить активный модуль, необходимо сначала отключить текущий командой dnf module reset, например:

dnf module reset php:7.3

После включаем новый поток:

dnf module enable php:7.4

Заблокировать установку и обновление пакетов

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

1. Во время обновления (разово)

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

yum -x postgresql*,asterisk update

* данной командой мы обновим все пакеты, кроме asterisk и тех, название которых начинается на postgresql.

2. Постоянный запрет в yum.conf

Аналогично, можно запретить как установку, так и обновление в конфигурационном файле yum.conf. Открываем его командой:

* в данном примере мы также запретим установку и обновление asterisk, а также пакетов, название которых начинается на postgresql.

3. Настройка репозитория

Ну и также мы можем заблокировать установку и обновление через конфигурационный файл репозитория. Например:

* в данном примере мы блокируем пакет postgresql12.

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

Рассмотрим примеры ошибок, с которыми мы можем столкнуться и способы их решения.

1. Curl error (60): SSL peer certificate or SSH remote key was not OK

Ошибка появляется при попытке выполнить операцию обновления или установки пакетов.

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

yum-config-manager --save --setopt=<имя репозитория>.sslverify=0

Или в конфигурационном файле репозитория добавить или изменить строку с sslverify:

* данная опция задает необходимость проверки SSL для репозитория.

2. Error: GPG validation FAILED

Ошибка появляется при попытке установить пакет.

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

Решение: для некоторых пакетов идет отдельная инструкция по настройке репозитория, в частности, установки ключа GPG. Или мы можем отключить проверку gpg командой:

Fedora 22 Workstation. Чистая установка. Была поставлена вчера днём.


походу microsoft решил заддосить все репозитории, и те сейчас лежат.

Ну а если серьёзно, походу перемещают репозитории на новые сервера, подождите недельку.


Федора - бесплатный испытательный полигон.

Федора уже не торт :(


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

Недельку!? О_о
Федорка во всеоружии нужна мне уже к утру понедельника.


возьми centos 7.1, подключи KVM зависает в зомби (комментарий), и дополнительно rpmfusion free/nonfree и будет тебе федора.

Раскомментировал строчку baseurl и закомментировал metalink в /etc/yum.repos.d/fedora-updates.repo

Вроде как заработало.


то есть обновы тебе ненужны?

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

Прости, не понял. Раскрой мысль.

возьми centos 7.1 .
и дополнительно rpmfusion free/nonfree

Где?! Или у тебя centos с репами от федоры работает?


ставишь в фузах тестинг у центоса, и получаешь пакеты по свежести как в стандартных у фузов в федоре.

ставишь в фузах тестинг у центоса.

путь на зеркало rpmfusion для centos 7 можешь показать?


там много пакетов разных, в том числе новых физ вузов для федорки, чуть перепиленных.


и да забыл, что пока оригинальных вузов для 7ки нет, последнее время либо 6ка по старинке, либо на fedora всё.

ну хватит уже дезу писать. rpmforge - рип. А до этого, он не блистал стабильностью.

Я использую Fedora 25. Я пытаюсь установить gcc на fedora25 с помощью команды sudo dnf install gcc . Это всегда видно:

Ошибка: не удалось синхронизировать кэш для РЕПО 'updates'

Я также получаю ту же ошибку, когда пытаюсь установить другие пакеты. Что я делаю не так?

После обновления до macOS Sierra 10.12 я больше не могу синхронизировать до gutHub. Из настольного программного обеспечения я получаю Возможно, у вас нет разрешения на доступ к [проекту]. Проверять Настройки, чтобы убедиться, что вы все еще вошли в систему. Я проверил и вошел в систему, и.

У нас есть база данных, которая регулярно обновляется. Я использую базу данных ehcache и mysql. Теперь, как только база данных обновляется, нам нужно извлечь некоторую информацию из базы данных в зависимости от обновления и опубликовать ее в кэше. Как я должен синхронизировать свою базу данных с.

Я тоже только что столкнулся с этим. Добавление многословного флага показало, что $releasever не был установлен в url. Проверьте это сами с помощью dnf update -v

Ищите эти строки в выходных данных:

Я исправил эту проблему с dnf clean all && dnf update --releasever=25 . Это переопределяет $releasever с тем, который вы предоставляете. После этого я смог обновить и установить RPM снова.

В /etc/dnf/dnf.conf убедитесь, что:

Это исправляет его с помощью некоторых зеркал,особенно Яндекс.

попробуйте очистить и обновить перед установкой решите мою проблему:

dnf очистить все

обновление dnf

ДНФ установить gcc

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

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

Я использую Fedora 30. После обновления fedora 29 до 30 я столкнулся с той же проблемой, что и "failed to synchronize cache for repo updates". Я попробовал следующее, И это решило мою проблему.

Я попробовал это сделать и решил свою проблему.

$sudo dnf repolist

Эта проблема возникла у меня из-за некоторой интернет-цензуры/ограничений в моем регионе (Россия). Пробовал использовать флаг -v (длинные хэши укорачиваются):

Затем я включил VPN и повторил команду dnf update , и теперь все выглядит OK.

UPD: люди говорят, что это может быть вызвано установкой fastestmirror=True в /etc/dnf/dnf.conf . Я не думаю, что это мой случай, потому что здесь нет такой настройки в моем конфигурационном файле, а fastestmirror по умолчанию установлен в False .

Похожие вопросы:

Я зафиксировал и толкнул свое локальное РЕПО после того, как удалил файл, но не смог синхронизировать его с удаленным РЕПО, файл, который я удалил, все еще остается удаленным РЕПО.

Я использую W7 64 bi и только что получил ошибку от клиентского приложения github. Там написано: не удалось синхронизировать ветку. возможно, вам придется открыть shell и отладить состояние этого.

После обновления до macOS Sierra 10.12 я больше не могу синхронизировать до gutHub. Из настольного программного обеспечения я получаю Возможно, у вас нет разрешения на доступ к [проекту]. Проверять.

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

На Fedora 26, когда я делаю sudo dnf update , я получаю ошибку Ошибка: не удалось синхронизировать кэш для РЕПО 'updates' Я настроил как свой общесистемный прокси-сервер, так и прокси-сервер в.

Я хочу зеркально отразить a git repo в своем локальном РЕПО и хочу своевременно синхронизировать их, я сделал это так: git clone --mirror source_url source_repo cd source_repo git push --mirror.

Я создал CodeSandbox из github РЕПО. Как я могу синхронизировать с CodeSandbox , если есть некоторые коммиты, перенесенные в репо github? Я вижу, что в Codesandbox есть представление github, но оно.


Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен.

Оглавление

список названий пакетов из репозиторий

список всех доступных пакетов

список всех установленных пакетов

установлен ли указанный пакет

список установленных и доступных пакетов

список пакетов, относящихся к ядру

отображение информации о пакете

список зависимостей и необходимых пакетов

найти пакет, который содержит файл

поиск пакета по имени и описанию


получить информацию о доступных обновлениях безопасности

вывести список групп

вывести описание и содержимое группы

установка группы пакетов «Basic Web Server»

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

список подключенных репозиториев

информация об определенном репозитории

информация о пакетах в указанном репозитории

установить все пакеты из репозитория

удалить пакеты установленные из репозитория

проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)


просмотр yum истории (вывод списка транзакций)

просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)

дополнительно можно просмотреть лог

удалить пакеты сохраненные в кэше

удалить все пакеты и метаданные

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

обновить до определенной версии

установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)

откатиться к предыдущей версии пакета

переустановка пакета (восстановление удаленных файлов)

удаление ненужных более пакетов

создание локальных репозиториев (createrepo ставится отдельно)

установка обновлений по расписанию (yum-cron устанавливается отдельно)

Опции Yum

ответить «yes» при запросе,


ответить «no» при запросе

использовать Yum без плагинов

или отключить определенный плагин

включить плагины, которые установлены, но отключены

включить отключенный репозиторий

скачать пакеты, но не устанавливать
(на Centos 7 x86_64 будут скачаны в '/var/cache/yum/x86_64/7/base/packages/')

Cледующие команды доступны после установки пакета yum-utils

найти из какого репозитория установлен пакет

найти процессы, пакеты которых обновлены и требуют рестарта

запрос к репозиторию, узнать зависимости пакета, не устанавливая его

синхронизировать yum репозиторий updates в локальную директорию repo1

проверить локальный репозиторий на целостность

установить необходимые зависимости для сборки RPM пакета

управление конфигурационными опциями и репозиториями yum

запрос к локальной базе yum, отображение информации о пакете
(использованная команда, контрольная сумма, URL с которого был установлен и другое)

скачать rpm пакеты из репозитория

скачать src.rpm пакет из репозитория
(должен быть подключен соответствующий репозиторий, например в '/etc/yum.repos.d/CentOS-Sources.repo' в CentOS)

Конфигурационные файлы Yum и их расположение

Основной конфигурационный файл

директория, с конфигурациями (например, yum плагины)

директория, содержащая информацию о репозиториях

Некоторые опции yum.conf:

Директория, где yum хранит кэш и файлы базы (по умолчанию '/var/cache/yum')

Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)

лог файл (по умолчанию '/var/log/yum.log')

обновлять устаревшие пакеты

проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)

включение плагинов. Значения: 0 или 1 (по умолчанию 1)

Некоторые полезные плагины

Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями

выбирает более быстрые репозитории из списка зеркал

добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.

блокировать указанные пакеты от обновления, команда yum versionlock

добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов

Работа Yum через прокси сервер

Для всех пользователей:
добавить в секцию [main] в /etc/yum.conf

при необходимости указать пароль, добавить

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


Буду рад любым дополнениям и замечаниям.
Дополнительно читайте:

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