CPAN.pm
esto no es un problema.
Simplemente escriba perl -MCPAN -e shell
y responda al interrogatorio
para determinar la configuración que necesita.
En el caso de que la versión con la que trabajemos sea antigua
y no tengamos los privilegios de administrador
del sistema tendremos que trabajar un poco para usar el módulo
CPAN
:
1 home/casiano[23]> uname -a 2 Linux millo.etsii.ull.es 2.4.22-1.2188.nptl #1 \ Wed Apr 21 20:36:05 EDT 2004 i686 i686 i386 GNU/Linux 3 /home/casiano[5]> perl -MCPAN -e shell 4 Terminal does not support AddHistory. 5 6 Your configuration suggests "/root/.cpan" as your 7 CPAN.pm working directory. I could not create this directory due 8 to this error: mkdir /root/.cpan: Permiso denegado at \ /usr/local/lib/perl5/5.8.5/CPAN.pm line 553 9 10 11 Please make sure the directory exists and is writable. 12Lo primero que obtenemos es un fracaso: Obviamente no podemos modificar el fichero
/root/.cpan
.
Por tanto deberemos indicar que este no es el fichero de configuración:
13 /home/casiano[6]> mkdir .cpan 14 /home/casiano[7]> mkdir .cpan/CPAN 15 /home/casiano[9]> perl -MCPAN::Config -e 'print $INC{"CPAN/Config.pm"},"\n"' 16 /usr/local/lib/perl5/5.8.5/CPAN/Config.pmEn la línea 15 ejecutamos un guión interactivo (
-e
)
que carga el módulo CPAN::Config
(opción -M
) y
que hace uso del hash %INC .
17 /home/casiano[10]> cp /usr/local/lib/perl5/5.8.5/CPAN/Config.pm .cpan/CPAN/MyConfig.pm 18 /home/casiano[11]> cd .cpan/CPAN/ 19 /home/casiano/.cpan/CPAN[12]> perl -ne 'print if /(build_dir|keep_source_where)/' MyConfig.pm 20 'build_dir' => q[/root/.cpan/build], 21 'keep_source_where' => q[/root/.cpan/sources],La opción
-n
en la línea 19 envuelve en un bucle de
lectura el guión interactivo. Muestra las líneas del fichero que casan
con la expresión regular.
Ahora editamos el fichero y cambiamos las líneas que hacen alusión al
root
:
/home/casiano/.cpan/CPAN[13]> vi MyConfig.pmun poco después ...
23 /home/casiano/.cpan/CPAN[16]> perl -ne 'print if /(casiano)/' MyConfig.pm 24 'build_dir' => q[/scratch/casiano/build], 25 'cpan_home' => q[/scratch/casiano/.cpan], 26 'histfile' => q[/scratch/casiano/.cpan/histfile], 27 'keep_source_where' => q[/scratch/casiano/.cpan/sources],El comando nos muestra que líneas fueron cambiadas en la edición. Ahora estamos en condiciones de ejecutar
CPAN
, pero
tenemos que hacer aún algunos cambios en la configuración:
28 /home/casiano/.cpan/CPAN[19]> perl -MCPAN -e shell 29 Terminal does not support AddHistory. 30 31 cpan shell -- CPAN exploration and modules installation (v1.7601) 32 ReadLine support available (try 'install Bundle::CPAN') 33 cpan> o conf makepl_arg PREFIX=/scratch/casiano/perl 34 makepl_arg PREFIX=/scratch/casiano/perl 35 cpan> o conf commit 36 commit: wrote /home/casiano/.cpan/CPAN/MyConfig.pmEn las líneas 33 y 35 le hemos indicado a
CPAN
donde
debe dejar los módulos descargados. Deberemos asegurarnos
que los programas que usen esos módulos tengan dicho directorio en
su @INC
.
Ahora podemos instalar un módulo:
37 cpan> install Parse::Yapp 38 CPAN: Storable loaded ok 39 Going to read /scratch/casiano/.cpan/Metadata 40 .... 41 Appending installation info to /scratch/casiano/perl/lib/perl5/5.8.5/i686-linux/perllocal.pod 42 /usr/bin/make install -- OKVeamos la jerarquía creada por la instalacion de
Parse::Yapp
$ tree /scratch/casiano/perl/ /scratch/casiano/perl/ |-- bin | `-- yapp |-- lib | `-- perl5 | |-- 5.8.5 | | `-- i686-linux | | `-- perllocal.pod | `-- site_perl | `-- 5.8.5 | |-- Parse | | |-- Yapp | | | |-- Driver.pm | | | |-- Grammar.pm | | | |-- Lalr.pm | | | |-- Options.pm | | | |-- Output.pm | | | `-- Parse.pm | | `-- Yapp.pm | `-- i686-linux | `-- auto | `-- Parse | `-- Yapp `-- share `-- man |-- man1 | `-- yapp.1 `-- man3 `-- Parse::Yapp.3 17 directories, 11 filesAún mas secillo: use el módulo CPAN::FirstTime:
$ perl -MCPAN::FirstTime -e 'CPAN::FirstTime::init()' CPAN is the world-wide archive of perl resources. It consists of about 100 sites that all replicate the same contents all around the globe. Many countries have at least one CPAN site already. The resources found on CPAN are easily accessible with the CPAN.pm module. If you want to use CPAN.pm, you have to configure it properly. If you do not want to enter a dialog now, you can answer 'no' to this question and I'll try to autoconfigure. (Note: you can revisit this dialog anytime later by typing 'o conf init' at the cpan prompt.) Are you ready for manual configuration? [yes] yes The following questions are intended to help you with the configuration. The CPAN module needs a directory of its own to cache important index files and maybe keep a temporary mirror of CPAN files. This may be a site-wide directory or a personal directory. I see you already have a directory /root/.cpan Shall we use it as the general CPAN build and cache directory? CPAN build and cache directory? [/root/.cpan] .... # etc.
Casiano Rodríguez León