You are not logged in.

#1 2012-06-03 20:20:12

freaks
Member
Registered: 2010-11-10
Posts: 63

Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

hello
i have this error when i try to launch amavis

etc/rc.d/amavisd restart
:: Stopping amavisd daemon                                                                                                                                                 [FAIL] 
:: Starting amavisd daemon                                                                                                                                                 [BUSY] fetch_modules: error loading required module Unix/Syslog.pm:
  Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0 at /usr/lib/perl5/core_perl/DynaLoader.pm line 213.
  Compilation failed in require at /usr/sbin/amavisd line 202.
defined(@array) is deprecated at /usr/share/perl5/site_perl/Net/Server.pm line 211.
	(Maybe you should just omit the defined()?)
ERROR: MISSING REQUIRED BASIC MODULES:
  Unix::Syslog
BEGIN failed--compilation aborted at /usr/sbin/amavisd line 242.

i recompiled Unix::Syslog but no change
please help

thks

Offline

#2 2012-06-04 17:03:20

disarmer
Member
Registered: 2012-06-04
Posts: 4

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

seems perl was broken in latest update to perl 5.16, i get similar messages while trying to load some modules:

[disarmer@black ~]$ perl -e 'use Encode'
Perl API version v5.14.0 of Encode does not match v5.16.0 at /usr/share/perl5/core_perl/XSLoader.pm line 92.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

[disarmer@black ~]$ perl -e 'use IO'
IO object version 1.25_06 does not match bootstrap parameter 1.25 at /usr/lib/perl5/core_perl/DynaLoader.pm line 213.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

Offline

#3 2012-06-05 00:33:36

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

Also getting some perl errors per perl applications, even recompiling or updating applications do not fix.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#4 2012-06-05 04:15:28

juster
Forum Fellow
Registered: 2008-10-07
Posts: 195

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

The helpful error message lets you know that the module you are trying to load was built for perl 5.14. Since you now have perl 5.16 the module is no longer binary compatible with the perl runtime and cannot be loaded. This applies to all XS modules which bridge C and perl code together. You must rebuild/reinstall the complaining modules.

Here are some diagnoses.

freaks:
You didn't reinstall Unix::Syslog properly. Maybe the old version was installed with cpan and you installed the new packaged version, which is not being loaded. Modules installed with the cpan shell take precedence over packaged modules.

disarmer:
You have extra copies of Encode and IO modules installed. They are included with perl. Uninstall the unnecessary duplicates. The old IO.pm file is trying to load the newer (core) binary IO.so library. Maybe.

nomorewindows:
You have to reinstall the complaining modules the applications use.

A script to find paths of loaded modules:

[juster@artemis bin]$ cat pmpath
#!/usr/bin/env perl
$m = shift or die "usage: pmpath [module name]\n";
eval "require $m" or die "pmpath: bad module: $!\n";
$m =~ s{::}{/}g;
print $INC{"$m.pm"}, "\n";

All packaged modules from a foreign source, like the AUR, need to be rebuilt. Print out a list of them:

pacman -Qml | awk '/_perl\/auto\/.+\.so$/ { print $1 }' | uniq

Any perl XS modules installed with cpan need to be rebuilt. They are under /usr/lib/perl5/site_perl/auto. Look for .so files.

edit: shorten the awk

Last edited by juster (2012-06-05 04:23:33)

Offline

#5 2012-06-05 09:14:27

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

I'm not sure how to reinstall the modules:

Attempt to reload XML/Fast.pm aborted.
Compilation failed in require at /usr/share/perl5/core_perl/autouse.pm line 53, <FIN> line 1.

Never mind this line told me what I was thinking earlier: pacman -Qml | awk '/_perl\/auto\/.+\.so$/ { print $1 }' | uniq
perl-xml-fast has to be reinstalled with yaourt.

Last edited by nomorewindows (2012-06-05 09:18:36)


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#6 2012-06-05 14:27:28

disarmer
Member
Registered: 2012-06-04
Posts: 4

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

juster, you're a genius. i deleted /usr/lib/perl5 and installed perl again and it works!
thank you

Offline

#7 2012-06-05 20:53:39

juster
Forum Fellow
Registered: 2008-10-07
Posts: 195

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

disarmer wrote:

juster, you're a genius. i deleted /usr/lib/perl5 and installed perl again and it works!
thank you

If you had packages installed in /usr/lib/perl5/vendor_perl they will all have missing files now. Module packages (i.e. perl-*) install their files there. Better just to delete /usr/lib/perl5/site_perl/ if you need to delete something. /usr/lib/perl5/site_perl is where the cpan shell installs its architecture dependent modules.

Offline

#8 2012-06-05 21:05:25

disarmer
Member
Registered: 2012-06-04
Posts: 4

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

not a big problem, i reinstalled third-party modules.
thank you

Offline

#9 2012-06-06 12:30:09

freaks
Member
Registered: 2010-11-10
Posts: 63

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

hello i recompiled some perl packages but for perl-encodedetect, the compilation failed because " /usr/lib/perl5/site_perl/current/x86_64-linux-thread-multi" cannot be found

Offline

#10 2012-06-06 16:52:42

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

freaks wrote:

hello i recompiled some perl packages but for perl-encodedetect, the compilation failed because " /usr/lib/perl5/site_perl/current/x86_64-linux-thread-multi" cannot be found

Perl-encode-detect by itself only has a couple of repo dependencies, not sure why it requires this?


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#11 2012-06-06 17:11:23

juster
Forum Fellow
Registered: 2008-10-07
Posts: 195

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

I generated a new PKGBUILD for perl-encode-detect and uploaded it to the AUR. Try the new source package.

disarmer, you're welcome.

Offline

#12 2012-06-07 10:03:38

kotnik
Member
From: France
Registered: 2011-10-19
Posts: 34

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

juster wrote:

All packaged modules from a foreign source, like the AUR, need to be rebuilt. Print out a list of them:

pacman -Qml | awk '/_perl\/auto\/.+\.so$/ { print $1 }' | uniq

Any perl XS modules installed with cpan need to be rebuilt. They are under /usr/lib/perl5/site_perl/auto. Look for .so files.

Thanks! This fixed following error message for shutter from AUR (pasted here in case somebody searches for it):

$ shutter 
Perl API version v5.14.0 of Gtk2::Unique does not match v5.16.0 at /usr/lib/perl5/core_perl/DynaLoader.pm line 213.
Compilation failed in require at /usr/bin/shutter line 46.
BEGIN failed--compilation aborted at /usr/bin/shutter line 46.

Last edited by kotnik (2012-06-07 10:04:26)


It's all GNU to me.

Offline

#13 2015-08-30 20:26:20

chx
Member
Registered: 2011-05-28
Posts: 101

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

Note: some module packages are apparently in *-perl  . I resorted to deleting /usr/lib/perl5 and then reinstalled perl perl-* *-perl and all is fine, shutter works again.

Offline

#14 2015-08-30 20:38:27

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: Perl API version v5.14.0 of Unix::Syslog does not match v5.16.0

Thread is three years old: please don't necrobump https://wiki.archlinux.org/index.php/Fo … bumping.22


Closing


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

Board footer

Powered by FluxBB