问题描述
当尝试执行以下命令进行系统升级时:
sudo apt upgrade
升级进程在以下步骤中卡住不动:
Setting up libc6:amd64 (2.37-15) ...
重启系统后,该问题仍然存在,如下图所示:
原因分析
apt
命令是一个用于处理包的工具,可以用于安装、升级、删除软件包等操作。在执行sudo apt upgrade
命令时,系统会尝试升级所有已安装的软件包。在这个过程中,系统需要对每个软件包进行解压、配置和安装等操作。
升级过程在Setting up libc6:amd64 (2.37-15) ...
这一步骤中停止。libc6
是Linux系统的C库,是系统中最基本的库,几乎所有的Linux程序都需要用到这个库。
可能是因为libc6
的配置过程中出现了问题,在配置过程中需要的某个文件或者服务(如telinit
)无法正常工作。需要先移动/usr/sbin/telinit
,然后创建一个指向/usr/bin/true
的符号链接。让系统在配置libc6
时跳过对telinit
的调用,从而避免了可能的问题。
解决方案
- 终止当前的升级命令。
- 移动
/usr/sbin/telinit
到/usr/sbin/telinit.bak
:
sudo mv /usr/sbin/telinit /usr/sbin/telinit.bak
- 创建一个指向
/usr/bin/true
的符号链接/usr/sbin/telinit
:
sudo ln -s /usr/bin/true /usr/sbin/telinit
- 重新配置已经安装的包:
sudo dpkg --configure -a
- 清理APT缓存:
sudo apt clean
- 再次尝试执行升级命令:
sudo apt upgrade
问题得到解决。
参考资料
- https://ask.csdn.net/questions/8091755