it-swarm.com.ru

Windows Bash (WSL) - Sudo: tty отсутствует и не задана программа askpass

После следования этот tutroial я получаю следующую ошибку при попытке запустить команды как пользователь или даже Sudo:

Sudo: tty отсутствует и не задана программа askpass

Комментарии от Лурдан в этой статье утверждают, что вам нужно запустить 

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

chmod не работает, но Sudo -S работает, но наверняка есть другое исправление?

14
Chris Rogers

Так глупо, посмотрев дальше вниз, я вижу решение от Beorat :

Чтобы избежать проблемы Sudo tty и других, выполните эти команды непосредственно перед запуском do-release-upgrade:

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

Если вы уже выполнили обновление, выполните указанные выше команды, а затем вручную перейдите к пакетам 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

Более подробная информация здесь: https://github.com/Microsoft/BashOnWindows/issues/482

28
Chris Rogers

WSL использует исполняемый файл lxrun для управления из 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

Учитывая это, вы можете использовать lxrun /setdefaultuser root. Просто подумал, что укажу на эту сторону, так как это было необходимо, когда я столкнулся с той же проблемой, что и вы, после попытки перейти на Xenial. Я могу подтвердить, что, выполнив эту команду , команды wget/dpkg мои проблемы были решены.

Команды, которые я использовал:

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

Наконец, вам может потребоваться запустить Sudo apt-get install -f, если вы получите The following packages have unmet dependencies [xxx] but it is not going to be installed

14
cchamberlain

Я избавился от ошибки, переместив/etc/hosts в /etc/hosts.bu. После закрытия командной консоли и открытия снова,/etc/hosts воссоздается и добавляется имя вашего компьютера. Ошибка ушла (для меня.)

1
Freek