CentOS: Установка git с помощью yum говорит, что glibc требует glibc-common старше установленного.

Вопрос или проблема

Я использую 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.

Возможные решения

  1. Проверка репозиториев:
    Убедитесь, что у вас правильно настроены репозитории. В CentOS 6 может быть несколько доступных репозиториев, таких как base, updates и epel. Иногда включение EPEL-репозитория может привести к конфликтам.

    yum repolist

    Если вы видите, что EPEL-репозиторий активен, попробуйте временно отключить его при установке Git:

    yum install git --disablerepo=epel
  2. Обновление системы:
    Обновите список пакетов и саму систему, чтобы устранить конфликты зависимостей:

    yum update -y

    После этого попробуйте снова установить Git.

  3. Использование флага –skip-broken:
    Если проблема все равно сохраняется, вы можете попробовать установить пакеты с флагом --skip-broken, который игнорирует неполные зависимости:

    yum install git --skip-broken

    Будьте осторожны с этой опцией, так как установка без полной зависимости может оставить систему нестабильной.

  4. Ошибки с Docker image:
    Иногда проблема может быть вызвана ошибками в образе Docker. Вы упомянули, что изменение в образе CentOS решило вашу проблему. Это может быть связано с временными проблемами на стороне репозиториев, поэтому стоит попробовать перезапустить сборку с использованием свежего образа:

    docker pull centos:6

    Это вернет вашу систему к стабильной версии пакетов.

  5. Конфликты с версиями glibc:
    Ваша текущая версия glibc-common может конфликтовать с необходимыми версиями. Проверьте, какие версии доступны:

    yum list available glibc-common

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

Заключение

Работа с зависимостями в CentOS может быть непростой задачей, особенно при использовании в контейнерах Docker. Всегда старайтесь поддерживать ваши образы и пакеты в актуальном состоянии, проверяйте репозитории и избегайте конфликтов при установке новых пакетов. Если вы сталкиваетесь с подобными проблемами снова, следите за состоянием ваших репозиториев и текущих версий пакетов.

Оцените материал
Добавить комментарий

Капча загружается...