venerdì 28 dicembre 2007

Joomla: impossibile trovare file setup XML

Colgo l'occasione di una richiesta di aiuto ricevuta da un lettore per spendere qualche parola su un problema che, a quanto pare, mette spesso in difficoltà utenti inesperti di Joomla: il messaggio di errore "Impossibile trovare un file setup XML nel pacchetto" che si riceve talvolta quando si tenta di installare un componente, modulo o plugin.

Diciamo subito che la cosa che crea maggior confusione è che messaggi di errore molto simili sono generati da Joomla in presenza di condizioni di errore diverse.

Andiamo con ordine.

File xml di installazione

I componenti (e lo stesso vale per moduli, plugin e template) Joomla includono un file xml che contiene tutte le informazioni necessarie all'installazione: nomi e cartelle di destinazione dei vari file, eventuali query sql che devono essere eseguite quando il componente viene installato o disinstallato ed altro che, per quello che interessa qui adesso, non è necessario esaminare in dettaglio.

E' chiaro che la presenza di questo file xml è essenziale perché Joomla possa portare a termine correttamente la procedura di installazione.

Cause dell'errore

Nonostante queste premesse e nonostante il tenore letterale del messaggio, la mancanza del file xml di installazione non è quasi mai la causa del messaggio di errore di cui stiamo parlando.

1) File xml in pacchetti all'interno di un pacchetto principale

Molto più frequentemente il file in questione esiste, solo non si trova dove Joomla si aspetta di trovarlo: nella radice del pacchetto (zip) di installazione del componente.

Spesso infatti capita che un componente sia distribuito insieme a moduli o plugin 'di contorno' e che lo sviluppatore crei, per semplicità di distribuzione, un unico archivio compresso contenente al suo interno i pacchetti di installazione del componente e dei relativi moduli e plugin. Sono questi pacchetti interni che contengono ognuno il proprio file xml di installazione.

Quindi se si tenta di installare il pacchetto principale (chiamiamolo così) ecco l'errore "Impossibile trovare un file setup XML nel pacchetto". Quello che si deve fare è estrarre dal file zip principale i pacchetti di installazione del componente, dei moduli e plugin ed installarli tutti uno per uno.

Di solito questa procedura è riportata in un file di istruzioni nel pacchetto, ma si sa che nessuno legge mai queste cose.

2) Errore di sintassi nel file xml

Una situazione particolare si verifica quando il file di xml di installazione è sì presente, ma contiene un errore di sintassi, per esempio un tag aperto e non chiuso. Praticamente solo coloro che sviluppano propri componenti possono trovarsi in questa situazione, se si utilizzano componenti sviluppati da altri si presume che questi siano stati testati almeno quanto basta per scoprire un problema che ne impedisce del tutto l'installazione.

Il messaggio di errore in questo caso è

Impossibile trovare un file setup Joomla! XML nel pacchetto

Come si vede è del tutto simile a quello visto per il caso precedente. Personalmente non ho mai fatto caso alla differenza finché non ho controllato il sorgente del componente installer.

Ho riportato i messaggi così come sono nella versione italiana di Joomla, ma non è assolutamente un problema di traduzione. La stessa somiglianza è presente anche nel testo in inglese.

Va detto che sarebbe stato opportuno differenziare meglio il messaggio di errore previsto per questo caso. Prima di capire che un errore di sintassi nel file xml e la mancanza dello stesso generano praticamente lo stesso messaggio di errore, si rischia di perdere un sacco di tempo (parlo per esperienza personale). Tant'è, questa è la situazione ed è bene esserne a conoscenza.

3) Incompatibilità tra componente e versione di Joomla

Con la diffusione della versione 1.5 di Joomla si è creata un'altra possibilità di errore: tentare di installare sulla versione 1.0 un componente scritto per Joomla 1.5.

Il messaggio è sempre

Impossibile trovare un file setup Joomla! XML nel pacchetto

L'ambiguità è anche in questo caso fonte di confusione. La prima cosa che si fa di fronte ad un messaggio di questo genere è aprire il pacchetto e vedendo che il file xml è presente non ci si rende conto della ragione dell'errore.

A parte controllare un eventuale file di istruzioni nel pacchetto, si può scoprire per quale versione di Joomla è stato creato il componente aprendo il file xml e controllandone le prime righe

Un file xml per Joomla 1.0 contiene alla seconda riga

<mosinstall type="component" version="1.0.0">

Un file xml per Joomla 1.5 contiene alla terza riga

<install type="component" version="1.5.0">

Fortunatamente nella situazione inversa, quando cioè si tenta di installare un componente creato per la versione 1.0 sulla versione 1.5 di Joomla, il messaggio è molto più specifico: si viene avvisati che il componente è incompatibile con la versione in uso di Joomla e viene suggerita l'attivazione del Legacy Mode per risolvere il problema.

Spero di aver fatto un po' di luce su un problema che, secondo la mia esperienza, crea spesso qualche imbarazzo agli utenti (specialmente i meno esperti) di Joomla. L'intenzione almeno era questa. Alla prossima.

2 commenti:

Anonimo ha detto...

Ho seguito le tue istruzioni, molto chiare e valide, ma il problema è rimasto.
Per essere precisi l'installazione dei componenti mi funziona in locale, ma non via web.

Massimo ha detto...

Purtroppo questo errore può avere altre cause oltre quelle indicate nell'articolo.

Se ti funziona in locale, ma non sul web prova a controllare se sei su un host con Safe Mode On.

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.