web-dev-qa-db-ja.com

Windows Bash(WSL)-Sudo:ttyが存在せず、askpassプログラムが指定されていません

次のように this tutroial ユーザーまたはSudoとしてコマンドを実行しようとすると、次のエラーが発生します。

Sudo:ttyが存在せず、askpassプログラムが指定されていません

この記事の Lurdan からのコメントには、実行する必要があると記載されています

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

chmodは機能しませんが、Sudo -Sありますが、確かに別の修正がありますか?

15
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

29
Chris Rogers

WSLは、Windowsからの管理にlxrun実行可能ファイルを使用します。

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