[caracas-pm] Reconfigurar CPAN

Gustavo Delfino gdelfino at mac.com
Tue Feb 7 13:21:16 PST 2006


On Feb 6, 2006, at 3:13 PM, Alexis Arnal wrote:

> Cómo hago para reconfigurar el cliente de CPAN una máquina, quiero
> cambiarle los servidores a los cuales se conecta para desacargar los
> paquetes.
>
> Estoy buscando en man cpan y no encuentro nada
>
> Otra opción que tengo es borrar el directorio que crea y crearlo de  
> nuevo
> --

Segun Perl in a Nutshell:

"The first time you use the CPAN module, it takes you through a  
series of setup questions and writes CPAN::Config if you run the  
above as root or your administrative user. If the above is run as a  
user who does not have administrative permissions, CPAN.pm determines  
who you are and writes MyConfig.pm in a subdirectory of your home  
directory (defaults to ~/.cpan/CPAN/MyConfig.pm)."

En mi caso, yo hice un "locate CPAN" y asi pude determinar que en mi  
maquina (Mac OS X) la ubicación exacta del archivo a editar o borrar es:

/System/Library/Perl/5.8.6/CPAN/Config.pm

Ahora bien, una pregunta más dificil es como decidir cuales  
servidores espejos (MIRRORS) seleccionar. En tal sentido sugiero  
escoger los que tengan un menor tiempo de ping. Con este fin, prepare  
este programa al que llame pinger.pl:
--------------------------------
use Net::Ping;
use Time::HiRes;
$pings = 3; # Number of pings to send

# High precision syntax (requires Time::HiRes)
$p = Net::Ping->new();
$p->hires();

open(HOSTS,$ARGV[0]) || die "hosts file not found";
while(<HOSTS>){
     my @times;
     ($num, $host) = split;
     foreach $i (1..$pings){
		($ret, $duration, $ip) = $p->ping($host, 5.5);
		push(@times,$duration);
		printf("$i: $host [ip: $ip] is alive (packet return time: %.2f ms) 
\n", 1000 * $duration) if $ret;
     }

     $total_time=0;
     foreach $t (@times){
		$total_time = $total_time + $t;
     }
     $average_time{$num} = $total_time/$pings;
     print "The average time is $average_time{$num}\n";
}
close(HOSTS);
$p->close();

# Recipe 5.9 (cookbook)
@order = sort { $average_time{$a} <=> $average_time{$b} } keys % 
average_time;

foreach $n (@order){
     print "$n $average_time{$n}\n";
}

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

El unico argumento que toma este programa es un archivo de texto con  
los nombres de los servidores espejo o mirrors. Por ejemplo yo tengo  
esta lista en un archivo llamado cpan_hosts.txt:

1 archive.progeny.com
2 carroll.cac.psu.edu
3 cpan-du.viaverio.com
4 cpan-sj.viaverio.com
5 cpan.calvin.edu
6 cpan.cs.utah.edu
7 cpan.cse.msu.edu
8 cpan.digisle.net
9 cpan.erlbaum.net
10 cpan.llarian.net
11 cpan.mirrors.redwire.net
12 cpan.mirrors.tds.net
13 cpan.nas.nasa.gov
14 cpan.netnitco.net
15 cpan.pair.com
16 cpan.teleglobe.net
17 cpan.thepirtgroup.com
18 cpan.uky.edu
19 csociety-ftp.ecn.purdue.edu
20 ftp-mirror.internap.com
21 ftp.ccs.neu.edu
22 ftp.cise.ufl.edu
23 ftp.cpanel.net
24 ftp.cs.colorado.edu
25 ftp.dc.aleron.net
26 ftp.duke.edu
27 ftp.epix.net
28 ftp.ibiblio.org
29 ftp.lug.udel.edu
30 ftp.mednor.net
31 ftp.ncsu.edu
32 ftp.orst.edu
33 ftp.ou.edu
34 ftp.rge.com
35 ftp.saintjoe.edu
36 ftp.sunsite.utk.edu
37 ftp.uwsg.iu.edu
38 mirror.aelix.com
39 mirror.aphix.com
40 mirror.candidhosting.com
41 mirror.csit.fsu.edu
42 mirror.datapipe.net
43 mirror.hiwaay.net
44 mirror.sit.wisc.edu
45 mirror.telentente.com
46 mirror.xmission.com
47 mirrors.kernel.org
48 mirrors.phenominet.com
49 mirrors.rcn.net
50 mirrors.towardex.com
51 perl.secsup.org
52 cpan.belfry.net
53 cpan.binarycompass.org
54 cpan.mirrors.hoobly.com
55 cpan.mirrors.nks.net
56 ftp.sedl.org
57 mirror.hyperian.net
58 mirrors.gossamer-threads.com
59 mirrors.playboy.com
60 mirrors.theonlinerecordstore.com
61 www.binarycode.org
62 www.perl.com
63 www.uberlan.net
64 www.unixsoft.org

Desde mi oficina, los servidores con menor tiempo ping son:

ftp.epix.net
ftp.orst.edu
mirrors.playboy.com

Saludos,

Gustavo Delfino




More information about the caracas-pm mailing list