Вопрос или проблема
Я использую CentOS 6 из Docker, и когда я устанавливаю git
, я получаю ошибку зависимости:
Ошибка: Пакет: glibc-2.12-1.166.el6_7.7.i686 (обновления)
Требуется: glibc-common = 2.12-1.166.el6_7.7
Установлено: glibc-common-2.12-1.192.el6.x86_64 (@CR/6.7)
glibc-common = 2.12-1.192.el6
Доступно: glibc-common-2.12-1.166.el6.x86_64 (база)
glibc-common = 2.12-1.166.el6
Доступно: glibc-common-2.12-1.166.el6_7.1.x86_64 (обновления)
glibc-common = 2.12-1.166.el6_7.1
Доступно: glibc-common-2.12-1.166.el6_7.3.x86_64 (обновления)
glibc-common = 2.12-1.166.el6_7.3
Доступно: glibc-common-2.12-1.166.el6_7.7.x86_64 (обновления)
glibc-common = 2.12-1.166.el6_7.7
Вы можете попробовать использовать --skip-broken, чтобы обойти проблему
Вы можете попробовать запустить: rpm -Va --nofiles --nodigest
Служба 'docker-project' не удалось собрать: Команда '/bin/sh -c yum install -y \
java-1.8.0-openjdk-devel.x86_64 \
unzip \
git \
&& yum clean all' вернула ненулевой код: 1
Это работало несколько дней назад без каких-либо изменений. Что случилось с репозиторием CentOS?
Для справки, вот мой Dockerfile
:
FROM centos:6
RUN yum install -y \
java-1.8.0-openjdk-devel.x86_64 \
unzip \
git \
&& yum clean all
Будут некоторые конфликты, когда репозиторий EPEL активирован. Попробуйте установить git
с помощью следующей команды:
yum install git --disablerepo=epel
Вы можете навсегда исключить git из репозиториев EPEL, добавив exclude=git*
в файл /etc/yum.repos.d/epel.repo
.
Удаление репозитория EPEL и --disablerep=epel
не помогло. В конце концов, я сделал docker pull centos:centos6
, и, похоже, это исправило ситуацию. Думаю, это была временная проблема в образе, и недавнее обновление её исправило.
Ответ или решение
Установка Git на CentOS 6: Решение проблемы с зависимостями glibc
Когда вы работаете с CentOS 6 в Docker, может возникнуть ряд проблем, связанных с зависимостями при установке пакетов через yum
, как, например, ошибка о несовпадении версий glibc
и glibc-common
. В этой статье мы подробно разберем ваш случай и предложим возможные решения.
Описание проблемы
Вы получили следующую ошибку при попытке установить Git с помощью команды yum
:
Error: Package: glibc-2.12-1.166.el6_7.7.i686 (updates)
Requires: glibc-common = 2.12-1.166.el6_7.7
Installed: glibc-common-2.12-1.192.el6.x86_64 (@CR/6.7)
glibc-common = 2.12-1.192.el6
Эта ошибка указывает на то, что вы пытаетесь установить пакет glibc
, который требует более старую версию glibc-common
, чем та, которая уже установлена в вашей системе. Это может произойти из-за неправильных или конфликтующих репозиториев или из-за изменений в репозиториях CentOS.
Возможные решения
-
Проверка репозиториев:
Убедитесь, что у вас правильно настроены репозитории. В CentOS 6 может быть несколько доступных репозиториев, таких какbase
,updates
иepel
. Иногда включение EPEL-репозитория может привести к конфликтам.yum repolist
Если вы видите, что EPEL-репозиторий активен, попробуйте временно отключить его при установке Git:
yum install git --disablerepo=epel
-
Обновление системы:
Обновите список пакетов и саму систему, чтобы устранить конфликты зависимостей:yum update -y
После этого попробуйте снова установить Git.
-
Использование флага –skip-broken:
Если проблема все равно сохраняется, вы можете попробовать установить пакеты с флагом--skip-broken
, который игнорирует неполные зависимости:yum install git --skip-broken
Будьте осторожны с этой опцией, так как установка без полной зависимости может оставить систему нестабильной.
-
Ошибки с Docker image:
Иногда проблема может быть вызвана ошибками в образе Docker. Вы упомянули, что изменение в образе CentOS решило вашу проблему. Это может быть связано с временными проблемами на стороне репозиториев, поэтому стоит попробовать перезапустить сборку с использованием свежего образа:docker pull centos:6
Это вернет вашу систему к стабильной версии пакетов.
-
Конфликты с версиями glibc:
Ваша текущая версияglibc-common
может конфликтовать с необходимыми версиями. Проверьте, какие версии доступны:yum list available glibc-common
Если у вас более новая версия, возможно, вам придется удалить текущую и установить необходимую версию. Однако это может повредить стабильности остальной части системы, и такие действия следует делать очень осторожно.
Заключение
Работа с зависимостями в CentOS может быть непростой задачей, особенно при использовании в контейнерах Docker. Всегда старайтесь поддерживать ваши образы и пакеты в актуальном состоянии, проверяйте репозитории и избегайте конфликтов при установке новых пакетов. Если вы сталкиваетесь с подобными проблемами снова, следите за состоянием ваших репозиториев и текущих версий пакетов.