Sono appena riuscito a configurare con successo la mia prima istanza di Discourse, anche se ho incontrato alcune difficoltà lungo il percorso. Uso Debian Stretch e stavo seguendo la guida all’installazione Docker.
Durante la configurazione, lo script verifica se il nome di dominio inserito corrisponde effettivamente a quello della macchina. Lo fa utilizzando nc (netcat). Ho scoperto che questo era il mio problema: non avevo netcat installato; una semplice installazione ha risolto la questione.
Tuttavia, penso che ci sia un bug nello script di installazione: una semplice funzione per verificare se nc è installato dovrebbe risolvere il problema, oppure si potrebbe anche dare all’utente la libertà di saltare completamente il controllo, il che risolverebbe anch’esso il problema.
Questo è già stato sollevato in precedenza, anche se netcat discourse-setup non riesce a trovarlo.
Il controllo genera solo un avviso, che sei libero di ignorare, quindi non lo considero un bug.
Ho considerato di far sì che discourse-setup installi nc, ma far installare a discourse-setup qualcosa che potrebbe non essere mai necessario mi sembra qualcosa da evitare.
Forse, se nc manca, la cosa da fare è saltare il test e suggerire che, se si desidera eseguire il test, si installi nc autonomamente, magari offrendo anche apt install nc.
Devo rispettosamente dissentire: qui sembra davvero materiale per un bug. Sì, stai stampando un messaggio di avviso che può essere ignorato, ma per chi installa Discourse per la prima volta, l’obiettivo è rendere il processo il più semplice possibile, il che significa non dover scavare nel codice sorgente per scoprire che è necessario installare netcat per far funzionare tutto senza errori. Qualsiasi errore confonderà l’utente o l’amministratore di sistema, costringendoli a perdere tempo per capire perché non funziona e a fare git blame sulla persona che l’ha scritto.
Questo può essere facilmente aggirato con un semplice controllo prima di eseguire il controllo IP, come segue:
Verifica se netcat è installato
Procedi se lo è
Se non lo è, stampa un messaggio di avviso e offri all’utente un’opzione sì/no per continuare senza il controllo o per interrompere in modo da poter installare netcat (o addirittura offrire di installarlo per loro tramite apt/yum/pacman).
Un’altra opzione che funzionerebbe su più sistemi (anche se non su tutti) rispetto a quanto avviene attualmente è utilizzare lo stack /dev/tcp. Maggiori informazioni su come farlo si trovano qui. Questo risolverebbe il problema su Debian e funziona anche su Ubuntu; non l’ho provato su altre distribuzioni.