Problema
Durante l'esecuzione apt-get install
in una sessione SSH non interattiva, la sessione non si chiude mai. Esempio:
ssh user@target "sudo apt-get -y install my_package"
Il my_package
viene installato correttamente, ma la sessione SSH appena dondola aperta.
Domanda
C'è qualche bandiera per passare a SSH per mettersi apt-get
al lavoro?
Informazioni aggiuntive
Contesto
L'installazione remota viene utilizzata per la distribuzione automatica di un pacchetto su un server di integrazione. Non appena trasferiamo alcune modifiche al codice in un repository, un lavoro estrae il codice, crea il pacchetto e lo distribuisce sull'integrazione per verificare che tutto funzioni correttamente (per quanto riguarda la distribuzione).
Già provato e note
- La stessa sessione SSH in esecuzione si
apt-get update
chiude in modo pulito. Si noti cheapt-get update
non è interattivo, mentre loapt-get install
è. Ciò può suggerire che l'interattività è un problema. - Un comando come
ssh user@target "sudo apt-get install my_package && echo Hello"
non raggiunge mai ilecho
. debconf
si lamenta che non riesce a trovare un bel frontend (Display, Readline) e ricade su Teletype (sebbene Readline sia disponibile).- In relazione al frontend di debconf, passare
-t
per forzare TTY con SSH non aiuta. NemmenoDEBIAN_FRONTEND=noninteractive
. - Tutto è stato fatto su Ubuntu 12_04 LTS.
ssh user@target
i comandi dalla shell) funziona correttamente?