Find the answer to your Linux question:
Results 1 to 2 of 2
Hi guys I am just after installing perl via URPMI and it appears to be have been succesful. But when I attempt to run URPMI i keep getting the following ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Oct 2004
    Location
    Dublin, Ireland
    Posts
    29

    Eorror:- URPMI & Perl


    Hi guys

    I am just after installing perl via URPMI and it appears to be have been succesful.
    But when I attempt to run URPMI i keep getting the following error:

    Can't locate URPM.pm in @INC (@INC contains: /usr/lib/perl5/5.8.6/i386-linux /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i386-linux /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.6/i386-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/vendor_perl/5.8.5/urpm.pm line 16.
    BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.5/urpm.pm line 16.
    Compilation failed in require at /usr/sbin/urpmi line 22.
    BEGIN failed--compilation aborted at /usr/sbin/urpmi line 22.

    I have tried running URPMI from the sbin directory etc and keep getting the same error.

    Any help that anyone can provide would be very very much appreciated

    Cheers
    NeilB

  2. #2
    Just Joined!
    Join Date
    Oct 2005
    Posts
    5

    this solution worked for me

    I don't know if this post is still relevant to the original poster, but in case anyone else has this problem (which I just did!), here's what worked for me:

    The problem:
    -----------------------
    This problem occured to me using Mandrake Download 10.1.

    During certain urpmi operations, you may break perl. Usually this occurs because the urpmi operation tries to update perl in some way, which (because urpmi is actually written in perl) causes major problems. For instance:
    urpmi urpm
    Will most likely break perl, with urpmi stopping halfway through the update. This also means the urpm* will no longer work, since it is based on perl.

    Symptoms:
    -----------------------
    If you're afflicted with this problem, then when you try to run urpmi (or indeed anything that is based on perl), you'll see errors like:

    Can't locate URPM.pm in @INC (@INC contains: /usr/lib/perl5/5.8.6/i386-linux /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i386-linux /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.6/i386-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/vendor_perl/5.8.5/urpm.pm line 16.
    You will probably also notice that many key components don't work. Urpmi and most "drake" components in Mandrake/Mandriva rely on perl, and will stop working.


    Solution
    -----------------------
    The solution is to revert back to the proper perl. You can't use urpm*, so you'll have to use rpm. Find your installation CD-ROM. Alternately, get the equivalent packages online somewhere. Make sure you find YOUR OLD VERSION of perl; the version that was working previously. To find out what version that is, try going to:
    Code:
    cd /usr/lib/perl5/
    where you can see what versions are installed. Compare this against the urpmi log:
    Code:
    cd /var/log
    more urpmi.log
    The last urpmi events may indicate something like:

    Sat Dec 3 09:07:05 2005 /var/cache/urpmi/rpms/perl-base-5.8.6-6.1.102mdk.i586.rpm /var/cache/urpmi/rpms/perl-5.8.6-6.1.102mdk.i586.rpm
    The program 'urpmi' received an X Window System error.
    In this case, upgrading from perl 5.8.5 to 5.8.6 was the problem. We want to rever to 5.8.5. Locate the original rpm, probably on your installation CD-ROM (or find it online):
    Code:
    cd /mnt/cdrom/media/main
    rpm -Uhv perl-base-5.8.5-3mdk.i586.rpm --oldpackage --nodeps
    rpm -Uhv perl-5.8.5-3mdk.i586.rpm  --oldpackage
    You will need the "nodeps" and "oldpackage" switches because the half-installed version of perl 5.8.6 is interfering. You need to revert to the older version. Perl (and urpmi) should now be working.


    Alternate Solutions
    -----------------------
    You could try to symlink the different versions of urpmi. Try:
    Code:
    mv /usr/lib/perl5/5.8.5 /usr/lib/perl5/5.8.5-backup
    ln -s /usr/lib/perl5/5.8.6 /usr/lib/perl5/5.8.5
    or the inverse
    Code:
    mv /usr/lib/perl5/5.8.6 /usr/lib/perl5/5.8.6-backup
    ln -s /usr/lib/perl5/5.8.5 /usr/lib/perl5/5.8.6
    depending on which version of perl is currently being searched by the system. This may work in the short term, but you'll probably want to clean it up later.

    You may be able to fool urpmi into working temporarily (at least long enough to fix it) by fixing the @INC path. See this suggestion:
    http://www.edlug.org.uk/archive/Dec2002/msg00269.html
    The idea is to set and export PERL5LIB and/or the global @INC, adding the required paths. However, the problem is often a binary incompatibility between the various versions of perl, meaning that mixing the files won't work.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •