у yum недостаточно кэшированных данных для продолжения. На данный момент единственная безопасная вещь, которую может сделать yum - это провал - PullRequest
6 голосов
/ 15 февраля 2020

Мы используем нестандартные репозитории в нашей компании. Что-то заставляет их не выполнять команду yum makecache.

Я на CentOS Linux release 7.7.1908 (Core).

Вот ошибка, которую мы получаем, когда запускаем yum makecache:

 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this

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

Репо Epel:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

Репо нашей компании:

[mmp]
name=MMP
baseurl=http://10.245.19.168/mmp_repo/
gpgcheck=0
enabled=1

I Я не уверен, в чем проблема. Как я могу сделать эту ошибку go прочь?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Этот вопрос решен здесь . Итак, сначала немного предыстории: когда yum устанавливает пакет, он распаковывает и перемещает все файлы в соответствующий каталог (то есть opt, bin, etc и так далее). Когда сетевое соединение прерывается, запись на диск останавливается, причем некоторые файлы могут не записываться во время процесса установки, в то время как программа по-прежнему возвращает сообщение об успешной установке.

Чтобы исправить это:

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

Особенно baseurl

# grep 'baseurl' /etc/yum.repos.d/* | grep HDP

Просто добавьте «/repodata/repomd.xml» в URL-адрес и затем проверьте, доступен ли он.

Пример: если baseurl равен http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0, то попробуйте получить доступ к нему следующим образом, чтобы проверить доступ , Проверьте все URL-адреса

# curl -v http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/repodata/repomd.xml

Если URL-адреса доступны, в этом случае попробуйте очистить кэш yum, выполнив команду.

# yum clean all

После yum clean попробуйте еще раз выполнить следующую команду, чтобы убедиться, что проблема не устранена.

# yum -y install ranger_2_6_3_0_235-admin

0 голосов
/ 25 февраля 2020

Это, похоже, проблема с репозиторием EPEL. Попробуйте yum с

--disablerepo=epel\* 

до тех пор, пока они не исправят это.

Если у вас нет срочной необходимости получать пакеты от EPEL, используйте yum с

--disablerepo=epel 

пока ваше локальное зеркало не синхронизируется. yum clean all может или не может помочь, в зависимости от того, в какое зеркало вы попали.

Мое общее предложение остается в силе, хотя - если у вас нет срочной необходимости получать пакеты EPEL, я бы предложил использовать

--disablerepo=epel 

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

 yum clean all 

не помогает, вам нужно настроить конфигурацию так, чтобы она указывала на какое-то конкретное c зеркало с фиксированным содержимым, например, путем добавления baseurl = http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/epel/7/

$ basearch to epel.repo. Однако большинство зеркал должно быть обновлено.


Альтернативы >>>

Я оказался на канале Freenode #epel, когда кто-то жаловался на эту проблему, но если это случилось со мной, я мог бы включить один репозиторий за раз (с --disablerepo = * и --enablerepo = somerepo) , чтобы найти репо, вызвавшее проблему.

skip_if_unavailable = 1 для некритических репозиториев звучит как хорошая идея.

Многим людям нужно всего несколько пакетов из EPEL. Один из вариантов - импортировать нужные вам пакеты EPEL в какой-нибудь локально управляемый репозиторий и использовать его вместо этого. createrepo связано с этим. Top

...