in reply to Re^2: My interactive CPAN config doesn't understand continents.
in thread My interactive CPAN config doesn't understand continents.

Hm..has this never been addressed?

It has. Aighearach adressed it ten years ago.

  • Comment on Re^3: My interactive CPAN config doesn't understand continents.

Replies are listed 'Best First'.
Re^4: My interactive CPAN config doesn't understand continents.
by Anonymous Monk on Jan 18, 2011 at 20:12 UTC
    If you look in the original post, the problem is that there are no options given. So typing the number (as Aighearach suggests) will not work.

    So this has NOT been addressed.

    I am having the same issue. I've tried on two different systems:

    HPUX
    - worked previously (been using for years)
    - perl 5.8.3
    - CPAN 1.7601
    
    Linux
    - new server, setting up for first time
    - perl 5.8.8
    - CPAN 1.7602
    
    So since there have been no messages on this for 10 years then 2 people with same problem in 4 days, maybe something changed. Did the MIRRORED.BY format change that may not work with older versions of CPAN?
      Did the MIRRORED.BY format change that may not work with older versions of CPAN?

      It doesn't matter, install the latest version of the CPAN module (there have been 216 releases since 1.76_01).

      Or better yet, install CPANPLUS

      New questions go in Seekers of Perl Wisdom ( Where should I post X? ), since replies can fall through the cracks , esp when asking Aighearach who haven't visited in years

        I am getting exact same problem with later version:
        [root@linux store]# cpan -v /usr/bin/cpan script version 1.9, CPAN.pm version 1.9402
        Any help would be appreciated.
