Skip to main content

Come applicare una patch a un file usando Linux

Mettere in pausa il computer con RSIbreak su Linux (Aprile 2025)

Mettere in pausa il computer con RSIbreak su Linux (Aprile 2025)
Anonim

Questa guida fornisce una panoramica di base per l'applicazione di una patch a un programma o file.

Il comando utilizzato per applicare le patch è il comando patch ma per applicare una patch è necessario utilizzare anche il comando diff per fornire le differenze che devono essere corrette.

Perché dovresti creare una patch

Immagina di avere un file HTML come segue:

Il mio sito

Benvenuto in MySite

La sorgente di cui sopra, quando caricata in un browser web, mostrerà le parole "Welcome to MySite".

È comune quando si pianifica la presenza di più versioni dello stesso file. Ad esempio, ci sarebbe una versione che è la versione live corrente, ci sarebbe un'altra versione sul ramo di sviluppo che potrebbe contenere più modifiche, infine, potrebbe esserci un'altra versione su un ramo di rilascio.

Il ramo di rilascio sarebbe la versione utilizzata dagli utenti reali (vale a dire in questo caso i visitatori del sito Web MySite). Diciamo che MySite è alla versione 1.0. Dopo una fase di sviluppo, creerai un ramo di rilascio che sarebbe in questo caso 1.1. Il ramo di sviluppo sarà prima del ramo di rilascio perché potrebbe contenere modifiche che non sono previste per il rilascio nella versione 1,2 ma saranno per la versione 1.1.

Immagina che ci sia un bug per cui MySite dovrebbe essere chiamato YourSite. È possibile accedere a ciascun ramo a turno e apportare modifiche alla versione live, alla versione di sviluppo e alla versione di rilascio di si potrebbe apportare la modifica come aggiornamento rapido in live e quindi applicare la patch ai rami di sviluppo e rilascio.

Un esempio funzionante

Crea un file chiamato myfile.html con il seguente codice in esso:

Il mio sito

Benvenuto in MySite

Questo è un esempio funzionante di patch del codice sorgente.

Crea un altro file chiamato myfile_v2.html con il seguente codice in esso:

Il tuo sito

Benvenuto in YourSite

Questo è un esempio funzionante di patch del codice sorgente.

Il primo file è la pagina Web originale con l'intestazione "Welcome to MySite". Il secondo file è uguale al primo, tranne che MyFile viene rinominato in YourFile nel testo.

Come creare il file diff

Per creare una patch, dobbiamo elaborare le differenze tra myfile.html e myfile_v2.html.

Possiamo farlo con il comando diff come segue:

diff -u myfile.html myfile_v2.html> myfile.patch

Puoi aprire il file myfile.patch nell'editor nano come segue per visualizzarlo:

nano myfile.patch

Le linee che sono invariate sono mostrate in blu. Le linee che sono state rimosse sono mostrate in rosso e le linee che sono state aggiunte sono mostrate in verde.

Come applicare la patch usando il comando Patch

Per applicare la patch a myfile.html utilizzare il seguente comando:

patch <myfile.patch

Come ripristinare una patch

Questo applicherà le modifiche create usando il comando diff al file originale myfile.html.

Se si desidera ripristinare la patch in modo che myfile.html ritorni allo stato originario, utilizzare il seguente comando:

patch -R <myfile.patch

Sommario

Il comando patch può essere utilizzato per applicare patch su un'intera struttura di directory.

Ci sono strumenti molto migliori del comando patch per creare patch e assicurare un buon controllo del codice sorgente.

C'è una ragione per cui così tanti progetti di sviluppo usano GIT per il controllo del codice sorgente. GIT semplifica la creazione di una strategia di ramificazione coerente.

Il comando patch è ok per applicare le differenze a uno script bash o qualcosa di semplice, ma si potrebbe facilmente creare una copia di backup dei file che si desidera patch e semplicemente copiare i nuovi file nello stesso posto.

Per maggiori informazioni usa il comando man:

patch uomo