Solusi Alex benar-benar menekan kesalahan, dan ia hampir benar penyebabnya, tetapi itu tidak memungkinkan Anda untuk menjawab pertanyaan apa pun (yang baik-baik saja ketika Anda telah memperkirakan jawaban dan menjalankan dari skrip, tetapi sangat menjengkelkan ketika Anda mencoba paket baru ). Masalah inti adalah interaksi antara asumsi yang dibuat oleh berbagai front ssh dan debconf.
Mari kita mulai dengan ssh. ssh mengasumsikan bahwa ketika Anda tidak menentukan perintah jarak jauh Anda ingin pty pada ujung jarak jauh dan bahwa Anda menentukan jarak jauh Anda tidak (yang bekerja dengan sangat baik 90% dari waktu, hanya saja tidak satu ini). Ini dapat ditimpa oleh -t
opsi yang memaksa pty atau -T
opsi yang tidak memaksa pty (atau opsi file konfigurasi yang sesuai). Lebih lanjut ketika menggunakan pty TERM
variabel lingkungan disalin (pengecualian mungkin berlaku memeriksa dokumentasi untuk rincian lengkap dan formulir entri undian resmi). Juga perhatikan bahwa -x
opsi menonaktifkan penerusan X11 dan -X
mengaktifkannya.
Debconf sendiri tidak memiliki persyaratan interaktivitas (sesuai desain), tetapi berbagai frontend melakukannya, dan masing-masing memiliki persyaratan yang berbeda.
Saya percaya bahwa tampilan terbaik adalah gnome (ada juga ujung depan ked yang saya tidak dapat bekerja). Frontend gnome (dan juga kde) memerlukan pustaka non-default dan server X11, oleh karena itu baris perintah untuk memaksa frontend gnome (setelah pustaka yang sesuai diinstal) akan menjadi
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
atau jika Anda lebih suka KDE
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
Frontend dialog (default) memerlukan pty dan terminal dengan tingkat fungsionalitas minimum yang ditentukan dalam variabel TERM (dalam praktiknya ini adalah apa saja dengan deskripsi terminfo lengkap kecuali bodoh).
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
atau
ssh -t <remote_srv> "apt-get autoremove"
frontend readline memiliki persyaratan yang kurang ketat dan akan bekerja dengan terminal bodoh, tetapi akan membutuhkan pty.
ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"
Frontend editor tergantung pada editor yang akan memiliki persyaratan khusus tergantung pada editor.
ssh -t <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=vi apt-get autoremove"
ssh -X <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=gvim\ -f apt-get autoremove"
Frontend noninteraktif tidak memiliki persyaratan tetapi tidak mengajukan pertanyaan (yang mungkin atau mungkin tidak seperti yang Anda inginkan).
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"