La opción INSTALL_BASE pasada a makefile.PL
permite especificar en que lugar quedarán instalados los módulos.
Esta opción es preferible a PREFIX
pues es mas fácil predecir
donde acabaran los módulos.
Al igual que PREFIX permite establecer varios atributos INSTALL*
de una sola tacada. El patrón de instalación resultante sigue este
esquema:
INSTALLARCHLIB INSTALL_BASE/lib/perl5/$Config{archname} INSTALLPRIVLIB INSTALL_BASE/lib/perl5 INSTALLBIN INSTALL_BASE/bin INSTALLSCRIPT INSTALL_BASE/bin INSTALLMAN1DIR INSTALL_BASE/man/man1 INSTALLMAN3DIR INSTALL_BASE/man/man3
Observe la instalación de un módulo después de haber establecido
INSTALL_BASE
:
cpan[3]> install GRID::Machine CPAN: Storable loaded ok (v2.15) Going to read /home/pp2/.cpan/Metadata Database was generated on Sun, 18 May 2008 05:29:48 GMT CPAN: YAML loaded ok (v0.66) Going to read /home/pp2/.cpan/build/ ............................................................................ CPAN.pm: Going to build C/CA/CASIANO/GRID-Machine-0.091.tar.gz Checking if your kit is complete... Looks good Writing Makefile for GRID::Machine ............................................................................ CASIANO/GRID-Machine-0.091.tar.gz /usr/bin/make -- OK Running make test ............................................................................ /usr/bin/make test -- OK Running make install Installing /home/pp2/personalmodules/lib/perl5/GRID/Machine.pm Installing /home/pp2/personalmodules/lib/perl5/GRID/Machine.pod ............................................................................ Installing /home/pp2/personalmodules/man/man1/remotetest.pl.1p Installing /home/pp2/personalmodules/man/man3/GRID::Machine::Result.3pm Installing /home/pp2/personalmodules/man/man3/GRID::Machine.3pm ............................................................................ Installing /home/pp2/personalmodules/bin/remotetest.pl Writing /home/pp2/personalmodules/lib/perl5/i486-linux-gnu-thread-multi/auto/GRID/Machine/.packlist Appending installation info to /home/pp2/personalmodules/lib/perl5/i486-linux-gnu-thread-multi/perllocal.pod CASIANO/GRID-Machine-0.091.tar.gz /usr/bin/make install -- OK cpan[4]>Vemos que los módulos (p.ej.
GRID::Machine
) fueron instalados en /home/pp2/personalmodules/lib/perl5/
,
los manuales en /home/pp2/personalmodules/man/
y los guiones en /home/pp2/personalmodules/bin/
.
Para tener operativo nuestro repositorio tendremos que añadir estos caminos a las correspondientes
variables de entorno. Lo aconsejable es incluir estos comandos en .bashrc
o en.cshrc
,
según sea nuestra shell, para que se ejecute cada vez que creamos una nueva shell:
PATH
bash
:
$ ps PID TTY TIME CMD 12174 pts/21 00:00:00 bash 21386 pts/21 00:00:00 ps $ export PATH=$PATH:/home/pp2/personalmodules/bin/ $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/mpich-1.2.5/ch_p4/bin: /usr/local/j2sdk1.4.2_04/bin:.:/home/pp2/bin/:/usr/local/cc/bin:.:/home/pp2/bin/: /home/pp2/personalmodules/bin/ $ which remotetest.pl /home/pp2/personalmodules/bin//remotetest.pl
PERL5LIB
Para que los módulos instalados y la documentación .pod
puedan ser encontrados
por Perl añadimos:
$ export PERL5LIB=/home/pp2/personalmodules/lib/perl5:$PERL5LIB $ perldoc -l GRID::Machine
MANPATH
para que man
encuentre las páginas de los manuales asociados
con los módulos deberemos establecer la variable de entorno MANPATH
:
$ export MANPATH=/home/pp2/personalmodules/man/:$MANPATH $ manpath manpath: aviso: la variable $MANPATH está asignada, insertando /etc/manpath.config. /home/pp2/personalmodules/man/:/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/local/mpich-1.2.5/ch_p4/man:/usr/local/j2sdk1.4.2_04/man:/usr/local/cc/man:/usr/local/cc/man $ man GRID::Machine Dando formato a GRID::Machine(3pm); aguarde, por favor...
La opción install_base juega un papel similar para el módulo alternativo a ExtUtils::MakeMaker mas usado: Module::Build.
Casiano Rodríguez León