一、起因
使用Windows的Linux子系统(wsl),版本wsl 2,安装kali linux时。
无论是更新软件还是安装软件,全部都在更新libc6_2.38-10_amd64.deb这个包被卡住。
无论是换源还是单独下载这个包进行安装,均会被卡住。
在网络上寻找相关问题并解决,大多数文章都指向换源解决。
错误详细
一切有关命令
apt-get install
均会出现以下错误:
Preparing to unpack .../libc6_2.38-10_amd64.deb ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking libc6:amd64 (2.38-10) over (2.37-12) ...
Setting up libc6:amd64 (2.38-10) ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
在这时,wsl不再有任何反馈,我等了很久都没有任何动静。
在任务管理器中WSL的程序vmmemWSL保持运行,CPU占用率一直在10%-20%,内存也在一个较高的值。能明显听到风扇频率提高的声音。
这时,一切命令失效。无法使用CTRL+C结束运行,也无法退出WSL。仅通过关闭窗口也无法关闭vmmemWSL的进程,依然在运行。
通过WSL命令查看
wsl -l -v
结果如下:
PS D:\user\Desktop> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
kali-linux Running 2
可以看到kali linux仍在运行。
通过wsl命令或任务管理器可以结束掉。
wsl -t kali-linux
重启Kali Linux后运行apt-get仍然错误。
输入命令apt-get upgrade出现
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
┌──(root㉿computer)-[/mnt/d/user/Desktop]
└─# apt-get upgrade
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
尝试运行sudo dpkg --configure -a出现
┌──(root㉿computer)-[/mnt/d/user/Desktop]
└─# sudo dpkg --configure -a
Setting up libc-l10n (2.38-10) ...
Setting up locales-all (2.38-10) ...
Setting up libc6:amd64 (2.38-10) ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
这时候回到了起点。后续我尝试了各类命令。
包括
1.运行apt-get -f install
2.
sudo vim /var/lib/dpkg/info/libc6\:amd64.postinst
并注释掉这行
# set -e
都无效
二、解决
最后是在在一篇关于 永远卡在Setting up libc6:amd64 (2.37-15) 的评论区一位朋友的回答中得到了解决,文章链接附在后面。
通过以下命令可以解决相关问题
sudo mv /usr/sbin/telinit /usr/sbin/telinit.bak
sudo ln -s /usr/bin/true /usr/sbin/telinit
三、分析
根据我从debian官方软件包下载安装的结果来看
更新这个软件包时,会和原来的产生某些错误冲突,导致无法成功更新,后续我也尝试了卸载包的方法,但是发现似乎并没有用。