Ich erlebe gerade das gleiche Problem. Ich habe Stunden gebraucht, um das Problem zu finden und es zu lösen. Mein Fall ist das Unterbrechen des yum update
und der letzte yum.log
Datensatz ist genau wie Sie
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
Ich habe alle Lösungen gesucht und ausprobiert, aber kein Glück wie Sie. dann habe ich die rpm-quelle gelesen und in der gefundenrpm/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; }
dann habe ich versucht mit code wie folgt zu verifizieren
#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; }
und habe das NSS_InitContext
nicht referenziert. ~~ Es ist also klar, dass die lib-Version nicht übereinstimmt
wget beide nss-3.36.0-7.el7_5.x86_64.rpm
und nspr-4.13.1-1.0.el7_3.x86_64.rpm
(mein System ist centos7)
indem rpm2cpio *rpm | cpio -idmv
die Datei zu extrahieren, und kopieren Sie in / usr
Läuft rpm
noch den Fehler
version `NSSUTIL_3.31' not found (required by /lib64/libnss3.so)
wget das nss-util-3.36.0-1.el7_5.x86_64.rpm und führt noch mehr aus rpm2cpio and copy
dann wird alles ok ~ hoffe das kann dir helfen