Ubuntu 20.04(WSL)上的睡眠功能不起作用

Ubuntu 20.04(WSL)上的睡眠功能不起作用

在 WSL 上升级到 20.04 后,睡眠功能无法正常工作并出现错误:

sleep: cannot read realtime clock: Invalid argument

答案1

wget https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1871129/+files/libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb

sudo dpkg --install libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb

sudo apt-mark hold libc6

sudo apt --fix-broken install

sudo apt full-upgrade

如何在 WSL Windows 10 上将 Ubuntu 18.04 升级到 20.04

答案2

刚刚遇到这个问题,我/usr/bin/sleep用一个 python 脚本替换了二进制文件,大致取代了该功能。

备份/usr/bin/sleep并替换为以下内容的文件

#!/usr/bin/env python3

import sys
import time

time.sleep(int(sys.argv[1]))

chmod +x /usr/bin/sleep替换后请记得。

答案3

这是因为 WSL1 中有一个错误。看这里: https://discourse.ubuntu.com/t/ubuntu-20-04-and-wsl-1/15291

即将推出的 Ubuntu 20.04 实现了 glibc 2.31。除非您使用 Insider,否则您尚未获得问题 4989 的修复,并且可能几个月内都不会得到修复。如果没有修复,Ubuntu 20.04 在 WSL 1 上往往会出现问题,有时甚至在升级到 Ubuntu 20.04 的过程中也会出现问题。例如,htop 在未打补丁的 WSL 1 上的 Ubuntu 20.04 上不起作用。

答案4

这远非理想,但另一种解决方法是编辑/var/lib/dpkg/info/libc6:amd64.postinst并注释掉set -e脚本顶部的(插入#作为行中的第一个字符)。

您仍会收到sleep: cannot read realtime clock: Invalid argument错误,但它不会导致包的升级中止。

这并不理想,因为:

  1. 修改了标准安装后脚本。
  2. libc6每次升级时都必须应用脚本更改。

相关内容