doc-base and `Can't locate PerlIO.pm in @INC ' during perl upgrade

Robert Luberda robert at debian.org
Sun Oct 26 14:18:12 UTC 2014


Hi,


Could you please look at the following doc-base error messages from
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758398#10 :

-- BEGIN --
Database error: Cannot read file `/var/lib/doc-base/info/status.yml':
Can't locate PerlIO.pm in @INC (you may need to install the PerlIO
module) (@INC contains: /etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.20.0 /usr/local/share/perl/5.20.0
/usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20
/usr/local/lib/site_perl .) at /usr/share/perl5/YAML/Tiny.pm line 187.
BEGIN failed--compilation aborted.


Database error: Cannot save file
`/var/lib/doc-base/info/status-new.yml': Can't locate PerlIO.pm in @INC
(you may need to install the PerlIO module) (@INC contains: /etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.20.0 /usr/local/share/perl/5.20.0
/usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20
/usr/local/lib/site_perl .) at /usr/share/perl5/YAML/Tiny.pm line 582.
BEGIN failed--compilation aborted.
.
dpkg: error processing package doc-base (--unpack):
 subprocess installed post-installation script returned error exit status 10
Errors were encountered while processing:
 doc-base
-- END --


doc-base's postinst script exports PERL_DL_NONLAZY=1, and install-docs
script has the following code to detect if perl is being upgraded during
the run:

   $fully_functional = eval {
                              require Debian::DocBase::InstallDocs;
                              import  Debian::DocBase::InstallDocs;
  # skip few require/imports, the following DB has explicit 'use YAML::Tiny'
                              require Debian::DocBase::DB;
                              import  Debian::DocBase::DB;
  # skip more require/import lines
                              1;
                        };
    if ($@) {
      # gettext is most probably not usable here.
      warn "The following error has occurred while loading doc-base
modules:\n\n".
         $@ ."\n".



However this didn't help in case of PerlIO.pm, because YAML::Tiny module
uses the module without any `use' statement. Could you please advise me,
how to deal with this?
BTW. Are there any other modules that might be used without prior
declaration with `use module;'?

Thanks,
robert



More information about the pkg-perl-maintainers mailing list