Я просто испытываю ту же проблему. Мне потребовались часы, чтобы найти проблему и решить ее. мой случай прервать yum update
и последняя yum.log
запись так же, как вы
Oct 22 19:04:36 Updated: 1:grub2-pc-modules-2.02-0.65.el7.centos.2.noarch Oct 22 19:04:36 Updated: tzdata-2018e-3.el7.noarch Oct 22 19:04:37 Updated: bash-4.2.46-30.el7.x86_64 Oct 22 19:04:37 Updated: nss-softokn-freebl-3.36.0-5.el7_5.x86_64
Я искал и пробовал все решения, но не так, как вы. Затем я прочитал источник RPM и нашел вrpm/rpmio/digest_nss.c
#if HAVE_NSS_INITCONTEXT PRUint32 flags = (NSS_INIT_READONLY|NSS_INIT_NOCERTDB| NSS_INIT_NOMODDB|NSS_INIT_FORCEOPEN| NSS_INIT_NOROOTINIT|NSS_INIT_OPTIMIZESPACE); _nss_ctx = NSS_InitContext(NULL, NULL, NULL, NULL, NULL, flags); if (_nss_ctx == NULL) { #else if (NSS_NoDB_Init(NULL) != SECSuccess) { #endif rpmlog(RPMLOG_ERR, _("Failed to initialize NSS library\n")); rc = -1; } else { _crypto_initialized = 1; } sigaction(SIGPIPE, &oact, NULL); } /* Register one post-fork handler per process */ if (_new_process) { if (pthread_atfork(NULL, NULL, at_forkchild) != 0) { rpmlog(RPMLOG_WARNING, _("Failed to register fork handler: %m\n")); } _new_process = 0; } return rc; }
Затем я попытался с кодом, как это, чтобы проверить
#include <stdio.h> #include <nss.h> int main() { NSSInitContext * _nss_ctx = NULL; printf("hello world!\n"); PRUint32 flags = (NSS_INIT_READONLY|NSS_INIT_NOCERTDB| NSS_INIT_NOMODDB|NSS_INIT_FORCEOPEN| NSS_INIT_NOROOTINIT|NSS_INIT_OPTIMIZESPACE); _nss_ctx = NSS_InitContext(NULL, NULL, NULL, NULL, NULL, flags); if(_nss_ctx == NULL){ printf("Error"); }else{ printf("OK"); } return 0; }
и получил NSS_InitContext
это не ссылка. ~~ так ясно, что версия lib не совпадает
Wget nss-3.36.0-7.el7_5.x86_64.rpm
и nspr-4.13.1-1.0.el7_3.x86_64.rpm
(моя система - centos7)
использовать rpm2cpio *rpm | cpio -idmv
для извлечения файла и копирования в / usr
запустить rpm
все еще получил ошибку
version `NSSUTIL_3.31' not found (required by /lib64/libnss3.so)
wget nss-util-3.36.0-1.el7_5.x86_64.rpm и сделать больше rpm2cpio and copy
тогда все ок ~ надеюсь, это поможет вам