Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^5: DBD::Oracle only installs under /root ?

by marto (Cardinal)
on Mar 19, 2018 at 15:47 UTC ( [id://1211247]=note: print w/replies, xml ) Need Help??


in reply to Re^4: DBD::Oracle only installs under /root ?
in thread DBD::Oracle only installs under /root ?

%ENV: PERL5LIB="/root/perl5/lib/perl5:" PERL_LOCAL_LIB_ROOT=":/root/perl5" PERL_MB_OPT="--install_base /root/perl5" PERL_MM_OPT="INSTALL_BASE=/root/perl5" @INC: /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi /root/perl5/lib/perl5/5.16.3 /root/perl5/lib/perl5/x86_64-linux-thread-multi /root/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5

You can see from the config above why this server is installing modules into this location. Ideally your perls should have the same configuration across your fleet, do avoid any problems from this one being different. If your servers are uniform then there are alternatives (e.g. build your own perl say in /app/appname, building/installing modules on one server and deploying from there, rather than building on each).

Update: for clarity, note the PERL_ env vars.

Replies are listed 'Best First'.
Re^6: DBD::Oracle only installs under /root ?
by toledotown (Novice) on Mar 19, 2018 at 17:48 UTC

    Ok, so I changed the variables to the below:

    %ENV: PERL5LIB="/usr/local/lib64/perl5" PERL_LOCAL_LIB_ROOT=":/root/perl5" PERL_MB_OPT="--install_base /root/perl5" PERL_MM_OPT="INSTALL_BASE=/root/perl5" @INC: /usr/local/lib64/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5

    Next, compiled again and they still installed to:

    /usr/local/lib64/perl5/lib/perl5/x86_64-linux-thread-multi

    We are a decent sized company but this is our only server with perl in use hence my lack of understanding on this wizardry lol.

    EDIT

    When running the below the odd path persists:

    [root@jobsub DBD-Oracle-1.74-nM1KgO]# make -n install true true true true true true /usr/bin/perl "-MExtUtils::Command::MM" -e pod2man "--" --section=3 -- +perm_rw=644 \ lib/DBD/Oracle/Troubleshooting.pod blib/man3/DBD::Oracle::Troublesho +oting.3pm \ lib/DBD/Oracle/Troubleshooting/Cygwin.pod blib/man3/DBD::Oracle::Tro +ubleshooting::Cygwin.3pm \ lib/DBD/Oracle.pm blib/man3/DBD::Oracle.3pm \ lib/DBD/Oracle/Troubleshooting/Sun.pod blib/man3/DBD::Oracle::Troubl +eshooting::Sun.3pm \ lib/DBD/Oracle/Troubleshooting/Macos.pod blib/man3/DBD::Oracle::Trou +bleshooting::Macos.3pm \ lib/DBD/Oracle/Troubleshooting/Vms.pod blib/man3/DBD::Oracle::Troubl +eshooting::Vms.3pm \ lib/DBD/Oracle/Troubleshooting/Hpux.pod blib/man3/DBD::Oracle::Troub +leshooting::Hpux.3pm \ lib/DBD/Oracle/Troubleshooting/Aix.pod blib/man3/DBD::Oracle::Troubl +eshooting::Aix.3pm \ lib/DBD/Oracle/Object.pm blib/man3/DBD::Oracle::Object.3pm \ lib/DBD/Oracle/Troubleshooting/Linux.pod blib/man3/DBD::Oracle::Trou +bleshooting::Linux.3pm \ lib/DBD/Oracle/Troubleshooting/Win64.pod blib/man3/DBD::Oracle::Trou +bleshooting::Win64.3pm \ lib/DBD/Oracle/GetInfo.pm blib/man3/DBD::Oracle::GetInfo.3pm \ lib/DBD/Oracle/Troubleshooting/Win32.pod blib/man3/DBD::Oracle::Trou +bleshooting::Win32.3pm true /usr/bin/perl -MExtUtils::Install -e 'install([ from_to => {@ARGV}, ve +rbose => '\''0'\'', uninstall_shadows => '\''0'\'', dir_mode => '\''7 +55'\'' ]);' -- \ read /usr/local/lib64/perl5/auto/DBD/Oracle/.packlist \ write /usr/local/lib64/perl5/lib/perl5/x86_64-linux-thread-mul +ti/auto/DBD/Oracle/.packlist \ blib/lib /usr/local/lib64/perl5/lib/perl5 \ blib/arch /usr/local/lib64/perl5/lib/perl5/x86_64-linux-thread +-multi \ blib/bin /usr/local/lib64/perl5/bin \ blib/script /usr/local/lib64/perl5/bin \ blib/man1 /usr/local/lib64/perl5/man/man1 \ blib/man3 /usr/local/lib64/perl5/man/man3 /usr/bin/perl -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- \ /usr/lib64/perl5/auto/DBD/Oracle true echo Appending installation info to /usr/local/lib64/perl5/lib/perl5/x +86_64-linux-thread-multi/perllocal.pod /usr/bin/perl -MExtUtils::Command -e 'mkpath' -- /usr/local/lib64/perl +5/lib/perl5/x86_64-linux-thread-multi /usr/bin/perl -MExtUtils::Command::MM -e 'perllocal_install' -- \ "Module" "DBD::Oracle" \ "installed into" "/usr/local/lib64/perl5/lib/perl5" \ LINKTYPE "dynamic" \ VERSION "1.74" \ EXE_FILES "" \ >> /usr/local/lib64/perl5/lib/perl5/x86_64-linux-thread-multi/ +perllocal.pod

    EDIT 2 - I think this is happening because the Makefile.PL is improperly choosing my distro! If I look at the Makefile created after running perl Makefile.PL The below shows where it will install the module based on base OS

    PREFIX = $(INSTALL_BASE) INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux-thread-multi DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux-thread-multi DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux-thread-mult +i DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) INSTALLBIN = $(INSTALL_BASE)/bin DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) INSTALLSITEBIN = $(INSTALL_BASE)/bin DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) INSTALLVENDORBIN = $(INSTALL_BASE)/bin DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) INSTALLSCRIPT = $(INSTALL_BASE)/bin DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) INSTALLSITESCRIPT = $(INSTALL_BASE)/bin DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) INSTALLMAN1DIR = $(INSTALL_BASE)/man/man1 DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) INSTALLMAN3DIR = $(INSTALL_BASE)/man/man3 DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)

    and here is the same section from my 'good' server

    PREFIX = $(SITEPREFIX) PERLPREFIX = /usr SITEPREFIX = /usr/local VENDORPREFIX = /usr INSTALLPRIVLIB = /usr/share/perl5 DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) INSTALLSITELIB = /usr/local/share/perl5 DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) INSTALLVENDORLIB = /usr/share/perl5/vendor_perl DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) INSTALLARCHLIB = /usr/lib64/perl5 DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) INSTALLSITEARCH = /usr/local/lib64/perl5 DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) INSTALLVENDORARCH = /usr/lib64/perl5/vendor_perl DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) INSTALLBIN = /usr/bin DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) INSTALLSITEBIN = /usr/local/bin DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) INSTALLVENDORBIN = /usr/bin DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) INSTALLSCRIPT = /usr/bin DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) INSTALLSITESCRIPT = /usr/local/bin DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) INSTALLVENDORSCRIPT = /usr/bin DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) INSTALLMAN1DIR = /usr/share/man/man1 DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) INSTALLSITEMAN1DIR = /usr/local/share/man/man1 DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) INSTALLVENDORMAN1DIR = /usr/share/man/man1 DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) INSTALLMAN3DIR = /usr/share/man/man3 DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) INSTALLSITEMAN3DIR = /usr/local/share/man/man3 DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) INSTALLVENDORMAN3DIR = /usr/share/man/man3 DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)

    FINAL edit

    I think I did something ugly and unspeakable but it worked... I copied the lines that had the correct path from the above Makefile into my desired Makefile. May god have mercy on my soul.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1211247]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-03-28 16:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found