web-dev-qa-db-fra.com

Windows Bash (WSL) - Sudo: aucun tty présent ni programme askpass spécifié

Après avoir suivi ce tutroial j’obtiens l’erreur suivante lorsque vous essayez d’exécuter les commandes en tant qu’utilisateur ou même Sudo:

Sudo: aucun tty présent et aucun programme askpass spécifié

Les commentaires de Lurdan dans cet article indiquent que vous devez exécuter 

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

chmod ne fonctionne pas mais Sudo -S si, mais il existe sûrement un autre correctif?

14
Chris Rogers

Si bête, après avoir regardé plus bas, je vois une solution de Beorat :

Pour éviter le problème Sudo tty et d’autres, exécutez ces commandes juste avant d’exécuter do-release-upgrade:

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

Si vous avez déjà effectué la mise à niveau, exécutez les commandes ci-dessus, puis rétrogradez manuellement les packages Trusty:

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

Plus d'informations ici: https://github.com/Microsoft/BashOnWindows/issues/482

28
Chris Rogers

WSL utilise l'exécutable lxrun pour la gestion à partir de 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

Dans ce cas, vous pouvez utiliser lxrun /setdefaultuser root. Je pensais juste que je signalerais cet aspect-là, car c'était nécessaire lorsque j'ai rencontré le même problème que vous après avoir tenté de passer à Xenial. Je peux confirmer que l'exécution de cette commande , puis les commandes wget/dpkg pour résoudre mes problèmes.

Les commandes que j'ai utilisées:

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

Enfin, vous devrez peut-être exécuter Sudo apt-get install -f au cas où vous auriez The following packages have unmet dependencies [xxx] but it is not going to be installed

14
cchamberlain

Je me suis débarrassé de l'erreur en déplaçant/etc/hosts vers /etc/hosts.bu. Après la fermeture du shell en ouvrant à nouveau,/etc/hosts est recréé et le nom de votre ordinateur est ajouté. L'erreur est partie (pour moi.)

1
Freek