Nella vita di ogni pinguino può capitare di incontrare un file DEB di un programma di terze parti che non si riesce ad installare perché manca qualche dipendenza o perché nella propria distro la suddetta dipendenza ha un altro nome in quanto variata.
In questi giorni mi è capitato di non riuscire ad installare TeamViewer 11.0.57095 su Ubuntu 16.10 perché mi veniva segnalata una dipendenza non soddisfatta e precisamente libpng12-0


Andando a controllare nel sistema mi sono accorto che la libreria libpng12-0 non è più presente nei repository di Ubuntu 16.10 in quanto è stata sostituita dalla versione libpng16-16
Mi sono posto dunque il problema di come fare a indicare a TeamViewer di usare la nuova versione anziché la vecchia.
Siccome a me serviva installare TeamViewer in quel momento e non potevo aspettare una nuova release di TeamViewer compatibile con Ubuntu 16.10 mi sono messo all'opera per fixare il problema.

La procedura è abbastanza semplice. Come prima cosa andiamo a creare una nuova cartella, io l'ho chiamata teamviewer_mod ma voi potete mettere il nome che preferite.
Una volta fatto andiamo ad estrarre il pacchetto DEB nella cartella appena creata.


All'interno della sotto cartella troveremo una sotto cartella chiamata DEBIAN che al suo interno contiene un file chiamato control
Apriamo il file control con un editor di testo e andiamo a cercare la dipendenza che vogliamo sostituire. Nel nostro caso dobbiamo sostituire libpng12-0


con libpng16-16



e salviamo il tutto.

Bene, ora non ci resta altro da fare che generare il nuovo file DEB che conterrà al suo interno le modifiche che abbiamo fatto.

Da terminale posizioniamoci nella directory che contiene la nostra cartella e diamo il comando

dpkg -b nomecartella

Nel mio caso sarà dunque

dpkg -b teamviewer_mod

e diamo invio. Verrà ora generato il nuovo file DEB. Potrebbe volerci un po', il tempo dipende dalla vostra macchina.


Una volta terminata la procedura troveremo nella directory dove stavamo operando il nuovo file DEB. Procediamo ora con l'installazione e verifichiamo se il tutto funziona correttamente