Исправление ошибки сна в Ubuntu 20.04 (WSL)

Убунту 7

После обновления до Ubuntu 20.04 в подсистеме Windows для Linux (WSL) вы можете столкнуться с проблемой, когда команда sleep возвращает сообщение об ошибке: «sleep: не удается прочитать часы реального времени: неверный аргумент». Эта проблема вызвана ошибкой в ​​WSL1 и связана с версией glibc, используемой в Ubuntu 20.04. В этой статье вы найдете несколько способов решения этой проблемы.

Понимание проблемы

Проблема возникает из-за ошибки в WSL1, которая влияет на команду сна в Ubuntu 20.04. Команда sleep — это основная команда, используемая в Linux для приостановки выполнения процесса на указанный период. Ошибка приводит к сбою команды sleep, возвращая сообщение об ошибке «Неверный аргумент».

Обходной путь 1: установка определенной версии пакета libc6

Один из обходных путей включает в себя загрузку и установку определенной версии пакета libc6. Пакет libc6 содержит библиотеку GNU C, которая является ключевой частью операционной системы Linux.

Обратите внимание: это решение предполагает установку пакета из стороннего источника. Прежде чем продолжить, всегда учитывайте риски и потенциальные трудности возврата к исходной версии.

Чтобы установить конкретную версию пакета libc6, используйте команды wget и dpkg следующим образом:

wget sudo dpkg -i libc6_2.31-0ubuntu9.7_amd64.deb

Команда wget используется для загрузки файлов из Интернета. Команда dpkg -i используется для установки пакета.

Обходной путь 2: замена двоичного файла /usr/bin/sleep скриптом Python

Другой обходной путь — заменить двоичный файл /usr/bin/sleep сценарием Python, который эмулирует его функциональность.

Во-первых, создайте резервную копию исходного бинарного файла сна:

sudo mv /usr/bin/sleep /usr/bin/sleep.bak

Затем создайте новый скрипт Python со следующим содержимым:

#!/usr/bin/python3 время импорта import sys time.sleep(float(sys.argv[1]))

Сохраните этот скрипт как /usr/bin/sleep и сделайте его исполняемым с помощью команды chmod:

sudo chmod +x /usr/bin/sleep

Команда chmod +x используется для создания исполняемого файла.

Обходной путь 3: использование команд apt-mark, apt –fix-broken install и apt full-upgrade.

Другое решение — использовать команды apt-mark, apt –fix-broken install и apt full-upgrade.

Сначала обновите списки пакетов с помощью apt-get update:

sudo apt-получить обновление

Затем выполните следующие команды:

sudo apt-mark hold libc6 sudo apt –fix-broken установить sudo apt с полным обновлением

Команда apt-markhold используется для предотвращения автоматической установки, обновления или удаления пакета. Команда apt –fix-broken install используется для разрешения и исправления любых сломанных зависимостей в вашей системе. Команда apt full-upgrade используется для обновления системы путем удаления/установки/обновления пакетов.

Заключение

Хотя эти обходные пути могут помочь устранить ошибку сна в Ubuntu 20.04 в WSL, важно учитывать потенциальные риски и ограничения каждого решения, прежде чем внедрять их. Всегда делайте резервную копию ваших данных и конфигураций, прежде чем вносить существенные изменения в вашу систему.

Подсистема Windows для Linux (WSL) — это уровень совместимости, который позволяет изначально запускать дистрибутивы Linux в Windows 10 и Windows Server. Это позволяет пользователям использовать инструменты, команды и приложения Linux без необходимости в отдельной виртуальной машине или установке с двойной загрузкой.

Команда sleep возвращает ошибку в Ubuntu 20.04 в WSL из-за ошибки в WSL1, которая влияет на команду sleep. Ошибка связана с версией glibc, используемой в Ubuntu 20.04.

Да, один из обходных путей включает установку определенной версии пакета libc6. Однако важно отметить, что это решение предполагает установку пакета из стороннего источника, и при возврате к исходной версии могут возникнуть риски и трудности.

Чтобы заменить двоичный файл /usr/bin/sleep сценарием Python, вы можете сначала создать резервную копию исходного двоичного файла сна с помощью команды sudo mv /usr/bin/sleep /usr/bin/sleep.bak. Затем создайте новый скрипт Python с предоставленным содержимым и сохраните его как /usr/bin/sleep. Наконец, сделайте скрипт исполняемым с помощью команды sudo chmod +x /usr/bin/sleep.

Команда apt-markhold используется для предотвращения автоматической установки, обновления или удаления пакета. Команда apt –fix-broken install используется для разрешения и исправления любых сломанных зависимостей в вашей системе. Команда apt full-upgrade используется для обновления системы путем удаления/установки/обновления пакетов. Эти команды используются в качестве обходного пути для исправления ошибки сна в Ubuntu 20.04 в WSL.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *