Las opciones INSTALL_BASE y -install_base

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:

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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19