linux 查看glibc的版本、查看所安装的软件的依赖

GLIBC是一个C标准库,很多C/C++程序都会依赖它,在linux系统上安装一些软件(库)时,linux系统需要满足该软件(库)的所有依赖才行,否则,就会出现无法安装或使用的问题,本文以最近在ubuntu系统下使用到的库libnss3-tools作为示例进行说明。

libnss3-tools是一个用于网络安全服务的软件包。提供了一些工具和库文件,用于处理网络安全协议和证书。在ubuntu系统上安装该该库时报错了,错误如下:usr/bin/certutil: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by usr/bin/certutil)

该错误意思是说:usr/bin/certutil需要的glibc的版本为:GLIBC_2.34,但是再我的系统中没有这个版本或者版本不兼容。所以查了下当前ubuntu系统的glibc版本:

:~$ ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

或者

:~$ getconf GNU_LIBC_VERSION
glibc 2.27

可见,当前系统glibc的版本为2.27,低于所需版本2.34,所以要么升级glibc版本,要么安装适合当前gblic的libnss3-tools。升级glibc可能会导致系统其他部分不工作。在Debian或Ubuntu上,你可以使用apt-get命令来更新glibc

sudo apt-get update
sudo apt-get upgrade libc6

所以,稳妥起见,我考虑降低libnss3-tools的版本以适应当前glibc,于是在debian官网查找其它版本,过程如下:

一、登录nss包管理地址

Debian Package Tracking System -nss

二、找到低版本,如这里选择2:3.61-1+deb11u3,然后点击该链接

三、此时进入的是nss源码的一个说明界面,该界面显示了nss包的依赖

此处说明下:nss源码包构建时同时构建了以下二进制包:libnss3libnss3-devlibnss3-tools

四、点击界面中的链接libnss3-tools,跳转到libnss3-tools的说明界面,该界面显示的为libnss3-tools依赖

从界面中依赖可知,如果是amd架构下,对于glibc的依赖为:libc6 (>= 2.14) [amd64]

同样,我们看下其它版本对应glibc的依赖:

综上所述,这里我选择相对最新的适合当前glibc版本的2:3.61-1+deb11u3

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值