ням сломался, когда я прерываю обновление nss-softokn-freebl-3.36.0-5.el7 5.x86 64

моя система centos7.

[root@centos7 caiyiheng]# uname -a
Linux centos7 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 
x86_64 x86_64 x86_64 GNU/Linux

моя система работает в virtualbox.

когда я запускаю cmd yum -y update и нажмите ctrl+c в то время как Юм что-то обновлению. после этого я обнаружил, что больше не могу использовать yum или rpm. когда я вводю yum или rpm, он показывает как:

[root@centos7 caiyiheng]# yum
error: Failed to initialize NSS library
error: no dbpath has been set
error: cannot open Packages database in /%{_dbpath}
CRITICAL:yum.main:

Error: rpmdb open failed
[root@centos7 caiyiheng]# rpm
error: Failed to initialize NSS library

большинство команд yum или rpm не могут работать, например yum install,yum clean all даже yum --help.

проверить /var/log/yum.log, оно показывает как:

[root@centos7 caiyiheng]# tail -f /var/log/yum.log
Sep 21 05:53:21 Installed: wget-1.14-15.el7_4.1.x86_64
Sep 21 05:53:21 Installed: lsof-4.87-5.el7.x86_64
Sep 21 05:53:22 Installed: net-tools-2.0-0.22.20131004git.el7.x86_64
Sep 26 17:28:11 Updated: libgcc-4.8.5-28.el7_5.1.x86_64
Sep 26 17:28:12 Installed: 1:grub2-common-2.02-0.65.el7.centos.2.noarch
Sep 26 17:28:13 Installed: 1:grub2-pc-modules-2.02-0.65.el7.centos.2.noarch
Sep 26 17:28:13 Installed: firewalld-filesystem-0.4.4.4-14.el7.noarch
Sep 26 17:28:14 Updated: tzdata-2018e-3.el7.noarch
Sep 26 17:28:14 Updated: ncurses-base-5.9-14.20130511.el7_4.noarch
Sep 26 17:28:15 Updated: nss-softokn-freebl-3.36.0-5.el7_5.x86_64

и я ищу в google для целый день, нашел много решений может понравиться моя проблема, я пробовал их, но ничего не происходит.

например

я даже загрузить rpm https://centos.pkgs.org/7/centos-updates-x86_64/nss-softokn-freebl-3.36.0-5.el7_5.x86_64.rpm.html

и rpm2cpio nss-softokn-freebl-3.36.0-5.el7_5.x86_64.rpm | cpio -idmv и копия ./usr / lib или lib64 или ./etc в /usr /lib/usr /lib64 / etc, но все это не может решить мою проблему.

кто-то упомянул, что у yum есть проблема с chroot (https://bugs.centos.org/view.php?id=14767) но это не соответствует моей ситуации, я даже пробовал, но ничего не происходит.

22
задан rangercyh
25.04.2023 2:39 Количество просмотров материала 2456
Распечатать страницу

1 ответ

Я просто испытываю ту же проблему. мне потребовалось несколько часов, чтобы найти проблему и решить ее. мое дело-прервать 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

run 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

тогда все ок ~ надеюсь, что это может помочь вам

0
отвечен user2160372 2023-04-26 10:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх