Как определить, какая версия библиотеки yum совместима с конкретной версией зависимости, которая уже установлена? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь установить библиотеку libcap-devel через yum, и похоже, что в репозитории yum моей компании есть только libcap-devel-2.22-8.el7.x86_64, для чего требуется glibc-common-2.17-105.el7.

К сожалению, glibc-common, установленный на моей виртуальной машине, установлен на glibc-common-2.17-222.el7.x86_64, и установка не удалась.

Я хочу выяснить, как определить, какая версия libcap-devel совместима с glibc-common-2.17-222.el7.x86_64, а затем попросите системных администраторов добавить эту версию libcap-devel в репозиторий yum (что мне не разрешено делать), чтобы я мог успешно установить его.Как мне это сделать?

Вот вывод yum install libcap-devel

Resolving Dependencies
--> Running transaction check
---> Package libcap-devel.x86_64 0:2.22-8.el7 will be installed
--> Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64
--> Running transaction check
---> Package libcap.i686 0:2.22-8.el7 will be installed
--> Processing Dependency: libattr.so.1 for package: libcap-2.22-8.el7.i686
--> Processing Dependency: libattr.so.1(ATTR_1.0) for package: libcap-2.22-8.el7.i686
--> Processing Dependency: libc.so.6(GLIBC_2.8) for package: libcap-2.22-8.el7.i686
--> Running transaction check
---> Package glibc.i686 0:2.17-105.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-105.el7 for package: glibc-2.17-105.el7.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.17-105.el7.i686
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-105.el7.i686
---> Package libattr.i686 0:2.4.46-12.el7 will be installed
--> Running transaction check
---> Package glibc.i686 0:2.17-105.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-105.el7 for package: glibc-2.17-105.el7.i686
---> Package nss-softokn-freebl.i686 0:3.16.2.3-13.el7_1 will be installed
--> Finished Dependency Resolution
 You could try using --skip-broken to work around the problem
Error: Package: glibc-2.17-105.el7.i686 (redhat_base)
           Requires: glibc-common = 2.17-105.el7
           Installed: glibc-common-2.17-222.el7.x86_64 (@anaconda/7.5)
               glibc-common = 2.17-222.el7
           Available: glibc-common-2.17-105.el7.x86_64 (redhat_base)
               glibc-common = 2.17-105.el7

Вот вывод yum --showduplicates list libcap-devel, который показывает, что репозиторий yum имеет только одну доступную версию:


========================== N/S matched: libcap-devel ===========================
libcap-devel-2.22-8.el7.i686 : Development files for libcap
libcap-devel-2.22-8.el7.x86_64 : Development files for libcap


Вывод yum --showduplicates list libcap показывает:

Installed Packages
libcap.x86_64                      2.22-9.el7                      @anaconda/7.5
Available Packages
libcap.i686                        2.22-8.el7                      redhat_base  
libcap.x86_64                      2.22-8.el7                      redhat_base  

Вывод yum install -y libcap-2.22-8.el7.x86_64 показывает:

Соответствие пакета libcap-2.22-8.el7.x86_64 уже установлен.Проверка на обновление.Ничего не делать

После этого, yum install -y libcap-devel-2.22-8.el7.x86_64 все еще пытается загрузить 32-битную версию:

...
--> Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64
--> Running transaction check
---> Package libcap.i686 0:2.22-8.el7 will be installed
...

Вывод yum --showduplicates list glibc показывает glibc.i686 0: 2.17-222.el7 недоступен, только 2.17-105.e17.

Installed Packages
glibc.x86_64                     2.17-222.el7                      @anaconda/7.5
Available Packages
glibc.i686                       2.17-105.el7                      redhat_base  
glibc.x86_64                     2.17-105.el7                      redhat_base  

Любая вариация этого сбоя:

yum downgrade -y glibc-2.17-105.el7
yum downgrade -y glibc-2.17-105.el7 glibc-common-2.17-105.el7
yum downgrade -y glibc-2.17-105.el7 glibc-common-2.17-105.el7 glibc-devel-2.17-105.el7
yum downgrade -y glibc-headers-2.17-105.el7 glibc-2.17-105.el7 glibc-common-2.17-105.el7 glibc-devel-2.17-105.el7

Например, первая команда жалуется наglibc-common и glibc-devel, добавление которых приводит к появлению жалобы на glibc-заголовки, а четвертая строка на самом деле segfaults.

1 Ответ

0 голосов
/ 20 июня 2019

добро пожаловать в джунгли зависимостей библиотеки / rpm:)

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

Зависимость обработки: libcap = 2.22-8.el7 для пакета: libcap-devel-2.22-8.el7.x86_64

Вы пытаетесь установить libcap-devel.yum говорит, что ему также нужно установить libcap с точно таким же номером версии.Пока никаких сюрпризов.

Будет установлен пакет libcap.i686 0: 2.22-8.el7

Это, вероятно, уже то, что вам не нужно.Вы, кажется, находитесь на 64-битной системе;Вы действительно хотите, чтобы версия этой библиотеки была установлена ​​на i686?Дело в том, что libcap-devel не говорит, что для этого требуется версия x86_64;это требует любого из двух.Предпочтительно yum установит версию x86_64, но если это невозможно, подойдет версия i686.

В этом случае я бы предложил вам сначала попробовать установить libcap-2.22-8.el7.x86_64 и посмотреть, почему yum не установит его.

Но в любом случае давайте просто продолжим, это будеттакже предоставит вам информацию о том, как решить эту проблему для пакета x86_64.

-> Зависимость обработки: libc.so.6 (GLIBC_2.8) для пакета: libcap-2.22-8.el7.i686

-> Запуск проверки транзакции

---> Пакет glibc.i686 0: 2.17-105.el7 будет установлен

, так что здесь yum выбрал для установки glibc.i686 0:2.17-105.el7, вероятно, чтобы удовлетворить libc.so.6(GLIBC_2.8)

, теперь возникает конфликт: glibc.i686 0:2.17-105.el7 требует glibc-common с точно таким же номером версии, но у вас уже есть болеепоследняя версия glibc-common на вашем компьютере.

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

Здесь приведено несколько решений, а не полный список в порядке моих предпочтений:

  1. выясните, почему libcap-2.22-8.el7.x86_64 не может быть установлен.
  2. убедитесь, что glibc.i686 0:2.17-222.el7 доступен в ваших yum репозиториях(или установлен в вашей системе)
  3. понизьте вашу glibc-common (и, вероятно, также glibc x86_64 версию) до версии 0: 2.17-105.el7
...