CentOS 8 не может найти libnss3.so (64-бит)

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

Я не могу найти файл libnss3.so (64-битная версия) в CentOS 8, даже после установки связанного пакета nss-3.44.0-4.el7.x86_64.rpm.

Я могу найти только 32-битную версию в /usr/lib/, но 64-битной версии в /usr/lib64/ нет.

Я попытался вернуться к CentOS 7 и проверить, что libnss3.so находится в /usr/lib64, и действительно, файл присутствует в /usr/lib64 в CentOS 7.

Где находится 64-битная версия libnss3.so в CentOS 8?

Буду признателен за любые указания/советы/разъяснения, спасибо.

ОБНОВЛЕНИЕ
Я только что выполнил чистую установку CentOS 8, но все равно нет libnss3.so в /usr/lib64/.

[test@centos-s-1vcpu-1gb-fra1-01 lib64]#sudo cat /etc/*release*
CentOS Linux release 8.1.1911 (Core) 
Производное от Red Hat Enterprise Linux 8.1 (Source)
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

CentOS Linux release 8.1.1911 (Core)
CentOS Linux release 8.1.1911 (Core)
cpe:/o:centos:centos:8

[test@centos-s-1vcpu-1gb-fra1-01 lib64]#sudo  ls libnss
libnssckbi.so           libnss_compat.so.2      libnss_dns.so.2         libnss_files.so.2       libnss_resolve.so.2     libnss_systemd.so.2
libnss_compat-2.28.so   libnss_dns-2.28.so      libnss_files-2.28.so    libnss_myhostname.so.2  libnss_sss.so.2         

Также после небольшого исследования выяснилось, что yum в CentOS 8 предлагает только версии i686 (32 бита) libnss3.so.

[test@centos-s-1vcpu-1gb-fra1-01 lib64]#sudo yum whatprovides libnss3.so
Последняя проверка метаданных истекла: 0:30:41 назад в Пт 27 Мар 2020 13:38:16 UTC.
nss-3.44.0-8.el8.i686 : Службы сетевой безопасности
Repo        : AppStream
Совпало с:
Provide    : libnss3.so

nss-3.44.0-9.el8_1.i686 : Службы сетевой безопасности
Repo        : AppStream
Совпало с:
Provide    : libnss3.so

Есть ли возможность вручную установить libnss3.so 64 бита?

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

При установке libnss3.so 64-битная версия устанавливается только если я использую dnf, когда я использую yum, устанавливается только 32-битная версия. Я разобрался в этом, иск.Searching online while I was trying to manually download the package binaries to unpack them myself (см. centos.pkgs.org).

Я просто не понимаю, почему dnf устанавливает 64-битную версию, в то время как yum устанавливает 32-битную версию? Буду признателен за любой анализ этого вопроса. В любом случае, спасибо всем, кто внес свой вклад.

Ответ или решение

Проблема с отсутствием файла libnss3.so (64-битной версии) в CentOS 8 может быть довольно запутанной для пользователей, привыкших к различиям в пакетном управлении между версиями CentOS 7 и CentOS 8. Давайте подробно разберемся в данной ситуации.

Проблема

Вы столкнулись с проблемой отсутствия 64-битного файла libnss3.so в директории /usr/lib64/ после установки пакета nss. При перечислении доступных файлов вы заметили наличие только 32-битной версии в /usr/lib/, в то время как 64-битная версия отсутствует.

Исследование

После установки CentOS 8 и выполнения команды yum whatprovides libnss3.so вы обнаружили, что в доступных репозиториях есть только 32-битные версии .i686. Это может вызывать недоумение, особенно на фоне того, что в CentOS 7 64-битная версия данной библиотеки присутствует.

Решение

К счастью, вы успешно нашли решение данной проблемы. Как вы отметили, 64-битная версия libnss3.so доступна при использовании менеджера пакетов dnf, который является преемником yum в CentOS 8. Для этого вам нужно выполнить команду:

sudo dnf install nss

После этого команда автоматически установит 64-битную версию libnss3.so, которая будет находиться в директории /usr/lib64/.

Почему это происходит?

Причины, по которым yum и dnf ведут себя по-разному, заключаются в различиях в их реализации и способах работы с метаданными репозиториев.

  • Yum: Он ориентирован на работу с 32-битными пакетами, и в CentOS 8 может по умолчанию искать только документы, предоставляемые в 32-битной версии, если они есть. Если в репозитории установлены и 32-битные, и 64-битные версии пакетов, yum может приоритетно выбирать 32-битные.

  • Dnf: В отличие от yum, dnf был спроектирован с более современным подходом к управлению пакетами, включая улучшенные механизмы разрешения зависимостей и предпочтения 64-битных версий. Он также внедряет более новый кэш и механизм хранения метаданных, что делает его более эффективным в поиске и установке корректных версий пакетов.

Заключение

Таким образом, для установки 64-битной версии libnss3.so в CentOS 8 вам следует использовать dnf. Важно понимать, что переход от yum к dnf в CentOS 8 знаменует собой значительный сдвиг в способе управления пакетами, который может повлиять на совместимость и доступность некоторых библиотек.

Если возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться.

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

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