Sto scrivendo un programma in ambiente C su Linux (Debian-Lenny) e vorrei che il programma venisse aggiornato quando un aggiornamento è disponibile (il programma viene avvisato quando un è disponibile un nuovo aggiornamento). Sto cercando un modo in cui il programma può aggiornarsi.Linux C - implementazione della capacità che un programma può aggiornare da solo
Quello che sto pensando è che il programma principale invoca un nuovo programma per gestire l'aggiornamento. Il programma di aggiornamento avrà (accesso a) il codice sorgente e ricevere le informazioni di aggiornamento sulle modifiche sul codice sorgente, qualcosa di simile:
edit1: line 20, remove column 5 to 20;
edit2: line25, remove column 4-7 then add "if(x>3){" from the column4
edit3: line 26, enter a new line and insert "x++;"
poi uccidere il processo principale, ricompilare il codice sorgente, e quindi sostituire il nuovo binario con quello vecchio.
oppure esiste un modo migliore (più semplice) e standard per implementare la capacità che un programma può aggiornare da solo?
Uso il programma per controllare un sistema con una scheda incorporata Linux. Pertanto, non voglio che il codice sorgente sia accessibile a un'altra persona (se il sistema è compromesso o qualcosa del genere). Se il modo migliore per aggiornare un programma utilizzando il codice sorgente, come mi suggerisce di proteggere il codice sorgente? Se mi suggerisci di crittografare il codice sorgente, quale funzione (Linux C) può utilizzare il programma per crittografare e decrittografare il file sorgente?
Come controllare un aggiornamento su un server remoto? È un'opzione? – Jeff
potrebbe essere più semplice per aggiornare un tronco svn, git etc, quindi ricompilare il codice e fare il lavoro sporco con svn o git ecc. – hetepeperfan
Non sono sicuro che sto leggendo questo correttamente, ma se ti interessa il codice sorgente, dovresti compilare la nuova versione del programma su una scatola sicura, e semplicemente inviare il file binario (o lasciare che il client lo prelevi). – Will