一、查看glibc版本
root@ztl:~# ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 2.31
Copyright (C) 2020 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.
得出当前glibc版本为2.31
二、添加源
使用ubuntu-ports的source list,如
http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
这里说明下ubuntu/和ubuntu-ports/的区别:
- 前者是achieve源,收录的架构为 AMD64 (x86_64) 和 Intel x86。
- 后者是ports源,收录的架构为 arm64,armhf,PowerPC,ppc64el 和 s390x等,对于树莓派等ARM架构的开发板,需要使用ports源。
以ubuntu 22.04为例,可以使用如下清华源:
执行:
sudo vim /etc/apt/sources.list
添加:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
然后执行:
sudo apt-get update
sudo apt install libc6
再次查看glibc版本:
root@ztl:~# ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.8) 2.35
Copyright (C) 2022 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.
三、其他方式
执行
sudo vim /etc/apt/sources.list
添加:
deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ xenial main universe
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports xenial main universe
参考:
You have errors in the sources.list configuration files.
The binary packages for arm64 architecture are not available on the same repository servers as the i386 and amd64 packages, but only on the ports.ubuntu.com server.
Do you really need binaries for arm64 architecture?
If no, then you should remove arm64 as foreign architecture with the command
sudo dpkg --remove-architecture arm64
If you need that additional architecture (e.g. because of doing cross-compilation), you have to reorganize your sources.list files and separate the lines for i386 and amd64 from those for arm64, something like
deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu/ xenial main universe
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports xenial main universe
In any case you have to make sure that the command "sudo apt-get update" does not show any error message (like 404 Not found) any more.