http://qs1969.pair.com?node_id=1178842

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

Hi, I'm not sure if these kinds of questions are meant for this website, please tell if it isn't. I'm trying to install Hortonworks (Hadoop Distribution Platform) on Linux (CentOS 7). For the installation to succeed I need to install the package 'redhat-lsb'. Before I can install redhat-lsb I need to install dependencies such as 'perl(ExtUtils::MakeMaker)'. But that one requires 'perl(ExtUtils::Installed)'. And that one requires perl(ExtUtils::MakeMaker). So now I'm caught in a loop because I can't install any of those because they require each other. I don't have internet access on the machine so I have to manually install the .rpm files. Any tips or ideas how to succesfully install perl(ExtUtils::MakeMaker) without internet access?

Replies are listed 'Best First'.
Re: Offline install of perl
by Corion (Patriarch) on Jan 03, 2017 at 11:45 UTC

    Most likely, ExtUtils::MakeMaker already is installed with perl on the machine. If RedHat is one of the companies violating the Perl license by redistributing a modified version of Perl under the same name, then most likely you can upgrade the installed packages by downloading the appropriate RPMs and installing them in one go:

    https://www.redhat.com/archives/rpm-list/2003-January/msg00376.html
    rpm -i A.rpm B.rpm C.rpm

    If all else fails, you can try to force-install these packages skipping their prerequisites.

Re: Offline install of perl
by bart (Canon) on Jan 07, 2017 at 06:57 UTC
    Rant: Something is very wrong with ExtUtils::MakeMaker, as it depends on a module that depends on itself in return. Now, you have a bootstrap problem to install them... IMHO this ought to have been a single distribution.

    Anyway... On CentOS, you probably have to install a "devel" package in order to do some more non-plain-users stuff. Lo and behold, there is a packaged called perl-devel and it does contain both ExUtils::MakeMaker and ExtUtils::Installed. Problem solved, I suppose? (n.b. There are versions of this package for x86_64 and for i686. Use the one appropriate for your platform.)

    Note that you can download the rpm files you need to install and use either rpm or yum to install them offline

      There is not a bootstrap problem with makemaker, like corion says, you cant strip perl of its core modules and expect it to behave
        You're entitled to your own opinion, but I do disagree.

        Recently, I tried to install a module in a perl 5.12. This in turn required installation of Module::Build. That in turn required an update of ExtUtils::MakeMaker. And there was no way I could that upgrade installed. ExtUtils::MakeMaker depended on another module that also required to be updated, and that one in turn demanded a more recent version of ExtUtils::MakeMaker. There was no older version of either modules old enough available to upgrade both modules gently. So, I was simply stuck.

        Like I said, and I'll say it again: if your dependency graph is not a tree, but instead, contains a cycle, these modules in that cycle should not be in separate distributions. Otherwise your repository is plainly broken.

        p.s. Perl 5.12, to me, is modern enough. I cannot name a single significant difference between perl 5.12 and perl 5.24. Upgrading perl takes hours, because of the need to reinstall every module I ever installed. It's simply not worth it.