Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法
参考debian网址https://packages.debian.org/buster/并搜索想要的软件或者工具等,如libc6,有结果如下:
具体就不介绍了,请浏览官网了解。
第一步:添加软件源,在/etc/apt/sources.list文件中的最后面追加下面这一行内容(参考官网):
deb http://security.debian.org/debian-security buster/updates main
第二步: 系统可用的软件包更新,刷新软件包的缓存
sudo apt update # 更新软件源
第三步:apt-get update之后若出现下面提示:
由于没有公钥,无法验证下列签名: NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A 54404762BBB6E853
其中后面的112695A0E562B32A 54404762BBB6E853就是上面提到的NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853中的公钥,替换成对应的即可。
第四步: 然后重新执行更新软件包命令即可。
apt-get update
可看可不看: 查看软件包可更新列表
sudo apt list --upgradable
第五步: 安装libc6
sudo apt install libc6-dev libc6
看一下吧,你也放心: 查看服务器当前版本:
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
不出意外你已经成功了,提前恭喜你解决问题,愉快的继续工作吧~
如果你是在内网环境,并且你知道一台服务器可以链接外网,可以通过代理的方式更新apt源。
你可以通过在服务器A上设置代理服务器来实现服务器B通过服务器A访问外部APT源的需求。以下是具体步骤:
在服务器A(假设IP:172.16.16.122)上安装代理服务
假设你使用的是Squid
作为代理服务器,因为它是Linux下常用的代理服务器软件之一。
在服务器A上安装Squid:
sudo apt updatesudo apt install squid
配置Squid代理服务器
编辑Squid的配置文件/etc/squid/squid.conf
,使其允许服务器B的访问请求:
sudo vim /etc/squid/squid.conf
在文件中添加或修改以下行:
http_access allow all
这将允许所有的HTTP请求通过代理,你也可以设置更细粒度的访问控制。
保存并关闭文件后,重启Squid服务以应用新的配置:
sudo systemctl restart squid
在服务器B上配置APT使用代理
在服务器B上配置APT以通过服务器A的代理服务器进行连接,首先编辑APT配置:
sudo vim /etc/apt/apt.conf.d/02proxy
在该文件中添加以下行:
Acquire::http::Proxy "http://172.16.16.122:3128";
请替换服务器A的IP地址
为实际的服务器A的内网IP地址,3128
是Squid的默认端口,如果你在Squid配置中更改了端口,请使用相应的端口。
如果加key出现问题尝试用hkp,执行下面的命令
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=http://172.16.16.122:3128 --recv-keys 112695A0E562B32A 54404762BBB6E853
更新APT和系统
在服务器B上运行下面的命令来更新APT的软件包列表和系统:
sudo apt updatesudo apt upgrade
如果一切配置正确,服务器B现在应该能够通过服务器A的代理来访问外网的APT源并进行更新。
确保你的安全设置正确,只允许信任的服务器B通过服务器A的Squid代理进行连接,以防止潜在的安全风险。此外,如果服务器B需要通过HTTPS连接,则可能需要在Squid代理中进行额外配置,并在APT配置中指定Acquire::https::Proxy
。