web-dev-qa-db-fra.com

J'ai cassé le sous-système Windows Linux (Bash sous Ubuntu sous Windows 10). Aide Linux?

Je joue avec le nouveau sous-système linux sous Windows et d’une manière ou d’une autre je l’ai cassé et maintenant la plupart des composants internes d’Ubuntu (apt-get, dpkg, etc.) ne fonctionnent pas. Tout ce que je tente, je reçois le même message ...

    Setting up udev (204-5ubuntu20.19) ...
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: No such file or directory
runlevel:/var/run/utmp: No such file or directory
 * udev requires devtmpfs support, not started
   ...fail!
invoke-rc.d: initscript udev, action "restart" failed.
dpkg: error processing package udev (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of systemd-services:
 systemd-services depends on udev (>= 175-0ubuntu23); however:
  Package udev is not configured yet.

dpkg: error processing package systemd-services (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libpam-systemd:AMD64:
No apport report written because the error message indicates its a followup error from a previous failure. libpam-systemd:AMD64 depends on systemd-services (= 204-5ubuntu20.19); however:
  Package systemd-services is not configured yet.


dpkg: error processing package libpam-systemd:AMD64 (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
 udev
 systemd-services
 libpam-systemd:AMD64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Une idée de comment réparer ça?

22
Mike Pengelly

Fixe le.

Ran:

apt-get remove upstart

puis

apt-get remove udev

puis

apt-get autoremove

et tout semble fonctionner maintenant.

18
Mike Pengelly

Attention, ce processus va restaurer la configuration initiale de Lxss

Pour réinstaller Lxss, ouvrez Windows cmd en tant qu'administrateur et exécutez:

C:\WINDOWS\system32>LxRun.exe /uninstall

Ensuite:

C:\WINDOWS\system32>LxRun.exe /install
34
Jonas

La réponse officielle de Microsoft

github: Microsoft/BashOnWindows

C'est un problème que tout le monde va commencer à voir. Nous devons ajouter quelque chose à ce sujet dans nos documents officiels.

Comme @nuclearmistake le fait remarquer, udev est quelque chose qui claque dans apt-get, mais les erreurs ne devraient pas causer de problèmes dans WSL. Nous avons contacté Canonical pour demander la meilleure solution et nous recommandons les modifications suivantes:

Écrivez ce qui suit dans /usr/sbin/policy-rc.d

#!/bin/sh exit 101

chmod + x /usr/sbin/policy-rc.d

dpkg-divert --local --rename --add/sbin/initctl

ln -s/bin/true/sbin/initctl

J'ai essayé celui-ci moi-même et il semble fonctionner assez bien.

9
oxenfree

Voici une solution plus ciblée. Créez un script nommé /usr/sbin/policy-rc.d (nano /usr/sbin/policy-rc.d) avec le contenu suivant:

#!/bin/sh
case "$1" in
    udev|systemd-logind) exit 101;;
esac

Sauvegarder et quitter (Ctrl+OCtrl+X). Marquez le script comme exécutable (chmod +x /usr/sbin/policy-rc.d). Ce script indique à dpkg de ne pas tenter de démarrer udev ou systemd-logind.

Vous serez alors en mesure de terminer l'étape de configuration _dpkg qui a échoué précédemment (dpkg --configure -a).

6
Anders Kaseorg