In linea di massima, l’installazione di pacchetti in R è un processo semplice e veloce. In alcuni casi però la procedura di default non va a buon fine: questo può dipendere da diversi fattori, ma normalmente la causa di questo fallimento è una incompatibilità tra pacchetti installati (soprattutto per ambienti Linux).
Per chi ancora non conoscesse R, la pagina di wikipedia spiega molto bene vita-morte-miracoli di questa tecnologia.
Nel caso l’installazione del pacchetto XML dovesse fallire, la prima cosa da fare è verificare quali pacchetti libxml2 sono presenti nella nostra installazione Linux (gli esempi di basano su un ambiente Ubuntu), lanciando il comando:
sudo dpkg -l | grep libxml2
dobbiamo essere sicuri che ci sia una sola versione della libreria, altrimenti rischiamo di non riuscire a concludere l’installazione. Se ad esempio abbiamo installato sul nostro PC una qualche versione di Python, potrebbero esserci diverse versioni di libxml2: in tal caso dobbiamo eliminare tutto quello che non è l’installazione di base per un sistema Linux. Nella pratica, l’output del comando di cui sopra deve essere qualcosa di simile:
libxml2:i386 2.9.1+dfsg1-3ubuntu2.3
libxml2-dev:i386 2.9.1+dfsg1-3ubuntu2.3
libxml2-doc 2.9.1+dfsg1-3ubuntu2.3
libxml2-utils 2.9.1+dfsg1-3ubuntu2.3
Solitamente la situazione sopra descritta è la situazione per un’installazione di base. A volte non viene installato il pacchetto libxml2-dev, pertanto è necessario installarlo a mano:
sudo apt-get install libxml2-devel
A questo punto, e qui sta il trucco principale rispetto alle installazioni di pacchetti R “normali”, è necessario entrare in R come super-utente:
sudo R
e installare il pacchetto in R con la solita procedura:
install.packages("XML", lib="/usr/include/libxml2/libxml")
Riassumento, se l’installazione del pacchetto XML in R fallisce, dobbiamo verificare due cose:
- La versione del pacchetto libxml2 installato sul nostro sistema e se vi sono versioni differenti in conflitto tra loro
- Provare ad installare il pacchetto in R come super-utente