If you have to maintain perl script written applications on Linux servers that are sitting behind a very paranoid set-up firewalls
and Local DMZ network, but you still need to maintain the servers and applications versions including perl CPAN (Comprehensive Perl Archive networking) module libraries, you could still do so via another Proxy machine Hub on the Local network, where you either have to manually download all the newest perl versions and CPAN module (libraries) or you can set it up that Proxy machine
to access only a specific Secured internet URLs for perl stuff.
Proxying perl downloads can be done via FTP connects, but as FTP is communicating in plain text and the protocol is known
for not behaving very well behind firewalls, it is a better idea to use for CPAN downloads HTTP or HTTPS protocol.
Normlly Perl is using FTP to download files from the internet. To enable Perl using also HTTP, please install the following RPM:
# yum install perl-libwww-perl
After figure out a CPAN-mirror from http://mirrors.cpan.org/search.cgi?country=Germany, we can start with the configuration from CPAN.
or debian package
# apt install libwww-perl
At the first run from /usr/bin/cpan the initial configuration will be started up which will be done automatically:
[username@linux-host ~]$ cpan
/home/linux-username/.cpan/CPAN/MyConfig.pm initialized.
CPAN is the world-wide archive of perl resources. It consists of about
100 sites that all replicate the same contents all around the globe.
Many countries have at least one CPAN site already. The resources
found on CPAN are easily accessible with the CPAN.pm module. If you
want to use CPAN.pm, you have to configure it properly.If you do not want to enter a dialog now, you can answer 'no' to this
question and I'll try to autoconfigure. (Note: you can revisit this
dialog anytime later by typing 'o conf init' at the cpan prompt.)Are you ready for manual configuration? [yes] no
— SNIP — SNAP — SNIP — SNAP — SNIP — SNAP —
commit: wrote /home/linux-username/.cpan/CPAN/MyConfig.pm
Terminal does not support AddHistory.cpan shell — CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')cpan> q
Terminal does not support GetHistory.
Lockfile removed.
[username@linux-host ~]$
After the initial configuration you have to run /usr/bin/cpan again, to configure the HTTP-proxy and an alternative HTTP-URL for the default FTP URL:
[username@linux-host ~]$ cpan
Terminal does not support AddHistory.cpan shell — CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')cpan> o conf http_proxy http://proxy-host-to-internet.com:8080
http_proxy http://proxy-host-to-internet.com:8080cpan> o conf urllist push http://mirrors.zerg.biz/cpan/
cpan> o conf commit
commit: wrote /home/linux-username/.cpan/CPAN/MyConfig.pmcpan> q
Terminal does not support GetHistory.
Lockfile removed.
[username@linux-host ~]$From now CPAN will load it's files from the internet with the HTTP-proxy:
[username@linux-host ~]$ cpan
Terminal does not support AddHistory.cpan shell — CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')cpan> i Example::DB::Oracle
CPAN: Storable loaded ok
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
http://mirrors.zerg.biz/cpan/authors/01mailrc.txt.gz
Going to read /home/linux-host/.cpan/sources/authors/01mailrc.txt.gz
Fetching with LWP:
http://mirrors.zerg.biz/cpan/modules/02packages.details.txt.gz
Going to read /home/linux-host/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Thu, 07 Jan 2010 10:44:22 GMTThere'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 upgrade
while we are running…Fetching with LWP:
http://mirrors.zerg.biz/cpan/modules/03modlist.data.gz
Going to read /home/linux-username/.cpan/sources/modules/03modlist.data.gz
Going to write /home/linux-username/.cpan/Metadata
Strange distribution name [Example::DB::Oracle]
Module id = Example::DB::Oracle
CPAN_USERID MSERGEANT (MSERGEANT <msergeant@cpan.org>)
CPAN_VERSION undef
CPAN_FILE M/MS/MSERGEANT/DBIx-AnyDBD-2.01.tar.gz
INST_FILE (not installed)
cpan> q
Terminal does not support GetHistory.
Lockfile removed.
Now as the new proxy http URL http://proxy-host-to-internet.com:8080 is set on the machine, to upgrade the existing modules non interactively
# perl MCPAN -e upgrade
or do it the old fashioned way via the MCPAN perl shell:
# perl -MCPAN -e shell
Starting with version 2.29 of the cpan shell, a new download mechanism
is the default which exclusively uses cpan.org as the host to download
from. The configuration variable pushy_https can be used to (de)select
the new mechanism. Please read more about it and make your choice
between the old and the new mechanism by runningo conf init pushy_https
Once you have done that and stored the config variable this dialog
will disappear.cpan shell — CPAN exploration and modules installation (v2.29)
Enter 'h' for help.cpan[1]> upgrade
…
That's all folks after a while if no errors are spit during the Perl modules update you'll be at the latest versions of CPAN and modules.