Вопрос или проблема
Я хочу использовать Kali Linux на своем компьютере с Windows 11 через WSL. После установки Kali на WSL я выполнил sudo apt update -y
, что прошло успешно, затем sudo apt upgrade -y
, которое теперь застряло на 2% прогресса уже более 20 минут. Эта операция не должна занимать столько времени.
Выполнил sudo apt update -y
, и это прошло успешно, затем sudo apt upgrade -y
, которое не завершилось. Индикатор прогресса застрял на 2% уже более 20 минут. Я не могу прервать процесс с помощью “ctrl + c”. Если я попытаюсь открыть другое окно терминала Kali и выполнить команду sudo apt upgrade
, я получаю ошибку “Ожидание блокировки кэша: Не удалось получить блокировку /var/lib/dpkg/lock-frontend. Она удерживается процессом 126 (apt)…”.
По всей видимости, первая команда обновления все еще выполняется, но не завершается. Что может быть причиной этого и что я могу попробовать, чтобы решить эту проблему?
Спасибо!
Я столкнулся с этой проблемой сегодня и заметил, что процесс telinit
использует 100% CPU, когда смотрел вывод top
в другом терминале.
Выполнение sudo kill -9 <telinit pid>
позволило завершить обновление.
Шаги
- Откройте Powershell от имени администратора
- Выполните эту команду wsl –unregister
- Удалите Linux WSL из Windows
- Снова загрузите из Microsoft Store
- После этого запустите свой Linux WSL после установки
- Не выполняйте никаких обновлений, просто запустите sudo apt-get update
- После этого выполните эти две команды в Linux WSL
- “sudo mv /usr/sbin/telinit /usr/sbin/telinit.bak “
- “sudo ln -s /usr/bin/true /usr/sbin/telinit”
- После этого выполните sudo apt-get update && sudo apt-get upgrade
Я столкнулся с такой же проблемой при обновлении Kali Linux на WSL2. Я также пытался исправить проблему, удалив файлы блокировки, но это не сработало для меня.
$ sudo rm /var/lib/apt/lists/lock $ sudo rm /var/cache/apt/archives/lock $ sudo rm /var/lib/dpkg/lock
Я использовал эту команду, и она сработала для меня.
$ `sudo apt install -f`
или
$ sudo dpkg --configure -a
Ответ или решение
Чтобы решить проблему с зависанием команды sudo apt upgrade -y
в Kali Linux на WSL (Windows Subsystem for Linux), выполните следующие шаги:
1. Проверка запущенных процессов
Сначала вам нужно проверить, есть ли работающие процессы, которые могут блокировать apt
. Откройте новый терминал в Kali и выполните команду:
top
Посмотрите, нет ли процесса telinit
или других процессов, которые могут потреблять высокие ресурсы CPU. Если вы обнаружите, что процесс telinit
забивает CPU, завершите его, используя следующую команду с PID соответствующего процесса:
sudo kill -9 <PID>
2. Удаление блокировок
Если вы не можете завершить процесс, который блокирует apt
, или если команда зависла, вам необходимо удалить блокировки. Выполните в терминале следующие команды:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
3. Исправление зависших пакетов
После удаления блокировок необходимо исправить возможные проблемы с зависшими пакетами. Выполните одну из следующих команд:
sudo apt install -f
или
sudo dpkg --configure -a
4. Установка необходимых обновлений
После выполнения вышеуказанных команд попробуйте снова обновить список пакетов и выполнить апгрейд:
sudo apt update -y
sudo apt upgrade -y
5. Дополнительные действия для решения проблемы с telinit
Если проблема с telinit
продолжает возникать, вы можете временно переименовать этот файл и создать ссылку на true
, чтобы избежать зависания:
sudo mv /usr/sbin/telinit /usr/sbin/telinit.bak
sudo ln -s /usr/bin/true /usr/sbin/telinit
После этого снова попробуйте выполнить обновление:
sudo apt update && sudo apt upgrade
6. Переустановка WSL (если ничего не помогает)
Если несмотря на все попытки проблема сохраняется, вы можете удалить и заново установить Kali Linux на WSL. Для этого выполните следующие шаги:
- Откройте PowerShell от имени администратора.
- Выполните команду:
wsl --unregister <имя_дистрибутива>
- Удалите Kali Linux из Windows.
- Снова скачайте Kali Linux из Microsoft Store.
- После установки не выполняйте обновления сразу, просто запустите:
sudo apt-get update
- Затем выполните команды, которые помогут избежать проблем с
telinit
(как указано выше).
Заключение
Следуя этим шагам, вы должны устранить проблему с зависанием sudo apt upgrade -y
в Kali Linux на WSL. Если проблема все еще сохраняется, возможно, стоит искать дополнительные источники информации и поддержку на форумах, связанных с Kali и WSL.