Newsgroup: it.comp.lang.perl
Titolo: Installare moduli perl con CPAN

Salve,
ho sempre installato moduli perl tramite ppm su windows e non ho mai
avuto problemi. Ora sono passato a linux (xubuntu) e stò provando ad
installare il modulo WWW::Mechanize ma non funziona. Questi sono i
comandi che ho usato (da root):
root@server:~/Desktop# perl -MCPAN -e shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')
cpan> install WWW::Mechanize
Running install for module WWW::Mechanize
Running make for P/PE/PETDANCE/WWW-Mechanize-1.32.tar.gz
CPAN: Digest::MD5 loaded ok
CPAN: Compress::Zlib loaded ok
Checksum for /root/.cpan/sources/authors/id/P/PE/PETDANCE/WWW-
Mechanize-1.32.tar.gz ok
Scanning cache /root/.cpan/build for sizes
Deleting from cache: /root/.cpan/build/Crypt-SSLeay-0.57 (11.0>10.0
MB)
Deleting from cache: /root/.cpan/build/YAML-0.66 (10.7>10.0 MB)
Deleting from cache: /root/.cpan/build/libwww-perl-5.808 (10.2>10.0
MB)
WWW-Mechanize-1.32/
WWW-Mechanize-1.32/perlcriticrc
WWW-Mechanize-1.32/lib/
WWW-Mechanize-1.32/lib/WWW/
WWW-Mechanize-1.32/lib/WWW/Mechanize/
WWW-Mechanize-1.32/lib/WWW/Mechanize/Image.pm
WWW-Mechanize-1.32/lib/WWW/Mechanize/Link.pm
WWW-Mechanize-1.32/lib/WWW/Mechanize/Examples.pod
WWW-Mechanize-1.32/lib/WWW/Mechanize/Cookbook.pod
WWW-Mechanize-1.32/lib/WWW/Mechanize/FAQ.pod
WWW-Mechanize-1.32/lib/WWW/Mechanize.pm
WWW-Mechanize-1.32/etc/
WWW-Mechanize-1.32/etc/www-mechanize-logo.png
WWW-Mechanize-1.32/bin/
WWW-Mechanize-1.32/bin/mech-dump
WWW-Mechanize-1.32/MANIFEST
WWW-Mechanize-1.32/Changes
WWW-Mechanize-1.32/META.yml
WWW-Mechanize-1.32/t/
WWW-Mechanize-1.32/t/find_link_id.t
WWW-Mechanize-1.32/t/upload.html
WWW-Mechanize-1.32/t/image-new.t
WWW-Mechanize-1.32/t/autocheck.t
WWW-Mechanize-1.32/t/upload.t
WWW-Mechanize-1.32/t/00-load.t
WWW-Mechanize-1.32/t/clone.t
WWW-Mechanize-1.32/t/image-parse.html
WWW-Mechanize-1.32/t/regex-error.t
WWW-Mechanize-1.32/t/pod-coverage.t
WWW-Mechanize-1.32/t/find_inputs.t
WWW-Mechanize-1.32/t/warnings.t
WWW-Mechanize-1.32/t/find_image.t
WWW-Mechanize-1.32/t/find_link.t
WWW-Mechanize-1.32/t/select.t
WWW-Mechanize-1.32/t/new.t
WWW-Mechanize-1.32/t/image-parse.t
WWW-Mechanize-1.32/t/save_content.t
WWW-Mechanize-1.32/t/link-relative.t
WWW-Mechanize-1.32/t/live/
WWW-Mechanize-1.32/t/live/computers4sure.t
WWW-Mechanize-1.32/t/live/wikipedia.t
WWW-Mechanize-1.32/t/field.html
WWW-Mechanize-1.32/t/link.t
WWW-Mechanize-1.32/t/find_link-warnings.t
WWW-Mechanize-1.32/t/tick.t
WWW-Mechanize-1.32/t/find_link.html
WWW-Mechanize-1.32/t/add_header.t
WWW-Mechanize-1.32/t/aliases.t
WWW-Mechanize-1.32/t/link-base.t
WWW-Mechanize-1.32/t/select.html
WWW-Mechanize-1.32/t/frames.html
WWW-Mechanize-1.32/t/google.html
WWW-Mechanize-1.32/t/pod.t
WWW-Mechanize-1.32/t/tick.html
WWW-Mechanize-1.32/t/find_link_id.html
WWW-Mechanize-1.32/t/field.t
WWW-Mechanize-1.32/t/taint.t
WWW-Mechanize-1.32/t/area_link.html
WWW-Mechanize-1.32/t/find_inputs.html
WWW-Mechanize-1.32/t/die.t
WWW-Mechanize-1.32/t/mech-dump/
WWW-Mechanize-1.32/t/mech-dump/mech-dump.t
WWW-Mechanize-1.32/t/frames.t
WWW-Mechanize-1.32/t/warn.t
WWW-Mechanize-1.32/t/local/
WWW-Mechanize-1.32/t/local/referer.t
WWW-Mechanize-1.32/t/local/submit.t
WWW-Mechanize-1.32/t/local/page_stack.t
WWW-Mechanize-1.32/t/local/form.t
WWW-Mechanize-1.32/t/local/click.t
WWW-Mechanize-1.32/t/local/log-server
WWW-Mechanize-1.32/t/local/get.t
WWW-Mechanize-1.32/t/local/follow.t
WWW-Mechanize-1.32/t/local/referer-server
WWW-Mechanize-1.32/t/local/overload.t
WWW-Mechanize-1.32/t/local/reload.t
WWW-Mechanize-1.32/t/local/failure.t
WWW-Mechanize-1.32/t/local/back.t
WWW-Mechanize-1.32/t/local/click_button.t
WWW-Mechanize-1.32/t/local/LocalServer.pm
WWW-Mechanize-1.32/t/area_link.t
WWW-Mechanize-1.32/t/form-parsing.t
WWW-Mechanize-1.32/Makefile.PL
Removing previously used /root/.cpan/build/WWW-Mechanize-1.32
CPAN.pm: Going to build P/PE/PETDANCE/WWW-Mechanize-1.32.tar.gz
WWW::Mechanize likes to have a lot of test modules for some of its
tests.
The following are modules that would be nice to have, but not
required.
Test::Memory::Cycle
Test::Warn
Test::Taint
Checking if your kit is complete...
Looks good
Writing Makefile for WWW::Mechanize
-- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
Dove sbaglio?

