web-dev-qa-db-de.com

Windows Bash (WSL) - Sudo: Keine tty vorhanden und kein askpass-Programm angegeben

Nach folgendem diesem Tutroial bekomme ich folgende Fehlermeldung, wenn ich versuche, die Befehle als Benutzer oder sogar als Sudo auszuführen:

Sudo: keine tty vorhanden und kein askpass-Programm angegeben

Die Kommentare von Lurdan in diesem Artikel geben an, dass Sie ausführen müssen 

Sudo -S <YOUR_COMMAND>
chmod 0666 /dev/tty

chmod funktioniert nicht, aber Sudo -S, aber sicherlich gibt es noch eine andere Korrektur?

14
Chris Rogers

So dumm, nach weiterem Hinschauen sehe ich eine Lösung von Beorat :

Um das Sudo tty-Problem und andere Probleme zu vermeiden, führen Sie die folgenden Befehle aus, bevor Sie do-release-upgrade ausführen:

Sudo -S apt-mark hold Sudo
sudo -S apt-mark hold procps
Sudo -S apt-mark hold strace

Wenn Sie bereits ein Upgrade durchgeführt haben, führen Sie die oben genannten Befehle aus und führen Sie ein manuelles Downgrade auf die Trusty-Pakete durch:

Sudo -S wget http://mirrors.kernel.org/ubuntu/pool/main/s/Sudo/sudo_1.8.9p5-1ubuntu1.1_AMD64.deb
Sudo -S wget http://mirrors.kernel.org/ubuntu/pool/main/p/procps/procps_3.3.9-1ubuntu2_AMD64.deb
Sudo -S wget http://mirrors.kernel.org/ubuntu/pool/main/s/strace/strace_4.8-1ubuntu5_AMD64.deb
Sudo -S dpkg -i Sudo_1.8.9p5-1ubuntu1.1_AMD64.deb
Sudo -S dpkg -i procps_3.3.9-1ubuntu2_AMD64.deb
Sudo -S dpkg -i strace_4.8-1ubuntu5_AMD64.deb

Weitere Informationen hier: https://github.com/Microsoft/BashOnWindows/issues/482

28
Chris Rogers

WSL verwendet die ausführbare Datei lxrun für die Verwaltung von Windows:

lxrun -h

Usage:
    /install - Installs the subsystem
        Optional arguments:
            /y - Do not Prompt user to accept
    /uninstall - Uninstalls the subsystem
        Optional arguments:
            /full - Perform a full uninstall
            /y - Do not Prompt user to accept
    /setdefaultuser - Configures the subsystem user that bash will be launched as. If the user does not exist it will be created.
        Optional arguments:
            username - Supply the username
            /y - If username is supplied, do not Prompt to create a password
    /update - Updates the subsystem's package index

Aus diesem Grund können Sie lxrun /setdefaultuser root verwenden. Ich dachte nur, ich würde auf diese Seite hinweisen, da es notwendig war, als ich nach dem Versuch, auf Xenial zu aktualisieren, auf dasselbe Problem stieß wie Sie. Ich kann bestätigen, dass dieser Befehl ausgeführt wird , und dann die wget/dpkg-Befehle, mit denen meine Probleme gelöst wurden.

Die Befehle, die ich verwendet habe:

wget http://mirrors.kernel.org/ubuntu/pool/main/s/Sudo/sudo_1.8.9p5-1ubuntu1.4_AMD64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/p/procps/procps_3.3.9-1ubuntu2_AMD64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/strace/strace_4.8-1ubuntu5_AMD64.deb
dpkg -i Sudo_1.8.9p5-1ubuntu1.4_AMD64.deb
dpkg -i procps_3.3.9-1ubuntu2_AMD64.deb
dpkg -i strace_4.8-1ubuntu5_AMD64.deb

Schließlich müssen Sie möglicherweise Sudo apt-get install -f ausführen, falls Sie The following packages have unmet dependencies [xxx] but it is not going to be installed erhalten.

14
cchamberlain

Ich habe den Fehler behoben, indem ich/etc/hosts nach /etc/hosts.bu verschoben habe. Nach dem Schließen der Shell und erneutem Öffnen der Datei wird/etc/hosts neu erstellt und Ihr Computername wird hinzugefügt. Der Fehler ist weg (für mich).

1
Freek