Re^4: My interactive CPAN config doesn't understand continents.
by Anonymous Monk on Jan 21, 2011 at 20:57 UTC
    The problem is it isn't even presenting a list of the continent selections to pick, whether name OR number. So when the user inputs "1","2", or "NA","North America" the script has no options to choose from and loops indefinitely. This is happening across ALL OS platforms, Perl versions, etc which started occuring a few days ago. It seems the MIRRORED.BY file being downloaded is really messed up which prevents the init script from parsing out the proper info for the question selection.
      PROBLEM SOLVED!!!! Ok, here is the skinny. THE MIRRORED.BY FILE FORMAT HAS SIGNIFICANTLY CHANGED. Thankfully I have a few linux boxes around that I have not yet messed with CPAN for a while that were initialized. The NEW format of MIRRORED.BY is this..
      24-7-solutions.net: frequency = "daily" dst_ftp = "ftp://mirrors.24-7-solutions.net/pub/CPAN/" dst_http = "http://mirrors.24-7-solutions.net/pub/CPAN/" dst_location = "New York, New York, United States, North America + (40.70519 -74.01136)" dst_organisation = "24/7 Solutions Ltd" dst_timezone = "-5" dst_bandwidth = "100 Mb/s" dst_contact = "24-7-solutions.net'mirror" dst_src = "ftp.funet.fi" 8086.net: frequency = "daily" dst_ftp = "ftp://ftp.mirror.8086.net/sites/CPAN/" dst_http = "http://www.mirror.8086.net/sites/CPAN/" dst_rsync = "rsync://rsync.mirror.8086.net/CPAN/" dst_location = "London, United Kingdom, Europe (51.50595 -0.1268 +9)" dst_organisation = "8086 Limited" dst_bandwidth = "100 Mb/s" dst_contact = "8086.net)support" dst_src = "ftp.funet.fi" adwired.ch: frequency = "daily" dst_ftp = "ftp://ftp.adwired.ch/CPAN/" dst_location = "Zürich, Switzerland, Europe (47.3735 8.5382)" dst_organisation = "Adwired AG" dst_timezone = "+1" dst_bandwidth = "100 Mb/s" dst_contact = "adwired.ch)daniel.kuebler" dst_src = "ftp.funet.fi"
      The OLD version of MIRRORED.BY WAS this:
      mirror.ac.za: frequency = "12 Hourly" dst_ftp = "ftp://cpan.mirror.ac.za/" dst_http = "http://cpan.mirror.ac.za/" dst_rsync = "mirror.ac.za::cpan" dst_location = "Cape Town, South Africa, Africa (33.55 18.27)" dst_organisation = "TENET" dst_timezone = "+2" dst_bandwidth = "STM-1" dst_contact = "tenet.ac.za,aa" dst_src = "rsync://www.cpan.org/CPAN/" # dst_dst = "ftp://cpan.mirror.ac.za/" # dst_contact = "mailto:tenet.ac.za,aa # dst_src = "rsync://www.cpan.org/CPAN/" is.co.za: frequency = "daily" dst_ftp = "ftp://ftp.is.co.za/pub/cpan/" dst_http = "http://mirror.is.co.za/pub/cpan/" dst_rsync = "ftp.is.co.za::IS-Mirror/ftp.cpan.org/" dst_location = "Johannesburg, Gauteng, South Africa, Africa (27. +997053 -26.143972)" dst_organisation = "Internet Solutions" dst_timezone = "+2" dst_bandwidth = "50MB" dst_contact = "is.co.za%ftpadmin" dst_src = "rsync.nic.funet.fi" dst_notes = "Limit to 4 simultaneous connections." # dst_dst = "ftp://ftp.is.co.za/pub/cpan/" # dst_contact = "mailto:is.co.za%ftpadmin # dst_src = "rsync.nic.funet.fi" saix.net: frequency = "daily" dst_ftp = "ftp://ftp.saix.net/pub/CPAN/" dst_location = "Parow, Western Cape, South Africa, Africa (-33.9 +064 18.5631)" dst_organisation = "South African Internet eXchange (SAIX)" dst_timezone = "+2" dst_bandwidth = "T3" dst_contact = "saix.net%ftp" dst_src = "ftp.funet.fi" # dst_dst = "ftp://ftp.saix.net/pub/CPAN/" # dst_contact = "mailto:saix.net%ftp # dst_src = "ftp.funet.fi"
      The code in FirstTime.pm that sets everything up for the continents is this
      sub read_mirrored_by { my $local = shift or return; my(%all,$url,$expected_size,$default,$ans,$host,$dst,$country,$con +tinent,@location); my $fh = FileHandle->new; $fh->open($local) or die "Couldn't open $local: $!"; local $/ = "\012"; while (<$fh>) { ($host) = /^([\w\.\-]+)/ unless defined $host; next unless defined $host; next unless /\s+dst_(dst|location)/; /location\s+=\s+\"([^\"]+)/ and @location = (split /\s*,\s*/, +$1) and ($continent, $country) = @location[-1,-2]; $continent =~ s/\s\(.*//; $continent =~ s/\W+$//; # if Jarkko doesn't know latitude/long +itude /dst_dst\s+=\s+\"([^\"]+)/ and $dst = $1; next unless $host && $dst && $continent && $country; $all{$continent}{$country}{$dst} = CPAN::Mirrored::By->new($co +ntinent,$country,$dst); undef $host; $dst=$continent=$country=""; } $fh->close; $CPAN::Config->{urllist} ||= []; my(@previous_urls); if (@previous_urls = @{$CPAN::Config->{urllist}}) { $CPAN::Config->{urllist} = []; } print qq{ Now we need to know where your favorite CPAN sites are located. Push a few sites onto the array (just in case the first on the array won\'t work). If you are mirroring CPAN to your local workstation, specify a file: URL. First, pick a nearby continent and country (you can pick several of each, separated by spaces, or none if you just want to keep your existing selections). Then, you will be presented with a list of URLs of CPAN mirrors in the countries you selected, along with previously selected URLs. Select some of those URLs, or just keep the old list. Finally, you will be prompted for any extra URLs -- file:, ftp:, or http: -- that host a CPAN mirror.
      Basically it dynamically builds the Continent and Country lists from this file. The ALL important fields of
      # dst_dst = "ftp://ftp.is.co.za/pub/cpan/" # dst_contact = "mailto:is.co.za%ftpadmin # dst_src = "rsync.nic.funet.fi"
      are missing from the newer MIRRORED.BY file format. So now CPAN needs to fix their newer file format to include the older data info, OR update their sub read_mirrored_by function to not look for the "dst_dst" line.

      So for now I can just use an older CPAN MIRRORED.BY file from my older boxes to get my installs running ok. Once the mirrors are configured with the FirstTime.pm init file, I (hopefully) won't have further problems with the CPAN mirrors issue.

        ( I am same as posted above) Instead of selecting "Yes" for the manual setup, select "no". CPAN will auto configure skipping the mirrors continent question. Then use CPAN to update itself.
        There's a new CPAN.pm version (v1.9402) available! [Current version is v1.7602] You might want to try install Bundle::CPAN reload cpan without quitting the current session. It should be a seamless upgrad +e while we are running...
        This will get you past the problems with the continent selection.
Re^4: My interactive CPAN config doesn't understand continents.
by Anonymous Monk on Jan 18, 2011 at 17:46 UTC
    How wonderfully snarky yet still completely unhelpful!