YaST says a Perl module is installed, but no

How do I fix a missing Perl module that YaST tells me is installed (but it is not)?

I have a pretty fresh install of SLED 11 SP 4, and don’t have an older date handling module I used to use. That’s OK, I’ll use something else. I see in my list of installed modules, YaST tells me I have the module Date::Manip (version 5.54-2.21 by Sullivan Beck)

When I try to use it though, Perl gives me the error “Can’t locate Date/Manip/Date.pm” and all the paths it searched. Indeed, find / -mount -name Date.pm does not show the module installed where the YaST File List says it ought to be.

Is this something I can fix?

Yast is just querying the rpm database, so you should be able to find what
it is seeing via the rpm or zypper commands, and then you can query what
those packages provide directly. For example, if the package is named
perl-date-manip:

rpm -q -l perl-date-manip


Good luck.

If you find this post helpful and are logged into the web interface,
show your appreciation and click on the star below…

Thank you for the speedy reply. Looks like I have an environment problem.

rpm -qa | grep -i date does show me that a package is installed, named “perl-Date-Manip-5.54-2.21”. Running rpm -q -l perl-Date-Manip-5.54-2.21 shows me a list of files, one of which is:

/usr/lib/perl5/vendor_perl/5.10.0/Date/Manip.pm

Indeed, that file is there.

I’m a little bit confused still, as /usr/lib/perl5/vendor_perl/5.10.0 is in the search path, so I thought that Date/Manip underneath it would be found.

But thank you for pointing me in a good direction.

DavidGerisch Wrote in message:
[color=blue]

How do I fix a missing Perl module that YaST tells me is installed (but
it is not)?

I have a pretty fresh install of SLED 11 SP 4, and don’t have an older
date handling module I used to use. That’s OK, I’ll use something else.
I see in my list of installed modules, YaST tells me I have the module
Date::Manip (version 5.54-2.21 by Sullivan Beck)

When I try to use it though, Perl gives me the error “Can’t locate
Date/Manip/Date.pm” and all the paths it searched. Indeed, find /
-mount -name Date.pm does not show the module installed where the YaST
File List says it ought to be.

Is this something I can fix?[/color]

Yes it should be fixable. Checking the perl-Date-Manip package on
a test server I can see that Manip.pm (not Date.pm) gets
installed to /usr/lib/perl5/vendor_perl/5.10.0/Date/

I found my mistake. Wholly my fault - I was reading examples from version 6 of the module, which don’t work with version 5. So when I saw a “missing” error, I added something I shouldn’t have, which then made Perl look for something that wasn’t there.

On 10/08/2015 23:54, DavidGerisch wrote:
[color=blue]

I found my mistake. Wholly my fault - I was reading examples from
version 6 of the module, which don’t work with version 5. So when I saw
a “missing” error, I added something I shouldn’t have, which then made
Perl look for something that wasn’t there.[/color]

Glad to hear you’ve figured it out and thanks for reporting back.

Simon
SUSE Knowledge Partner


If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below. Thanks.