chinna has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks, I have installed many perl modules in Linux. Now i have to install in IBM AIX machine. Will be there any difference for installing in AIX. -Chinna

Replies are listed 'Best First'.
Re: Module Installation for AIX
by g0n (Priest) on Nov 08, 2005 at 12:05 UTC
    In a word, no.

    More precisely, it depends on what modules you're installing. Certain modules using XS require the same C compiler as your perl was built on. The version of perl shipped with AIX is compiled using the IBM C compiler, and which version is anyones guess. You could run into compilation problems there, and the errors the install process generates won't necessarily make the reason explicit.

    If you install a module, and you get errors about 'missing symbols', the chances are good that you've got exactly this problem.

    --------------------------------------------------------------

    "If there is such a phenomenon as absolute evil, it consists in treating another human being as a thing."

    John Brunner, "The Shockwave Rider".

Re: Module Installation for AIX
by tweetiepooh (Hermit) on Nov 08, 2005 at 14:41 UTC
    I've found it easier to build my own perl, installing it away from the default O/S supplied version.

    Then modules that do require compiling will be compiled in the same/similar environment to the interpreter and are more likely to work.

    One stable, I'd test the new perl against existing scripts and if OK arrange a link or some other mechanism to make that the dafault.

    Of course there may be local issues with installing the software required to build and installing a non "standard" version of perl but that sort of political issue is your problem.
Re: Module Installation for AIX
by jesuashok (Curate) on Nov 08, 2005 at 12:20 UTC
    Hi,

    The module will take care all the the dependencies. :-)

    "Keep pouring your ideas"
          The module will take care all the the dependencies. :-)

      As a point of fact jesuashok, chinna raises a valid question. As g0n points out the answer is "it depends." I have personally lived with the frustration of getting things to port to AIX when there are compiler mismatches between libraries I'm dependant on and the compiler I am using to port with.

      If you're the schlub that has maintained the machine and know the history you're in luck. Some of us though inherit machines that have passed many through many hands and have had all sorts of sins committed on them.

      So chinna, I feel for you. You'll have to do some homework and find out some things about the system you are installing the modules on. If you do a perl -V on the target system it will yield some very useful information. I don't have access to an AIX box at the moment but here is what it looks like on a Linux box:

      [pberghol@cowdawg pberghol]$ perl -V Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=linux, osvers=2.4.22-1.2149.nptlsmp, archname=i686-linux uname='linux cowdawg 2.4.22-1.2149.nptlsmp #1 smp wed jan 7 12:51: +51 est 2004 i686 i686 i386 gnulinux ' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/includ +e -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2', cppflags='-fno-strict-aliasing -pipe -I/usr/local/include -I/usr/i +nclude/gdbm' ccversion='', gccversion='3.3.2 20031022 (Red Hat Linux 3.3.2-1)', + gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl. +a gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under linux Compiled at Jan 11 2005 11:44:30 @INC: /usr/lib/perl5/5.8.6/i686-linux /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i686-linux /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl .

      Note the inclusion of not only the compiler and its version, but there is useful information about the libraries linked in, the options used to build Perl and other useful info.

      HTH


      Peter L. Berghold -- Unix Professional
      Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
        Here's what i get on a 5.2 AIX machine :
        $ perl -V Summary of my perl5 (revision 5.0 version 8 subversion 0) configuratio +n: Platform: osname=aix, osvers=5.2.0.0, archname=aix-thread-multi uname='aix rocky 2 5 000ad7df4c00 ' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemulti +plicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc_r', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURC +E -qmaxmem=16384 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INI +T -q32 -D_LARGE_FILES -qlonglong', optimize='-O', cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem= +16384 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT' ccversion='', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='ld', ldflags =' -brtl -b32' libpth=/lib /usr/lib /usr/ccs/lib libs=-lbind -lnsl -ldbm -ldl -lld -lm -lpthreads -lc_r -lcrypt -lb +sd -lPW perllibs=-lbind -lnsl -ldl -lld -lm -lpthreads -lc_r -lcrypt -lbsd + -lPW libc=/lib/libc.a, so=a, useshrplib=true, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -bE:/usr/ +opt/perl5/lib/5.8.0/aix-thread-multi/CORE/perl.exp' cccdlflags=' ', lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.e +xp -bE:$(BASEEXT).exp -bnoentry -lpthreads -lc_r' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL +_IMPLICIT_CONTEXT Built under aix Compiled at Jul 26 2002 13:48:15 @INC: /usr/opt/perl5/lib/5.8.0/aix-thread-multi /usr/opt/perl5/lib/5.8.0 /usr/opt/perl5/lib/site_perl/5.8.0/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.8.0 /usr/opt/perl5/lib/site_perl
        Apart from the fact that it's 5.8.0 instead of 5.8.6 it is really not the same as the linux one :|