Manuel wrote:
 > Salve,
 > ho sempre installato moduli perl tramite ppm su windows e non ho mai
 > avuto problemi. Ora sono passato a linux (xubuntu) e stò provando ad
 > installare il modulo WWW::Mechanize ma non funziona.
 > [...]
 > Dove sbaglio?
Probabilmente ti manca il package (Debian/Ubuntu) build-essential.
Installalo con:
sudo apt-get install build-essential
e poi riprova con cpan (per entrare nella shell, basta eseguire il 
comando "cpan").
Detto tutto questo, per WWW::Mechanize c'è anche il package 
Debian/Ubuntu bell'e pronto, che s'installa senza alcun problema con:
sudo apt-get install libwww-mechanize-perl
(oppure da Synaptic se preferisci, come pure build-essential).
In generale considera che tutte o quasi le estensioni CPAN più popolari 
sono pacchettizzate per Debian/Ubuntu, quindi puoi installarle 
banalmente con apt-get/aptitude/Synaptic etc. senza doverti sporcare le 
mani con cpan.
In ogni caso build-essential installalo ugualmente (e magari prova pure 
a compilare qualche modulo da cpan), perché avere cpan funzionante è 
comunque utile, se un domani ti servisse un'estensione perl per cui non 
c'è il pacchetto Debian.
Ciao,
Emanuele.

 Emanuele.
Suggerirei anche di seguire il consiglio - letto non ricordo bene
dove, devo ammetterlo - di evitare di installare moduli Perl con cpan
sul perl di sistema, ma di limitarsi ai package disponibili. Le strade
consigliate per installare gli altri moduli sono sostanzialmente due:
1. compilare una propria versione di Perl ed utilizzare quella per i
propri progetti, lasciando quella "ufficiale" alle esigenze del
sistema;
2. utilizzare un "pacchettizzatore", di cui si parla in
http://www.debian-administration.org/articles/78
Ciao,
   Flavio.

polettix wrote:

Benché questi siano suggerimenti condivisibilmente conservativi, va pure 
precisato che su Debian i moduli installati "a manella" non vanno a 
sovrascrivere i package ufficiali, in quanto se ne vanno sotto 
/usr/local/lib e /usr/local/share (mentre quelli Debian se ne vanno 
rispettivamente sotto /usr/lib e /usr/share).
E' vero che i moduli installati localmente hanno la precedenza su quelli 
pacchettizzati, ma probabilmente è quello che l'utente vuole, e in ogni 
caso basta cancellarli brutalmente (o disinstallarli con cpanp) per 
riattivare i corrispettivi package Debian eventualmente "shadowed".
In sostanza Debian è concepita per ospitare anche moduli installati 
localmente sullo stesso perl di sistema:
http://www.debian.org/doc/packaging-manuals/perl-policy/
Ciao,
Emanuele.

 rispettivamente sotto /usr/lib e /usr/share).
Idem per la Fedora, i moduli installati con CPAN vanno in un posto mentre 
quelli installati tramite yum vanno in un altro.

Emanuele Zeppieri ha scritto:
[CUT]
 > In generale considera che tutte o quasi le estensioni CPAN più popolari
 > sono pacchettizzate per Debian/Ubuntu, quindi puoi installarle
 > banalmente con apt-get/aptitude/Synaptic etc. senza doverti sporcare le
 > mani con cpan.
Io ho lo stesso problema con una Ubuntu server 8.04 LTS a 64 bit, fresca 
fresca di installazione. Non riesco a installare nessun modulo se non 
via apt. Perché dici che usare cpan è "sporcarsi le mani"? io sono nuovo 
di Ubuntu, c'è una ragione particolare per cui dovrei preferire apt e 
evitare cpan? (a parte il fatto che apt mi funziona e cpan no   :)     )
 > In ogni caso build-essential installalo ugualmente (e magari prova pure
 > a compilare qualche modulo da cpan), perché avere cpan funzionante è
 > comunque utile, se un domani ti servisse un'estensione perl per cui non
 > c'è il pacchetto Debian.
è quello che ho tentato di fare, non funge	:(
grazie per l'aiuto

news ha scritto:

Ho trovato questo:
http://ubuntuforums.org/showthread.php?t=307663
"It looks like you might not have GNU Make installed.
Code:
sudo apt-get install build-essential
After installing this, you will need to configure the CPAN shell to find 
'make'.
You can either remove the ~/.cpan directory or run "o conf init" and 
then "o conf commit" from the CPAN shell to redo the configuration."
Che ne pensate?


Che è esattamente quello che ti avevo detto io 6 righe più su (e quasi 
un anno fa :-)

Emanuele Zeppieri ha scritto:

Mi mancava della configurazione del make, domani ci provo	:)

> Mi mancava della configurazione del make, domani ci provo    :)
Funge	:)