e380f26a |
1 | --- |
2 | title: wp_patcher – un metodo per aggiornare WordPress |
3 | author: Danilo M. |
4 | type: post |
5 | date: 2009-07-22T13:37:40+00:00 |
6 | excerpt: Ecco un metodo molto semplice per aggiornare la vostra installazione di WordPress, wp_patcher!! |
e380f26a |
7 | Sto ascoltando: |
8 | - smoke on the water |
9 | categories: |
10 | - diy |
11 | - linux |
12 | - WordPress |
13 | tags: |
14 | - bash |
15 | - svn |
16 | - update |
17 | - WordPress |
18 | |
19 | --- |
20 | Ciao a tutti, |
21 | |
22 | purtroppo si sa, l’estate è molto dannosa ai contenuti del mio blog, in questa stagione diventa difficile rimanere a casa a scrivere al pc, la tastiera del portatile si trasforma in una piastra su cui si potrebbe tranquillamente arrostire la carne per un picnic e starci vicino e come accendere il caminetto con 40 gradi di temperatura ambientale, praticamente un supplizio… |
23 | |
24 | <!--more--> |
25 | |
26 | Tuttavia gli sviluppatori di WordPress continuano alacremente a sfornare novità, ed è risaputo che bisogna aggiornare sempre la propria installazione di WP per non incorrere in spiacevoli inconvenienti come la perdita dei dati o l’hacking del proprio sito web. Per venire incontro ai blogger dalle ultime versioni di WP è possibile aggiornare automaticamente la propria installazione utilizzando una voce nel pannello di controllo. Questa possibilità, almeno per me, non ha funzionato nelle ultime 2 revisioni della versione 2.8, quindi ho deciso di provare un’altra strada :) |
27 | |
28 | chiacchierando su [slacky.eu][1], mi è stato suggerito di usare svn per recuperare le varie versioni di WP e poi di prendere solo le differenze in modo da andare a sostituire solo i files che effettivamente sono stati modificati. A questo punto mi son detto, perchè non scrivere uno script bash che mi chieda solo la mia versione attuale e quella verso cui voglio aggiornare, e poi mi crei un archivio contenente solo i files che mi servono?? |
29 | |
30 | Detto fatto, mi sono messo a giocare un po’ con Vim e ho tirato fuori **wp_patcher.sh**, uno script bash che scarica le 2 revisioni richieste di wordpress, controlla le differenze e crea un archivio tar.bz2 pronto per essere installato ;) |
31 | |
32 | Questo è lo script: |
33 | |
34 | <pre class="wp-block-preformatted language-bash"><code>#! /bin/bash |
35 | # WP-patcher - script che si occupa di recuperare le differenze |
36 | # tra 2 versioni differenti di WordPress, scaricando le revisioni |
37 | # tramite svn. |
38 | |
39 | # Autore: Danilo 'danix' Macrì - http://danixland.net |
40 | # Licensed under the statements of the GPL v3 - http://www.gnu.org/licenses/gpl-3.0.html |
41 | |
42 | # exit status |
43 | E_NOARGS=171 |
44 | |
45 | # variabili |
46 | workdir="wp_patch" |
47 | old_vrs=$1 |
48 | new_vrs=$2 |
49 | sane_old_vrs=`echo $1 |sed s/[.]//g` |
50 | sane_new_vrs=`echo $2 |sed s/[.]//g` |
51 | patchdir="${sane_old_vrs}_to_${sane_new_vrs}_patch" |
52 | |
53 | #funzione di aiuto (viene mostrata in caso di errore nell'avvio del programma) |
54 | showhelp () { |
55 | echo "USO: `basename $0` vecchia_versione nuova_versione" |
56 | echo "dove 'vecchia_versione' è la tua attuale versione di WordPress" |
57 | echo "e 'nuova_versione' è la versione verso cui vuoi upgradare" |
58 | exit $E_NOARGS |
59 | } |
60 | |
61 | # controllo che siano presenti gli argomenti in modo da avere |
62 | # le versioni di WP da scaricare |
63 | if [ -z $1 ];then |
64 | showhelp |
65 | elif [ -z $2 ];then |
66 | showhelp |
67 | fi |
68 | |
69 | # inizio l'esecuzione dei comandi |
70 | mkdir $workdir |
71 | cd $workdir |
72 | echo "sto recuperando le 2 versioni svn" |
73 | svn co http://core.svn.wordpress.org/tags/$old_vrs |
74 | echo "ho recuperato la versione $old_vrs" |
75 | svn co http://core.svn.wordpress.org/tags/$new_vrs |
76 | echo "ho recuperato la versione $new_vrs, adesso saranno esportate." |
77 | svn export $old_vrs wp_$sane_old_vrs |
78 | svn export $new_vrs wp_$sane_new_vrs |
79 | rm -rf $old_vrs $new_vrs |
80 | echo "ho esportato correttamente le 2 versioni di wordpress" |
81 | echo "adesso procedo alla creazione della patch" |
82 | diff -qr wp_$sane_old_vrs wp_$sane_new_vrs |cut -d" " -f4 > patch_file.txt |
83 | mkdir $patchdir |
84 | mods=`cat patch_file.txt` |
85 | for i in $mods;do |
86 | cp --parents $i $patchdir |
87 | done |
88 | echo "compressione in corso..." |
89 | cd $patchdir |
90 | mv wp_$sane_new_vrs wp_$new_vrs |
91 | tar -jcvf ../wp_${patchdir}.tar.bz2 wp_$new_vrs |
92 | cd ../ |
93 | mv wp_${patchdir}.tar.bz2 ../ |
94 | echo "patch creata" |
95 | echo "ripulisco la directory di lavoro" |
96 | cd ../ |
97 | rm -rf $workdir |
98 | echo "l'archivio contenente i files da sostituire" |
99 | echo "è il file 'wp_${patchdir}.tar.bz2" |
100 | # fine :) |
101 | exit 0</code></pre> |
102 | |
103 | E’ molto semplice e non dovrebbe essere difficile modificarlo secondo le vostre necessità… |
104 | |
105 | Lo script va salvato con un nome a vostro piacimento (io l’ho chiamato wp_patcher.sh) e poi va lanciato in questo modo: |
106 | |
107 | `wp_patcher.sh vecchia_versione nuova_versione` |
108 | |
109 | In una directory qualsiasi nella vostra home, ovviamente è consigliabile che lo lanciate in una directory vuota in modo da evitare conflitti con i files e le dir che il programma crea durante il suo funzionamento… |
110 | |
111 | Nell’esempio che vi ho riportato ‘vecchia\_versione’ sarà la vostra attuale versione di WordPress, e ‘nuova\_versione’ sarà la versione verso cui vorrete aggiornare. |
112 | |
113 | Perchè lo script funzioni è necessario che nel sistema sia installato svn, tar, e tutti i comandi di base come mv, cp, rm ecc… ma dubito che stiate utilizzando una qualsiasi distribuzione Linux e non abbiate questi programmi installati ;) . |
114 | |
115 | Una volta creato l’archivio con i files da aggiornare vi basterà decomprimerlo e caricare i files sul vostro spazio web sovrascrivendo quelli già presenti. Nel caso in cui fosse necessario un aggiornamento del database di WordPress vi basterà lanciare dal browser la pagina **http://urldelblog/wp-admin/upgrade.php**. |
116 | |
117 | <blockquote class="wp-block-quote alert"> |
118 | <p> |
119 | <strong><em>Come sempre vale il consiglio, prima di aggiornare WordPress, di effettuare un backup dei files e del database, in modo da poter ripristinare una situazione funzionante in caso di problemi.</em></strong> |
120 | </p> |
121 | </blockquote> |
122 | |
123 | Questo script come potete vedere è rilasciato sotto la GPL v3, quindi è liberamente utilizzabile e modificabile entro i termini di questa licenza appunto. |
124 | |
125 | Se vi dovesse tornare utile, o anche semplicemente se voleste dirmi che lo avete provato o che non ha funzionato o farmi i complimenti o mandarmi a cagare :) non fatevi problemi e lasciatemi un commento… |
126 | |
127 | A presto |
128 | |
129 | [1]: http://www.slacky.eu "La comunità italiana di utenti slackware" |