环境

CentOS Linux release 7.9.2009 (Core)

描述

在 yum update 更新后,使用 CTRL + c 强制中断运行,报错 error: Failed to initialize NSS library,导致 yum rpm 等组件不可用。

分析

查看系统版本

]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
]# rpm --version
RPM version 4.11.3

测试 rpm 包

]# python -c "import rpm"
error: Failed to initialize NSS library
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/rpm/__init__.py", line 10, in <module>
    from rpm.transaction import *
  File "/usr/lib64/python2.7/site-packages/rpm/transaction.py", line 5, in <module>
    from rpm._rpm import ts as TransactionSetCore
ImportError: cannot import name ts

yum 错误信息

]# yum clean all
error: Failed to initialize NSS library
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   cannot import name ts

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.5 (default, Aug  7 2019, 00:51:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

解决

找一台与原系统版本完全相同的机器,复制 nss 相关 so 到代修复主机进行替换。

]# mkdir -p /tmp/fix/lib64
]# cp -av /lib64/libnss* /tmp/fix/lib64/

备份需要修复主机的源文件,复制压缩包到需要修复的主机。

]# mkdir /root/libnss_backup
]# cp -av /lib64/libnss* /root/libnss_backup/ 2>/dev/null
]# tar -xzvf fix.tgz
]# \cp -avrf fix/lib64/* /lib64/

检查 rpm,yum 恢复可用状态

]# ldconfig
]# rpm --version
RPM version 4.11.3
]# python -c "import rpm"
]# yum repolist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                                       repo name                                                                                           status
base/7/x86_64                                                                 CentOS-7                                                                                            10072
epel/x86_64                                                                   Extra Packages for Enterprise Linux 7 - x86_64                                                      13791
extras/7/x86_64                                                               CentOS-7                                                                                              526
updates/7/x86_64                                                              CentOS-7                                                                                             6173
zabbix/x86_64                                                                 Zabbix Official Repository - x86_64                                                                   681
zabbix-non-supported/x86_64                                                   Zabbix Official Repository non-supported - x86_64                                                       6
repolist: 31249

重建 rpm 数据库,安装 yum util,清理 yum 未完成的事务,检查重复包、清理重复包

]# rpm --rebuilddb
]# yum install -y yum-utils
]# yum-complete-transaction --cleanup-only
]# package-cleanup --dupes
]# package-cleanup --cleandupes -y
]# yum check # 可能会等待10-20分钟
1:grub2-pc-modules-2.02-0.87.0.2.el7.centos.14.noarch is a duplicate with 1:grub2-pc-modules-2.02-0.80.el7.centos.noarch
kbd-misc-1.15.5-16.el7_9.noarch is a duplicate with kbd-misc-1.15.5-15.el7.noarch
libgcc-4.8.5-44.el7.x86_64 is a duplicate with libgcc-4.8.5-39.el7.x86_64
nss-softokn-freebl-3.90.0-6.el7_9.x86_64 is a duplicate with nss-softokn-freebl-3.44.0-8.el7_7.x86_64
nss-softokn-freebl-3.90.0-6.el7_9.x86_64 has missing requires of nspr >= ('0', '4.35.0', None)
nss-softokn-freebl-3.90.0-6.el7_9.x86_64 has missing requires of nss-util >= ('0', '3.90.0', '1')
python-rpm-macros-3-34.el7.noarch is a duplicate with python-rpm-macros-3-32.el7.noarch
python-srpm-macros-3-34.el7.noarch is a duplicate with python-srpm-macros-3-32.el7.noarch
python3-rpm-macros-3-34.el7.noarch is a duplicate with python3-rpm-macros-3-32.el7.noarch
tzdata-2024a-1.el7.noarch is a duplicate with tzdata-2019c-1.el7.noarch
2:vim-filesystem-7.4.629-8.el7_9.x86_64 is a duplicate with 2:vim-filesystem-7.4.629-6.el7.x86_64

出现 missing requires of nspr nss-util,可能出现略微版本差异,更新相关组件以匹配即可
~~
]# yum update nspr nss-util -y

最后修改:2026 年 05 月 22 日 02 : 19 PM
如果觉得文章帮助了您,您可以随意赞赏。