Languages and Scripting
Showing results for 
Search instead for 
Did you mean: 

perl : instmodsh : update inventory for installed Perl modules

Valued Contributor

perl : instmodsh : update inventory for installed Perl modules



- with instmodsh command i find out what modules are already installed on my system.


- we have following system

    - at a one server ( i named it software depot server ) we install a perl modul to a different directory (INSTALLDIRS="vendor").

   - then we use swpackage to create a software depot with the files of the perl modul.

   - finally we install a perl modul with "swinstall"


this system works well and the perl modul works well after installation with "swinstall" .

but now i find out, i can't see the perl modul with "instmodsh"
when i install it interactive with "perl Makefile.PL" and "make install", i can see it with "instmodsh".


Example of Output of "make install" :

Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Writing /opt/perl_32/lib/vendor_perl/5.8.8/IA64.ARCHREV_0-thread-multi/auto/Filesys/Df/.packlist
Appending installation info to /opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi/perllocal.pod


so i think, i have to start a command  to update the inventory for installed Perl modules ?

i think , it is in the created "Makefile" ?



Valued Contributor

Re: perl : instmodsh : update inventory for installed Perl modules

i solved my problem:


first part is to  show installation config:


perl -we'use Config; use Data::Dumper; print Dumper \%Config;'


here my solution:

make -n "DESTDIR=<destdir>" install


shows, what would be done in DESTDIR=<destdir>

after installation with swinstall i do following steps:

- search for Variable SITEARCHEXP in File "Makefile"

in Makefile is the Packlist defined like :


Example: SITEARCHEXP = /opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi
FULLEXT = <Module>::<Mod1>

After deleting of  Original Packlist , i do following programm section:.

/usr/bin/perl -MExtUtils::Install -e 'install({@ARGV}, '\''0'\'', 0, '\''0'\'');' \
read /opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi/auto/<Module>/<Mod1>/.packlist \
write <destdir>/opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi/auto/<Module>/<Mod1>/.packlist \
blib/lib <destdir>/opt/perl_32/lib/site_perl/5.8.8 \
blib/arch <destdir>/opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi \
blib/bin <destdir>/opt/perl_32/bin \
blib/script <destdir>/opt/perl_32/bin \
blib/man1 <destdir>/opt/perl_32/man/man1 \
blib/man3 <destdir>/opt/perl_32/man/man3

/usr/bin/perl "-MExtUtils::Command::MM" -e warn_if_old_packlist \

echo Appending installation info to <destdir>/opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi/perllocal.pod
/usr/bin/perl "-MExtUtils::Command" -e mkpath <destdir>/opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi
/usr/bin/perl "-MExtUtils::Command::MM" -e perllocal_install \
"Module" "<Module>::<Mod1>" \
"installed into" "/opt/perl_32/lib/site_perl/5.8.8" \
LINKTYPE "dynamic" \
VERSION "0.92" \
>> <destdir>/opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi/perllocal.pod


The Perl Module Manager  shows the modules like /usr/bin/perlmod -l