New amavis Install

Phil Daws uxbod at splatnix.net
Fri Aug 9 17:12:23 CEST 2013


Hello, 

Have setup a new amavis-new 2.8.1 installation and seeing this error in the maillog:

Aug  9 10:10:00 mx2 amavis[8854]: (08854-01) (!)_DIE: Socket version 1.95 required--this is only version 1.82 at /usr/local/share/perl5/IO/Socket/SSL.pm line 71.
Aug  9 10:10:00 mx2 amavis[8854]: (08854-01) (!)_DIE: Can't locate IO/Socket/IP.pm in @INC (@INC contains: lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/local/share/perl5/IO/Socket/SSL.pm line 85.

What is baffling me is that I performed a near identical installation on another server and that does not exhibit the same issue.  Here are the perl Socket modules from the new server:

[root at mx2 ~]# rpm -qa | grep -i socket
perl-IO-Socket-SSL-1.31-2.el6.noarch
perl-IO-Socket-INET6-2.56-4.el6.noarch
perl-Socket6-0.23-3.el6.x86_64

and here from the server that is fine:

[root at mx1 /]# rpm -qa | grep -i socket
perl-IO-Socket-INET6-2.56-4.el6.noarch
perl-IO-Socket-SSL-1.31-2.el6.noarch
perl-Socket6-0.23-3.el6.x86_64

I checked the code block in SSL.pl and if I extract it and run the following it works fine.

########################################################################################
#!/usr/bin/perl

my $ip6 = eval {
            require Socket;
            Socket->VERSION(1.95);
            Socket->import( 'inet_pton' );
            1;
        } || eval {
            require Socket6;
            Socket6->import( 'inet_pton' );
            1;
        };

        # try IO::Socket::IP or IO::Socket::INET6 for IPv6 support
        if ( $ip6 ) {

            # if we have IO::Socket::IP >= 0.11 we will use this in preference
            # because it can handle both IPv4 and IPv6
            if ( eval { require IO::Socket::IP; IO::Socket::IP->VERSION(0.11); } ) {
                    @ISA = qw(IO::Socket::IP);
                    constant->import( CAN_IPV6 => "IO::Socket::IP" );

            # if we have IO::Socket::INET6 we will use this not IO::Socket::INET
            # because it can handle both IPv4 and IPv6
            } elsif( eval { require IO::Socket::INET6; } ) {
                    @ISA = qw(IO::Socket::INET6);
                    constant->import( CAN_IPV6 => "IO::Socket::INET6" );
            } else {
                    $ip6 = 0;
            }
        }

        # fall back to IO::Socket::INET for IPv4 only
        if ( ! $ip6 ) {
                @ISA = qw(IO::Socket::INET);
                constant->import( CAN_IPV6 => '' );
        }
########################################################################################

Any thoughts on what could be the issue please ?

Thanks.


More information about the amavis-users mailing list