A questo punto possiamo iniziare a compilare i moduli di perl che ci interessano.
Anche qui ci sono 2 strade possibili:
utilizzare il cpan, ossia utilizzare il servizio standard che perl offre
per l'installazione dei propri moduli
utilizzare un servizio già pacchettizzato (darwinports, fink etc.)
io ho adottato la prima soluzione.
Spieghiamo:
cpan è una utility che consente di installare i moduli di perl, essenzialmente
si connette ad un repository di moduli, prende la versione più aggiornata di
un modulo, la scarica, la compila e la installa.
Noi dobbiamo installare un po' di moduli.
Ad eventuali domande di pacchetti che richiedono dipendenze rispondiamo di sì,
oppure premiamo invio, su questi pacchetti non abbiamo bisogno di condizioni
speciali.
Nota su darwinports,fink e varie:
non ho scelto questo modo, perchè non sono sicuro che questi pacchetti si integrino
con il perl di sistema, anzi, spesso creano in /opt/local/ le proprie versioni
di perl, inoltre almeno un modulo necessita di compilazione manuale.
Andiamo quindi ad installare in questo modo:
- Apriamo Terminale
Se avete già utilizzato cpan, non dovrebbero esserci problemi, altrimenti il
sistema di cpan, potrebbe farvi alcune domande, rispondete alle domande che
vi vengono poste, per il setup iniziale.
digitiamo:
sudo cpan -i Compress::Zlib
se il pacchetto non dà errori, procediamo con
sudo cpan -i DBI
se il pacchetto non dà errori, procediamo con
sudo cpan -i Net::IP
se il pacchetto non dà errori, procediamo con
sudo cpan -i Apache::DBI
se il pacchetto non dà errori, procediamo con
sudo cpan -i XML::Simple
XML chiederà di installare anche XML::Namespaces, XML::Sax, XML::Sax-Expat,
XML::Parser
Bene, siamo a metà del lavoro.
Adesso arriva la parte difficile, sono 2 moduli un po' ostici, uno è SOAP::Lite,
mentre l'altro è DBD::Mysql
Iniziamo da SOAP::Lite
sudo cpan -i SOAP::Lite
Il sistema lavorerà per un po', se va tutto bene,meglio, è facile però che
il sistema si fermi sul make-test perchè trova alcune incongruenze.
Per risolvere la cosa, forziamo un po' il sistema.
Digitiamo
sudo su
inseriamo la nostra password **** Ora state lavorando come root quindi occhio a cosa fate ****
Ci spostiamo nella cartella /var/root/.cpan/build/
cd /var/root/.cpan/build/
cerchiamo una cartella che si chiamerà SOAP-Lite-x.xx ed entriamo
cd SOAP-Lite*
a questo punto diamo un
make
seguito da
make install
Non dovrebbero esserci errori, quindi digitiamo
exit
Fase 7: Installazione di DBD::mysql
Io a questo punto andrei a dormire.
Comunque vediamo l'ostacolo più duro, DBD::mysql
inseriamo la nostra password **** State lavorando come root quindi occhio a cosa fate ***
Ci spostiamo nella cartella /var/root/.cpan/build/
cd /var/root/.cpan/build/
ci copiamo dalla scrivania il file
cp /Users//Desktop/DBD-mysql-4.004.tar.gz .
a questo punto decomprimiamo
tar fxvz DBD-mysql-4.004.tar.gz
cerchiamo una cartella che si chiamerà DBD-mysql-x.xx ed entriamo
cd DBD-mysql*
capiamo cosa stiamo facendo: stiamo configurando a mano il pacchetto, andando
a specificare dove si trovano le librerie di mysql, che cpan cercherebbe da
altre parti.
Fase 8 : Possibili errori in fase di compilazione di DBD::mysql
nel dare make test, gli errori comuni sono 2:
make test non trova il socket di mysql
make test ha problemi di connessione al socket, per password di root pre-impostate
(allora mi state prendendo in giro e una installazione di mysql c'era già)
1) Soluzione a "non trova il socket di mysql" , errore Can't
connect to local MySQL server through socket '/tmp/mysql.sock'
Un po' incasinato da risolvere, per un sacco di problemi. Allora, io ho risolto
così.
Innanzitutto, il file di sock, è un file che utilizzano sia php che perl che
altri programmi per collegarsi all'istanza del database, quindi una sorta di
"device di database", il sock ci dice che il pacchetto sta funzionando ed è
attivo e possiamo connetterci a lui tramite questo file.
Dal 10.4 c'è un po' di casino sul "DOVE deve stare sto cavolo di mysql.sock"
?
Alcuni l'hanno sempre visto in /var/mysql/mysql.sock , altri sostengono che
debba stare in /tmp/mysql.sock
Io sono di derivazione *nix, quindi l'ho messo al suo posto ossia in /var/mysql/mysql.sock,
poi, per non saper nè leggere nè scrivere ho inserito un bel soft-link tra i
due.
C'è anche un articolo di Tevac su questo problema: http://www.tevac.com/article.php/2006012513085364
cd /etc/
sudo vi my.cnf
e inserisco in my.cnf
[mysqld]
socket=/var/mysql/mysql.sock
salvo ed esco.
A questo punto:
sudo mkdir /var/mysql/
chmod 755 /var/mysql/
a sto punto abbiamo detto a mysql, che il suo socket è in /var/mysql/. Questo
serve per OCS, però non possiamo scontentare nessuno in fatto di socket, quindi
andiamo nella cartella /tmp
R avviamo mysql, io utilizzo MySQL Administrator
cd /tmp
sudo ln -s /var/mysql/mysql.sock mysql.sock
2 ) Soluzione a "ha problemi di connesione"
make test vuole che ci sia un utente root senza password, grazie.
Quindi provvediamo a resettare temporaneamente la pwd di root su mysql, io uso
MySQL Administrator
Se il make test passa senza problemi potete dare un bel
make install
se il make non dovesse andare a buon fine, segnate l'errore e segnalatemelo.
se invece va tutto a buon fine dovremmo esserci, da adesso in poi la strada
è decisamente in discesa.