Da qualche tempo sto sviluppando e costruendo alcuni dispositivi per la domotica casalinga, nulla di particolarmente complicato o rivoluzionario, ma che mi semplificano la vita e che soprattutto tengono alto il
WAF.
Brevemente, esiste un bot di telegram che fa un po' da integratore per i vari dispositivi che ho in casa ed era un po' che iniziava a scocciarmi il dover deployare tutto a mano, così una sera ho aggiunto la parte che mancava per poter finalmente vantarmi di fare Continuous Deployment con la domotica di casa :-).
Quindi parto, prendo il mio bel raspberry PI 3, scarico l'ultima
iso disponibile, senza tanto guardare versioni o altro. Installo senza particolari problemi e inizio a scaricare l'agent di devops di microsoft confidente che tutto vada per il verso corretto.
Leggendo in giro sembra tutto abbastanza semplice ed infatti microsoft ha pensato anche a quelli che hanno raspberry con una bella compilazione già pronta dell'agent.
Scarico e faccio partire il suo bel config.sh direttamente dalla cartella di installazione e boom,
primo errore che recita un non ben definito errore "Not configured".
"Ok" dico, c'è google, ma nulla, alcuni consigliano di avviare installdependencies.sh che dovrebbe installare tutte le dipendenze.
"Fantastico", penso, avvio con grande fiducia, tutto bene per un po fino ad alcuni errori di dipendenze.
Ad esempio libicu57. Effettivamente per la versione di Debian che ho scaricato (la 10 denominata Buster) non esiste quella libreria.
Penso "{sostituire con bestemmie varie}" e poi googlo un po' arrivando a un sito che consiglia di installarla manualmente prendendola dalle distribuzioni precedenti (in questo caso
stretch).
"Fantastico" ripenso, installo, rifaccio andare e lo script termina senza errori
"Ci siamo" penso, avvio il config.sh presente nello zip che ho scaricato, ma aimè un bruttissimo "version `CURL_OPENSSL_3' not found (required by ./bin/System.Net.Http.Native.so)" mi blocca la strada.
La superficialità iniziale ora si paga e per la versione di debian 10 che ho usato c'è da fare un porkaround togliendo la libcurl4 e mettendo la libcurl3
A prima vista sembrava una di quelle soluzioni "sul pc è andato ma non so bene perchè", ma invece si rivela la carta vincente, faccio questo togli e rimetti e boom ora parte tutto magicamente
ed ora posso anch'io dire che faccio Continuous Deployment come quelli bravi