После обновления до 20,04 на сне WSL не работает с ошибкой:
sleep: cannot read realtime clock: Invalid argument
Это из-за ошибки в WSL1.Послушайте: https://discourse.ubuntu.com/t/ubuntu-20-04-and-wsl-1/15291
Предстоящая Ubuntu 20.04 реализует glibc 2.31. Если Вы не находитесь на Инсайдере, Вы еще не получили фиксацию для выпуска 4989, и вероятно не будет в течение пары месяцев. Без фиксации вещи имеют тенденцию повреждаться на Ubuntu 20.04 на WSL 1, иногда даже в процессе обновления 9 к Ubuntu 20.04. Например, htop не работает над Ubuntu 20.04 на неисправленном WSL 1.
Эта команда сработала для меня. использовать с привилегиями пользователя root.
apt-mark hold libc6
apt --fix-broken install
apt full-upgrade
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
Я только что установил Ubuntu 20.04 с помощью WSL 1 (моя версия Windows 10 — 1903, сборка ОС 18362.778) и получил эту ошибку при попытке запустить сервер Redis.
Благодаря ссылке Раджа на https://www.how2shout.com/how-to/how-to-upgrade-ubuntu-18-04-lts-to-20-04-lts-on-wsl. -windows-10.html Я исправил это, используя то, что там было предложено.
sudo -i
sudo mv /bin/sleep /bin/sleep~ ; touch /bin/sleep ; chmod +x /bin/sleep
После этого сервер Redis заработал нормально.
Только что столкнулся с этой проблемой, и я заменил двоичный файл /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
после замены.
Использование чтения в качестве альтернативного решения
sudo cp -p /usr/bin/sleep /usr/bin/sleep.orig
echo 'read -n1 -s -t$1 || true' | sudo tee /usr/bin/sleep
Установка этого через dpkg на Surface Pro X решила эту проблему для меня, https://ubuntu.pkgs.org/19.10/ubuntu-updates-main-arm64/libc6_2.30-0ubuntu2.2_arm64.deb.html
После установки я запустил wsl -t Ubuntu в PowerShell, затем sudo apt -отметить удержание libc6.
Это далеко не идеально, но есть еще один обходной путь: отредактировать /var/lib/dpkg/info/libc6:amd64.postinst
и закомментировать set -e
в верхней части сценарий (вставьте #
в качестве первого символа в строке).
Вы по-прежнему будете получать ошибку sleep: cannot read realtime clock: Invalid arguments
, но это не приведет к прерыванию обновления пакета.
Это не идеально, потому что:
libc6
.