Commits

Anonymous committed 869a6b2

Add the latest life-with-cpan I could find in the web archive.

Comments (0)

Files changed (4)

src/topics/cpan/life-with-cpan/default.css

+/* $Id: default.css,v 1.47 2006/07/10 04:24:27 jmates Exp $
+
+The author disclaims all copyrights and releases this document into
+the public domain.
+
+*/
+
+body
+{
+	color: black;
+	background-color: white;
+	font-family: "Verdana", sans-serif;
+	margin-left: 0px;
+	margin-top: 0px;
+	margin-right: 0px;
+	margin-bottom: 0px;
+}
+
+.bodymain
+{
+	padding-left: 0.5em;
+	padding-right: 0.5em;
+}
+
+a:link
+{
+	color: #804000;
+	text-decoration: underline;
+}
+
+a:hover { text-decoration: none; }
+span:hover { text-decoration: none; }
+a:visited { color: #333; }
+
+.navlinks
+{
+	font-size: smaller;
+	font-weight: normal;
+	padding-top: 0.75em;
+	padding-right: 0.75em;
+	line-height: 2em;
+	float: right;
+	text-align: right;
+}
+
+.header
+{
+	background-color: #804000;
+	font-family: "Georgia", serif;
+	color: white;
+	border-bottom: thin solid black;
+	border-top: thin solid #804000;
+}
+
+.header a { color: white; }
+
+h1, h2, h3, h4, h5, h6
+{
+	font-style: normal;
+	font-weight: bold;
+}
+
+h1
+{
+	color: white;
+	/*	padding-top: 0.5em; */
+	padding-left: 0.5em;
+	font-size: xx-large;
+	line-height: normal;
+	text-shadow: #333 0 2px 3px;
+}
+
+h2 { font-size: x-large; }
+h3, h4, h5, h6 { font-size: large; }
+
+h2, h3, h4, h5, h6
+{
+	margin-top: 1em;
+	margin-bottom: 0em;
+}
+
+ol, ul
+{
+	padding: none;
+	max-width: 50em;
+}
+
+li
+{
+	padding-bottom: 0.66em;
+	padding-top: 0.33em;
+}
+
+.info, .note, .warn
+{
+	line-height: 1.5em;
+	padding: 0.5em;
+	max-width: 50em;
+}
+
+em
+{
+	font-weight: bold;
+	font-style: normal;
+}
+
+/* switchup <em> under shell examples so different from <input> and shell commands */
+.data-shell em
+{
+	font-weight: normal;
+	font-style: italic;
+	color: #000080;
+}
+
+.data em
+{
+	font-weight: normal;
+	font-style: italic;
+	color: #000080;
+}
+
+.subsection
+{
+	font-weight: bold;
+	padding-left: 0.5em;
+	padding-right: 0.5em;
+	line-height: 1.5em;
+}
+
+.warn
+{
+	border-color: red;
+	border-width: thin;
+	border-style: dashed;
+}
+
+.rbr
+{
+	color: #339900;
+	font-size: 75%;
+}
+
+/* data and similar require monospaced font that can be set bold/italic 
+without issues-- Courier for sure, so try it first */
+
+.data
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	background-color: #efefef;
+	padding: 0.5em;
+	white-space: pre;
+	border-color: #999;
+	border-width: 1px;
+	border-style: solid;
+	clear: both;
+	max-width: 50em;
+}
+
+.data-shell
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	background-color: #efefef;
+	padding: 0.5em;
+	white-space: pre;
+	border-color: #999;
+	border-width: 1px;
+	border-style: solid;
+	clear: both;
+	max-width: 50em;
+}
+
+/* for outdated stuff users need to see for reference */
+.old-line { text-decoration: line-through; }
+
+/* footer tag, goes at bottom of document */
+.footer
+{
+	clear: both;
+	padding: 0.5em;
+	margin-top: 2em;
+	padding-bottom: 200px;
+	border-top: 1px solid gray;
+	/*	font-family: "Courier", "Bitstream Vera Sans Mono", monospace; */
+	/*	font-size: smaller; */
+}
+
+/* comments in <data> blocks */
+.comment { font-style: italic; }
+
+/* stuff that a human would type in, presumably... */
+.input { font-weight: bold; }
+.shell { font-weight: bold; }
+kbd { font-weight: bold; }
+
+/* computer data markup */
+.code
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.file
+{
+	color: #007a00;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.file-glob
+{
+	color: #007a00;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.cmd
+{
+	color: #606;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.cmd-arg
+{
+	color: #606;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.gui
+{
+	color: #C30;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.host
+{
+	color: #003366;
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.man
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.perl-pod
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.perl-func
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.perl-module
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.book { text-decoration: underline; }
+
+/* KLUGE following is for the pastebot */
+pre
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	background-color: white;
+	padding-top: 0.5em;
+	padding-left: 0.5em;
+	padding-bottom: 0.5em;
+	white-space: pre;
+	border-color: #B46116;
+	border-width: 1px;
+	border-style: dashed;
+	line-height: 1.3em;
+	margin-left: 0.5em;
+	margin-right: 0.5em;
+	clear: both;
+}
+
+.pd { color: #404080; }
+
+/* pod-text */
+.c { color: #404080; }
+
+/* comment */
+.cm { color: #800097; }
+
+/* comma */
+.co { color: #800097; }
+
+/* colon */
+.h { color: #804848; }
+
+/* here-doc-target */
+.hh { color: #800000; }
+
+/* here-doc-text */
+.q { color: #800000; }
+
+/* quote */
+.v { color: #800000; }
+
+/* v-string */
+.i { color: #008080; }
+
+/* identifier */
+.k { color: #0000FF; }
+
+/* keyword */
+.n { color: #E02020; }
+
+/* numeric */
+.m { color: #C00080; }
+
+/* subroutine */
+.j { color: #C00080; }
+
+/* label */
+.w { color: #C00080; }
+
+/* bareword */
+.p { color: #800080; }
+
+/* paren */
+.s { color: #800080; }
+
+/* structure */
+.sc { color: #800080; }
+
+/* semicolon */
+.pu { color: #C44800; }
+
+/* punctuation */

src/topics/cpan/life-with-cpan/index.html

+<?xml version="1.0" encoding='utf-8' ?> <html lang="en-US"><head
+        xmlns:xlink="http://www.w3.org/1999/xlink"> <meta
+        http-equiv="content-type" content="text/html;
+        charset=UTF-8"><title>Life with CPAN</title><link rel="stylesheet"
+        type="text/css" href="default.css"><meta
+        name="MSSmartTagsPreventParsing" content="TRUE"></head><body
+        xmlns:xlink="http://www.w3.org/1999/xlink"><div class="header"><div
+                class="navlinks"><a
+                    href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/">Parent
+                    Page</a></div><h1><a name="s">Life with
+                    CPAN</a></h1></div><div class="subsection"><a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s2"><tt
+                    class="cmd">perl</tt> Upgrade Bug</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s3">Active
+                FTP versus Firewalls</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s4">Preferences
+                Questions</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s5">Reconfiguring
+                CPAN</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6">Usage
+                Tips</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s7">Debugging
+                Module Build Problems</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s8">Using
+                CPAN with a non-root account</a></div><div class="bodymain"><p
+            class="info">The <a
+                href="http://web.archive.org/web/20080822232114/http://www.cpan.org/">Comprehensive
+                Perl Archive Network (CPAN)</a> hosts <a
+                href="http://web.archive.org/web/20080822232114/http://www.perl.org/">Perl</a>
+            modules and scripts. The <a
+                href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+                title="Documentation on the CPAN Perl module"><tt
+                    class="perl-module">CPAN</tt></a> module provides an
+            interface to query and install modules hosted on <acronym
+                title="Comprehensive Perl Archive Network">CPAN</acronym>.
+            These pages document the setup and usage of <a
+                href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+                title="Documentation on the CPAN Perl module"><tt
+                    class="perl-module">CPAN</tt></a>, with attention to common
+            tasks and pitfalls along the way.</p><p class="info">Perl
+ modules used in production must be saved locally, either under version
+ control, a package system, or software depot. Doing so ensures the modules can
+ be installed on new systems, or rebuilt on new platforms.  This supports
+ reproducible module installs over time, as <acronym title="Comprehensive Perl
+     Archive Network">CPAN</acronym> modules may change or be removed without
+ warning.</p><p class="info">Use <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN::Reporter"
+     title="Documentation on the CPAN::Reporter Perl module"><tt
+         class="perl-module">CPAN::Reporter</tt></a> to <a
+     href="http://web.archive.org/web/20080822232114/http://use.perl.org/article.pl?sid=06/11/08/1256207">submit
+     module test results</a>. Try <a
+     href="http://web.archive.org/web/20080822232114/http://use.perl.org/%7EShlomi+Fish/journal/32367">SmokeAuto
+     for automated module testing</a>.</p><h3><a
+         name="s1.1">Alternatives</a></h3><p class="info">Other means of
+ installing <tt class="cmd">perl</tt> modules from <acronym
+     title="Comprehensive Perl Archive Network">CPAN</acronym> include the
+ following, which are not discussed in detail here.</p><ul class="list"><li><a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPANPLUS"
+         title="Documentation on the CPANPLUS Perl module"><tt
+             class="perl-module">CPANPLUS</tt></a>. “<tt
+         class="code">CPAN++</tt> (also referred to and pronounced as <tt
+         class="code">CPANPLUS</tt>) is a new and flexible method of <tt
+         class="cmd">perl</tt> module management and installation using the
+     <acronym title="Comprehensive Perl Archive Network">CPAN</acronym>. It
+     aims to be a rewrite, and in time a replacement to the current <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+         title="Documentation on the CPAN Perl module"><tt
+             class="perl-module">CPAN</tt></a> module. In  addition to fixing
+     some long-standing problems, <tt class="code">CPAN++</tt> includes new
+     features, such as module uninstall.”<br>&nbsp;</li><li>PAR - <a
+         href="http://web.archive.org/web/20080822232114/http://par.perl.org/">Cross-Platform
+         Packaging and Deployment tool</a>.<br>&nbsp;</li><li><a
+         href="http://web.archive.org/web/20080822232114/http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/">Perl
+         Package Manager (PPM)</a> - Included with <a
+         href="http://web.archive.org/web/20080822232114/http://aspn.activestate.com/ASPN/Downloads/ActivePerl/">ActiveState
+         Perl</a>.<br>&nbsp;</li><li>Other. Some vendors make <tt
+         class="cmd">perl</tt> modules available via other methods, such as
+     ActiveState’s <a
+         href="http://web.archive.org/web/20080822232114/http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/"><acronym
+             title="Perl Package Manager">PPM</acronym></a>, the <a
+         href="http://web.archive.org/web/20080822232114/http://www.freebsd.org/ports/">FreeBSD
+         ports</a> system, or similar package software. On <a
+         href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/macosx/">Mac
+         OS X, install XCode</a>, or use on of the various package systems
+     available. These offer tight integration with the system in question, but
+     may include outdated modules or use different naming conventions and
+     filesystem layouts.</li><p class="note">For example, <tt
+         class="code">p5-libwww</tt> is the FreeBSD port
+of the module distribution <tt class="code">libwww-perl</tt> on <acronym
+    title="Comprehensive Perl Archive Network">CPAN</acronym>, and <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/LWP::UserAgent"
+    title="Documentation on the LWP::UserAgent Perl module"><tt
+        class="perl-module">LWP::UserAgent</tt></a> a module found in that
+distribution. The following commands are equivalent means to install <tt
+    class="code">libwww-perl</tt> via the FreeBSD ports system, <tt
+    class="cmd">yum</tt> on RedHat systems, or the <tt class="cmd">cpan</tt>
+command included with modern versions of <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a>.</p><p class="data-shell">#
+<kbd>portinstall p5-libwww</kbd><br># <kbd>yum -y install
+    perl-libwww-perl</kbd><br># <kbd>cpan -i LWP::UserAgent</kbd></p><p
+class="info">To lookup the documentation for a module, use <tt
+    class="code">http://search.cpan.org/perldoc/<kbd
+        class="input">Module::Name</kbd></tt>. The documentation should also
+show the distribution a module belongs to, for example <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Data::Dumper"
+    title="Documentation on the Data::Dumper Perl module"><tt
+        class="perl-module">Data::Dumper</tt></a>. Other search interfaces
+include the <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/"><acronym
+        title="Comprehensive Perl Archive Network">CPAN</acronym> Search
+    Site</a> or the <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> shell search
+features.</p><li>Conversion scripts. <a
+    href="http://web.archive.org/web/20080822232114/http://perl.arix.com/cpan2rpm/"><tt
+        class="cmd">cpan2rpm</tt></a> helps <a
+    href="http://web.archive.org/web/20080822232114/http://web.archive.org/howto/rpm/perl/">convert
+    Perl modules into RedHat Package Manager (RPM) files</a>. The resulting <tt
+    class="file-glob">*.rpm</tt> packages can be installed via a <a
+    href="http://web.archive.org/web/20080822232114/http://web.archive.org/howto/yum/">local
+    Yellowdog Updater, Modified (YUM) server</a>. On Debian, try <tt
+    class="cmd">dh-make-perl --install --cpan
+    Module::Name</tt>.</li></ul><h2><a name="s2"><tt class="cmd">perl</tt>
+    Upgrade Bug</a></h2><p class="info">The first time <a
+href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+title="Documentation on the CPAN Perl module"><tt
+    class="perl-module">CPAN</tt></a> is invoked, it will run through a set of
+    questions, such as which <acronym title="Comprehensive Perl Archive
+        Network">CPAN</acronym> mirror site to use. Following the questions, <a
+        href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+        title="Documentation on the CPAN Perl module"><tt
+            class="perl-module">CPAN</tt></a> may recommend that you install <a
+        href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::CPAN"
+        title="Documentation on the Bundle::CPAN Perl module"><tt
+            class="perl-module">Bundle::CPAN</tt></a> or <a
+        href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::libnet"
+        title="Documentation on the Bundle::libnet Perl module"><tt
+            class="perl-module">Bundle::libnet</tt></a>.  Avoid installing
+    these bundles!</p><p class="info">Older versions of <a
+        href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+        title="Documentation on the CPAN Perl module"><tt
+            class="perl-module">CPAN</tt></a> have a bug whereby a new version
+    of <tt class="cmd">perl</tt> itself may be installed. To avoid this bug,
+    install the latest version of <a
+        href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+        title="Documentation on the CPAN Perl module"><tt
+            class="perl-module">CPAN</tt></a> first. Setting the <tt
+        class="code">FTP_PASSIVE=1</tt> environment variable avoids another
+    common problem where active File Transfer Protocol (FTP) connections are
+    blocked by a local firewall.</p><p class="data-shell"># <kbd>perl -MCPAN -e
+        '$ENV{FTP_PASSIVE} = 1; install CPAN'</kbd></p><p class="info">If
+    already in the <a
+        href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+        title="Documentation on the CPAN Perl module"><tt
+            class="perl-module">CPAN</tt></a> shell following the preferences
+    questions, use:</p><p class="data-shell">cpan&gt; <kbd>install
+     CPAN</kbd></p><p class="info">For reference, the bug is that <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::CPAN"
+     title="Documentation on the Bundle::CPAN Perl module"><tt
+         class="perl-module">Bundle::CPAN</tt></a> or <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::libnet"
+     title="Documentation on the Bundle::libnet Perl module"><tt
+         class="perl-module">Bundle::libnet</tt></a> may  list <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Data::Dumper"
+     title="Documentation on the Data::Dumper Perl module"><tt
+         class="perl-module">Data::Dumper</tt></a> as a dependency. <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Data::Dumper"
+     title="Documentation on the Data::Dumper Perl module"><tt
+         class="perl-module">Data::Dumper</tt></a> is a built-in <tt
+     class="cmd">perl</tt> module, so when old versions of <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+     title="Documentation on the CPAN Perl module"><tt
+         class="perl-module">CPAN</tt></a> lookup <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Data::Dumper"
+     title="Documentation on the Data::Dumper Perl module"><tt
+         class="perl-module">Data::Dumper</tt></a>, they find a new version of
+ <tt class="cmd">perl</tt> to install. This bug has been fixed in current
+ versions of <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+     title="Documentation on the CPAN Perl module"><tt
+         class="perl-module">CPAN</tt></a>.</p><h2><a name="s3">Active FTP
+         versus Firewalls</a></h2><p class="info">Network problems may prevent
+ access to <acronym title="Comprehensive Perl Archive Network">CPAN</acronym>
+ mirror sites. The chief problem will be utilities set to use active <acronym
+     title="File Transfer Protocol">FTP</acronym>, which most firewalls block.
+ Peruse <a
+     href="http://web.archive.org/web/20080822232114/http://slacksite.com/other/ftp.html">Active
+     FTP vs. Passive FTP, a Definitive Explanation</a> for more details. I
+ recommend enabling passive <acronym title="File Transfer
+     Protocol">FTP</acronym> by default, though this setting will need to be
+ done for a variety of utilities <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+     title="Documentation on the CPAN Perl module"><tt
+         class="perl-module">CPAN</tt></a> might run, such as <tt
+     class="cmd">wget</tt> or <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Net::FTP"
+     title="Documentation on the Net::FTP Perl module"><tt
+         class="perl-module">Net::FTP</tt></a>. Alternatives include disabling
+ the client firewall to allow active <acronym title="File Transfer
+     Protocol">FTP</acronym> connections back from the <acronym title="File
+     Transfer Protocol">FTP</acronym> server, or configuring a local <acronym
+     title="File Transfer Protocol">FTP</acronym> proxy.</p><p class="info">Set
+ the <tt class="code">FTP_PASSIVE</tt> environment variable before running <tt
+     class="cmd">cpan</tt>.</p><p class="data-shell"># <kbd>env FTP_PASSIVE=1
+     cpan -i Net::FTP</kbd></p><p class="info">During the install of the <tt
+     class="code">libnet</tt> distribution, enable passive <acronym title="File
+     Transfer Protocol">FTP</acronym>.</p><p class="data">…<br>Ah, I see you
+ already have installed libnet before.<br><br>Do you want to modify/update your
+ configuration (y|n) ? [no] <kbd class="input">y</kbd><br>…<br>Should all FTP
+ connections be passive (y|n) ? [no] <kbd class="input">y</kbd></p><p
+ class="info">If <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Net::FTP"
+     title="Documentation on the Net::FTP Perl module"><tt
+         class="perl-module">Net::FTP</tt></a> is already installed, edit the
+ <tt class="file">libnet.cfg</tt> configuration file to use passive <acronym
+     title="File Transfer Protocol">FTP</acronym>.</p><p class="data-shell">$
+ <kbd>perl -le 'for (@INC) { $_ .= "/".$ARGV[0]; print if -f }'
+     Net/libnet.cfg</kbd><br>/usr/local/lib/perl5/5.8.1/Net/libnet.cfg<br>$
+ <kbd>grep passive /usr/local/lib/perl5/5.8.1/Net/libnet.cfg</kbd><br>
+ 'ftp_int_passive' =&gt; 1,</p><p class="info">If <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Net::FTP"
+     title="Documentation on the Net::FTP Perl module"><tt
+         class="perl-module">Net::FTP</tt></a> does not work, or certain
+ utilities take too long to time out, consider the following options.</p><ul
+     class="list"><li>Disable <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Net::FTP"
+         title="Documentation on the Net::FTP Perl module"><tt
+             class="perl-module">Net::FTP</tt></a>.</li><p class="info">If <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Net::FTP"
+         title="Documentation on the Net::FTP Perl module"><tt
+             class="perl-module">Net::FTP</tt></a> does not work, try adding
+     the following line to the <tt class="file">CPAN/Config.pm</tt> preferences
+     file. More <a
+         href="http://web.archive.org/web/20080822232114/http://nntp.x.perl.org/group/perl.perl5.porters/73929">information
+         on <tt class="code">dontload_hash</tt> posted to the <tt
+             class="code">perl.perl5.porters</tt> newsgroup</a>.  Also consider
+     installing <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/LWP::UserAgent"
+         title="Documentation on the LWP::UserAgent Perl module"><tt
+             class="perl-module">LWP::UserAgent</tt></a>, which is more capable
+     than <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Net::FTP"
+         title="Documentation on the Net::FTP Perl module"><tt
+             class="perl-module">Net::FTP</tt></a>.</p><p
+     class="data">'dontload_hash' =&gt; { 'Net::FTP' =&gt; 1 },</p><li>Disable
+     utilities that do not work</li><p class="info">To reconfigure <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+         title="Documentation on the CPAN Perl module"><tt
+             class="perl-module">CPAN</tt></a> to not call certain utilities,
+     replace the path to the utility with a single space.</p><p
+     class="data-shell">$ <kbd>grep ncftp ~/.cpan/CPAN/MyConfig.pm</kbd><br>
+     'ncftp' =&gt; q[ ],<br>  'ncftpget' =&gt; q[ ],</p></ul><h2><a
+         name="s4">Preferences Questions</a></h2><p class="info"><a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+     title="Documentation on the CPAN Perl module"><tt
+         class="perl-module">CPAN</tt></a> will ask for preferences settings
+ any time the <tt class="file">Config.pm</tt> preferences file does not exist
+ or is out of date. The default choice should be acceptable for most.</p><ul
+     class="list"><li>CPAN build and cache directory? [<tt
+         class="file">/root/.cpan</tt>]</li><p class="info">I use <tt
+         class="file">/var/spool/cpan</tt>, as the root filesystem tends to be
+     small on my systems, and the spool area makes more sense to
+     me.</p><li>Policy on building prerequisites (follow, ask or ignore)?
+     [ask]</li><p class="info">Leave this setting set to <kbd
+         class="input">ask</kbd> when upgrading <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+         title="Documentation on the CPAN Perl module"><tt
+             class="perl-module">CPAN</tt></a> the first time, to prevent
+     dependency lookups automatically installing the latest stable <tt
+         class="cmd">perl</tt>. With <kbd class="input">ask</kbd> set, one can
+     say no to queries that ask to install <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::CPAN"
+         title="Documentation on the Bundle::CPAN Perl module"><tt
+             class="perl-module">Bundle::CPAN</tt></a>, <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::libnet"
+         title="Documentation on the Bundle::libnet Perl module"><tt
+             class="perl-module">Bundle::libnet</tt></a>, or <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Data::Dumper"
+         title="Documentation on the Data::Dumper Perl module"><tt
+             class="perl-module">Data::Dumper</tt></a> until the latest version
+     of <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+         title="Documentation on the CPAN Perl module"><tt
+             class="perl-module">CPAN</tt></a> is installed.</p><li>Where is
+     your <tt class="file-glob">*</tt> program? [<tt
+         class="file-glob">*</tt>]</li><p class="info">This series of questions
+     lets one configure (or disable) paths to various utilities <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+         title="Documentation on the CPAN Perl module"><tt
+             class="perl-module">CPAN</tt></a> may use to download or unpack
+     modules. It is safe to leave entries blank, as long as <a
+         href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+         title="Documentation on the CPAN Perl module"><tt
+             class="perl-module">CPAN</tt></a> is left with at least one
+     working program that can download modules and another to expand
+     them.</p><p class="info">To disable a particular utility, use a single
+     space instead of a file path.</p><li>Parameters for the '<tt
+         class="cmd">make install</tt>' command?</li><p class="info">Set this
+     option to include <tt class="code">UNINST=1</tt> if installing as root.
+     This properly cleans out files from older versions of a module being
+     installed.  For user-specific setup, I never set the <tt
+         class="code">UNINST</tt> option, to avoid remove warnings of
+     unremovable system files.</p><li>Now we need to know where your favorite
+     CPAN sites are located.</li><p class="info">Choose several <acronym
+         title="Comprehensive Perl Archive Network">CPAN</acronym> mirror
+     sites.  Use <tt class="cmd">traceroute</tt> or bandwidth testing tools to
+     determine which mirrors are best for your system. Or, <a
+         href="http://web.archive.org/web/20080822232114/http://cpan.org/misc/cpan-faq.html#How_mirror_CPAN">mirror
+         <acronym title="Comprehensive Perl Archive Network">CPAN</acronym> to
+         a local system</a>.</p><p class="info">The mirrors list may need to be
+updated periodically, if a previous mirror site stops hosting <acronym
+    title="Comprehensive Perl Archive Network">CPAN</acronym>. Symptoms of this
+will be slow downloads as <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> fails though the mirror
+list.</p></ul><h2><a name="s5">Reconfiguring CPAN</a></h2><p class="info">To
+alter the <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> preferences, either edit the <tt
+    class="file">Config.pm</tt> configuration file manually, or use the
+following command in the CPAN shell.</p><p class="data-shell">cpan&gt; <kbd>o
+    conf init</kbd></p><p class="info">The <tt class="cmd-arg">init</tt>
+configuration option runs through all the configuration questions, which may be
+time consuming.  For example, other <tt class="cmd">o conf</tt> commands can be
+used to list, remove, and add mirror sites, and then to save the changes to
+disk.</p><p class="data-shell">cpan&gt; <kbd>o conf urllist</kbd><br>
+urllist<br>ftp://ftp.kernel.org/pub/CPAN/<br>Type 'o conf' to view
+configuration edit options<br><br><br>cpan&gt; <kbd>o conf urllist
+    shift</kbd><br><br>cpan&gt; <kbd>o conf urllist push
+    ftp://ftp-mirror.internap.com/pub/CPAN/</kbd><br><br>cpan&gt; <kbd>o conf
+    urllist</kbd><br>    urllist<br>
+
+   <!-- base
+   href="http://sial.org.wstub.archive.org/howto/perl/life-with-cpan/" -->
+
+ftp://ftp-mirror.internap.com/pub/CPAN/
+        <br>Type 'o conf' to view configuration edit
+        options<br><br><br>cpan&gt; <kbd>o conf commit</kbd><br>commit: wrote
+        /usr/local/lib/perl5/5.6.1/CPAN/Config.pm<br></p><p class="info">To
+        manually edit the existing configuration file, either open the
+        user-specific <tt class="file">~/.cpan/CPAN/MyConfig.pm</tt> directly,
+        or locate the system-wide configuration file (stored somewhere under
+        the <tt class="cmd">perl</tt> <tt class="code">@INC</tt> path list) to
+        edit with the following command.</p><p class="data-shell">$ <kbd>perl
+            -le 'for (@INC) { $_ .= $ARGV[0]; print if -f }'
+            /CPAN/Config.pm</kbd><br>/System/Library/Perl/CPAN/Config.pm</p><h2><a
+                name="s6">Usage Tips</a></h2><div class="subsection"><a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.1">Invocation</a>
+            | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.2"><tt
+                    class="code">autobundle</tt></a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.3">Old
+                Modules</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.4">Mac
+                OS X</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.5">Manual
+                Build</a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.6"><tt
+                    class="cmd">sudo</tt></a> | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.7">Uninstalling</a>
+            | <a
+                href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/#s6.8">Upgrading</a></div><p
+        class="info">Once the latest version of <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> has been installed, it is
+        safe to install <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Bundle::CPAN"
+            title="Documentation on the Bundle::CPAN Perl module"><tt
+                class="perl-module">Bundle::CPAN</tt></a> (as older versions of
+        <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> would attempt to upgrade <tt
+            class="cmd">perl</tt> itself). If already in the <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> shell, run <tt
+            class="cmd">reload cpan</tt> first.</p><p
+        class="data-shell">cpan&gt; <kbd>reload cpan</kbd><br>…<br>cpan&gt;
+        <kbd>install Bundle::CPAN</kbd></p><p class="info">The following
+        sections outline various uses and caveats with <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a>.</p><h3><a
+                name="s6.1">Invocation</a></h3><p class="info">The latest
+        version of <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> should install a <tt
+            class="cmd">cpan</tt> command somewhere on the system, which is
+        easier to use than the traditional means of calling <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a>.  With an up to date version
+        of <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a>, the following sets of
+        commands are equivalent.  Hereafter, the shorter <tt
+            class="cmd">cpan</tt> method will be used.</p><p
+        class="data-shell"><span class="comment"># enter the CPAN
+            shell</span><br># <kbd>perl -MCPAN -e shell</kbd><br>#
+        <kbd>cpan</kbd><br><br><span class="comment"># install the Acme::Bleach
+            module</span><br># <kbd>perl -MCPAN -e install
+            Acme::Bleach</kbd><br># <kbd>cpan -i Acme::Bleach</kbd></p><p
+        class="note">Depending on the shell in question, one may need to issue
+        the <tt class="cmd">hash -r</tt> or <tt class="cmd">rehash</tt> command
+        to make the new <tt class="cmd">cpan</tt> command appear in the search
+        path after the latest <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> is installed.  Consult your
+        shell’s documentation for more information on whether this is
+        required.</p><h3><a name="s6.2"><tt
+                    class="code">autobundle</tt></a></h3><p class="info">The <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> <tt
+            class="cmd">autobundle</tt> can be used to ease <tt
+            class="cmd">perl</tt> upgrades, by creating a special bundle
+        containing all the installed modules of the current version of <tt
+            class="cmd">perl</tt>.  This bundle can then be installed once the
+        new version of <tt class="cmd">perl</tt> is installed.</p><p
+        class="data-shell">cpan&gt; <kbd>autobundle</kbd><br>…<br><br>Wrote
+        bundle file<br>
+        /var/spool/cpan/Bundle/Snapshot_2003_10_01_00.pm<br><br><br>cpan&gt;
+        <kbd>quit</kbd><br><br><span class="comment"># upgrade perl here
+            …</span><br><br># <kbd>cpan</kbd><br>cpan&gt; <kbd>install
+            Bundle::Snapshot_2003_10_01_00</kbd></p><p class="info">Autobundle
+        appears to install the modules in alphabetical order; setting the <tt
+            class="code">prerequisites_policy</tt> policy to <tt
+            class="code">ask</tt> should help. Multiple install runs may be
+        needed to install everything properly. Module build failures will lead
+        to much recursion on the part of <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a>.</p><h3><a name="s6.3">Old
+                Modules</a></h3><p class="info">Some modules found by <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a> are out of date, and will not
+        compile. An updated module may be available on <acronym
+            title="Comprehensive Perl Archive Network">CPAN</acronym>, just not
+        linked to as “current” by <a
+            href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+            title="Documentation on the CPAN Perl module"><tt
+                class="perl-module">CPAN</tt></a>. Modules known to have this
+        problem include the following. The links below should point to the
+        current version of the modules.</p><ul class="list"><li> <a
+                href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Mail::Cclient"
+                title="Documentation on the Mail::Cclient Perl module"><tt
+                    class="perl-module">Mail::Cclient</tt></a>
+            <br>&nbsp;</li><li> <a
+                href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/OpenGL"
+                title="Documentation on the OpenGL Perl module"><tt
+                    class="perl-module">OpenGL</tt></a> </li></ul><h3><a
+                name="s6.4">Mac OS X</a></h3><p class="info"><a
+            href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/macosx/">Problems
+            with <acronym title="Comprehensive Perl Archive
+                Network">CPAN</acronym> on Mac OS X</a>.</p><h3><a
+              name="s6.5">Manual Build</a></h3><p class="info">On occasion one
+      may need to manually build or test a module, or consult the module
+      directory to read the documentation on any special needs the module may
+      have.  This can be done with the <a
+          href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> shell <tt class="cmd">look</tt>
+command.</p><p class="data-shell">cpan&gt; <kbd>look
+    Net::SSLeay</kbd><br>…<br>Working directory is
+/var/spool/cpan/build/Net_SSLeay.pm-1.25<br># <kbd>exit</kbd><br>cpan&gt;
+<kbd>&nbsp;</kbd></p><h3><a name="s6.6"><tt class="cmd">sudo</tt></a></h3><p
+class="info">If <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> is installed in your home directory,
+the system-wide <tt class="cmd">cpan</tt> may cause problems when run via <a
+    href="http://web.archive.org/web/20080822232114/http://www.freebsd.org/cgi/man.cgi?query=sudo&amp;sektion=8&amp;manpath=OpenBSD"
+    title="FreeBSD man page search for sudo, section 8 on OpenBSD"><tt
+        class="man">sudo(8)</tt></a>, as by default <tt class="cmd">sudo</tt>
+will invoke <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> using the <tt
+    class="file">~/.cpan/CPAN/MyConfig.pm</tt> configuration, but as <tt
+    class="code">root</tt>, which causes no end of trouble.  To avoid this
+problem, reset the <tt class="code">HOME</tt> environment variable with the <tt
+    class="cmd-arg">-H</tt> option to <tt class="cmd">sudo</tt> when invoking
+<a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a>.</p><p class="data-shell">$ <kbd>sudo
+    -H cpan</kbd></p><h3><a name="s6.7">Uninstalling</a></h3><p class="info"><a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> itself offers no uninstall method.
+Several of the alternatives to <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> do, such as <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPANPLUS"
+    title="Documentation on the CPANPLUS Perl module"><tt
+        class="perl-module">CPANPLUS</tt></a> or vendor package/port systems.
+If the module has been fully installed along with a <tt
+    class="file">.packlist</tt> file for the module, the <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/ExtUtils::Packlist"
+    title="Documentation on the ExtUtils::Packlist Perl module"><tt
+        class="perl-module">ExtUtils::Packlist</tt></a> perl module
+documentation includes code for a <tt class="cmd">modrm</tt> command to cleanly
+remove an installed module.</p><p class="note">Modules built with other tools,
+such as <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/Module::Build"
+    title="Documentation on the Module::Build Perl module"><tt
+        class="perl-module">Module::Build</tt></a>, may not write out a <tt
+    class="file">.packlist</tt> file for use by <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/ExtUtils::Packlist"
+    title="Documentation on the ExtUtils::Packlist Perl module"><tt
+        class="perl-module">ExtUtils::Packlist</tt></a>.</p><h3><a
+        name="s6.8">Upgrading</a></h3><p class="info">How to upgrade all the
+modules on the system like <tt class="cmd">apt-get</tt> is actually documented
+in the <a
+    href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/CPAN"
+    title="Documentation on the CPAN Perl module"><tt
+        class="perl-module">CPAN</tt></a> manual; however, the question comes
+up often enough that I answer it here as well.</p><p class="data-shell"><span
+    class="comment"># install everything that is outdated on my
+    disk:</span><br># <kbd>perl -MCPAN -e
+    'CPAN::Shell-&gt;install(CPAN::Shell-&gt;r)'</kbd></p><p
+class="info">Problems with this include new versions of modules that may break
+old module behavior, or various modules that cannot be upgraded due to build
+failures or system incompatibilities. Best to subject a test system to this
+sort of mass module
+ upgrade before attempting it on a production system.</p><h2><a
+         name="s7">Debugging Module Build Problems</a></h2><p class="info">See
+ the <a
+     href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/debug/">Debugging
+     CPAN Build Problems</a> guide for more information.</p><h2><a
+         name="s8">Using CPAN with a non-root account</a></h2><p
+ class="info"><a
+     href="http://web.archive.org/web/20080822232114/http://web.archive.org/web/20080822232114/http://sial.org/howto/perl/life-with-cpan/non-root/">Notes
+     on using CPAN with a non-root account</a>, or installing Perl modules to
+ directories besides the default system areas, such as a software depot or
+ under <tt class="code">$HOME</tt>. Consider also <a
+     href="http://web.archive.org/web/20080822232114/http://search.cpan.org/perldoc/local::lib"
+     title="Documentation on the local::lib Perl module"><tt
+         class="perl-module">local::lib</tt></a> to bootsrap custom Perl module
+ installation directories.</p><div class="footer"><a
+         href="http://web.archive.org/web/20080822232114/http://web.archive.org/"><img
+         style="float: right; margin-top: 1em; margin-right: 1em;
+         margin-bottom: 5em;" src="Life%20with%20CPAN_files/sial.html"
+         width="64" height="64"></a><p><a
+         href="http://web.archive.org/web/20080822232114/http://web.archive.org/contact/">Questions
+         or comments about this page?</a> Current ruminations available on <a
+         href="http://web.archive.org/web/20080822232114/http://web.archive.org/blog/">my
+         blog</a>.  </p><p><tt>$Id: index.xml,v 1.46 2007/12/11 03:04:58 jmates
+         Exp $</tt></p></div></div> </body><!-- SOME META URL'S ON THIS PAGE
+         HAVE BEEN REWRITTEN BY THE WAYBACK MACHINE OF THE INTERNET ARCHIVE IN
+         ORDER TO PRESERVE THE TEMPORAL INTEGRITY OF THE SESSION. --><!-- SOME
+         LINK HREF'S ON THIS PAGE HAVE BEEN REWRITTEN BY THE WAYBACK MACHINE OF
+         THE INTERNET ARCHIVE IN ORDER TO PRESERVE THE TEMPORAL INTEGRITY OF
+         THE SESSION. --></html>

src/topics/cpan/life-with-cpan/non-root/default.css

+/* $Id: default.css,v 1.47 2006/07/10 04:24:27 jmates Exp $
+
+The author disclaims all copyrights and releases this document into
+the public domain.
+
+*/
+
+body
+{
+	color: black;
+	background-color: white;
+	font-family: "Verdana", sans-serif;
+	margin-left: 0px;
+	margin-top: 0px;
+	margin-right: 0px;
+	margin-bottom: 0px;
+}
+
+.bodymain
+{
+	padding-left: 0.5em;
+	padding-right: 0.5em;
+}
+
+a:link
+{
+	color: #804000;
+	text-decoration: underline;
+}
+
+a:hover { text-decoration: none; }
+span:hover { text-decoration: none; }
+a:visited { color: #333; }
+
+.navlinks
+{
+	font-size: smaller;
+	font-weight: normal;
+	padding-top: 0.75em;
+	padding-right: 0.75em;
+	line-height: 2em;
+	float: right;
+	text-align: right;
+}
+
+.header
+{
+	background-color: #804000;
+	font-family: "Georgia", serif;
+	color: white;
+	border-bottom: thin solid black;
+	border-top: thin solid #804000;
+}
+
+.header a { color: white; }
+
+h1, h2, h3, h4, h5, h6
+{
+	font-style: normal;
+	font-weight: bold;
+}
+
+h1
+{
+	color: white;
+	/*	padding-top: 0.5em; */
+	padding-left: 0.5em;
+	font-size: xx-large;
+	line-height: normal;
+	text-shadow: #333 0 2px 3px;
+}
+
+h2 { font-size: x-large; }
+h3, h4, h5, h6 { font-size: large; }
+
+h2, h3, h4, h5, h6
+{
+	margin-top: 1em;
+	margin-bottom: 0em;
+}
+
+ol, ul
+{
+	padding: none;
+	max-width: 50em;
+}
+
+li
+{
+	padding-bottom: 0.66em;
+	padding-top: 0.33em;
+}
+
+.info, .note, .warn
+{
+	line-height: 1.5em;
+	padding: 0.5em;
+	max-width: 50em;
+}
+
+em
+{
+	font-weight: bold;
+	font-style: normal;
+}
+
+/* switchup <em> under shell examples so different from <input> and shell commands */
+.data-shell em
+{
+	font-weight: normal;
+	font-style: italic;
+	color: #000080;
+}
+
+.data em
+{
+	font-weight: normal;
+	font-style: italic;
+	color: #000080;
+}
+
+.subsection
+{
+	font-weight: bold;
+	padding-left: 0.5em;
+	padding-right: 0.5em;
+	line-height: 1.5em;
+}
+
+.warn
+{
+	border-color: red;
+	border-width: thin;
+	border-style: dashed;
+}
+
+.rbr
+{
+	color: #339900;
+	font-size: 75%;
+}
+
+/* data and similar require monospaced font that can be set bold/italic 
+without issues-- Courier for sure, so try it first */
+
+.data
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	background-color: #efefef;
+	padding: 0.5em;
+	white-space: pre;
+	border-color: #999;
+	border-width: 1px;
+	border-style: solid;
+	clear: both;
+	max-width: 50em;
+}
+
+.data-shell
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	background-color: #efefef;
+	padding: 0.5em;
+	white-space: pre;
+	border-color: #999;
+	border-width: 1px;
+	border-style: solid;
+	clear: both;
+	max-width: 50em;
+}
+
+/* for outdated stuff users need to see for reference */
+.old-line { text-decoration: line-through; }
+
+/* footer tag, goes at bottom of document */
+.footer
+{
+	clear: both;
+	padding: 0.5em;
+	margin-top: 2em;
+	padding-bottom: 200px;
+	border-top: 1px solid gray;
+	/*	font-family: "Courier", "Bitstream Vera Sans Mono", monospace; */
+	/*	font-size: smaller; */
+}
+
+/* comments in <data> blocks */
+.comment { font-style: italic; }
+
+/* stuff that a human would type in, presumably... */
+.input { font-weight: bold; }
+.shell { font-weight: bold; }
+kbd { font-weight: bold; }
+
+/* computer data markup */
+.code
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.file
+{
+	color: #007a00;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.file-glob
+{
+	color: #007a00;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.cmd
+{
+	color: #606;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.cmd-arg
+{
+	color: #606;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.gui
+{
+	color: #C30;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	font-size: larger;
+}
+
+.host
+{
+	color: #003366;
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.man
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.perl-pod
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.perl-func
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.perl-module
+{
+	font-size: larger;
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+}
+
+.book { text-decoration: underline; }
+
+/* KLUGE following is for the pastebot */
+pre
+{
+	font-family: "Courier", "Bitstream Vera Sans Mono", monospace;
+	background-color: white;
+	padding-top: 0.5em;
+	padding-left: 0.5em;
+	padding-bottom: 0.5em;
+	white-space: pre;
+	border-color: #B46116;
+	border-width: 1px;
+	border-style: dashed;
+	line-height: 1.3em;
+	margin-left: 0.5em;
+	margin-right: 0.5em;
+	clear: both;
+}
+
+.pd { color: #404080; }
+
+/* pod-text */
+.c { color: #404080; }
+
+/* comment */
+.cm { color: #800097; }
+
+/* comma */
+.co { color: #800097; }
+
+/* colon */
+.h { color: #804848; }
+
+/* here-doc-target */
+.hh { color: #800000; }
+
+/* here-doc-text */
+.q { color: #800000; }
+
+/* quote */
+.v { color: #800000; }
+
+/* v-string */
+.i { color: #008080; }
+
+/* identifier */
+.k { color: #0000FF; }
+
+/* keyword */
+.n { color: #E02020; }
+
+/* numeric */
+.m { color: #C00080; }
+
+/* subroutine */
+.j { color: #C00080; }
+
+/* label */
+.w { color: #C00080; }
+
+/* bareword */
+.p { color: #800080; }
+
+/* paren */
+.s { color: #800080; }
+
+/* structure */
+.sc { color: #800080; }
+
+/* semicolon */
+.pu { color: #C44800; }
+
+/* punctuation */

src/topics/cpan/life-with-cpan/non-root/index.html

+<!--?xml version="1.0"?-->
+<html lang="en-US"><head xmlns:xlink="http://www.w3.org/1999/xlink">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Using CPAN with a non-root account</title><link rel="stylesheet" type="text/css" href="Using%20CPAN%20with%20a%20non-root%20account_files/default.css"><meta name="MSSmartTagsPreventParsing" content="TRUE"></head><body xmlns:xlink="http://www.w3.org/1999/xlink"><div class="header"><div class="navlinks"><a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/">Parent Page</a></div><h1><a name="s">Using CPAN with a non-root account</a></h1></div><div class="subsection"><a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/non-root/#s2">Configuration</a> | <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/non-root/#s3">Customize <tt class="code">@INC</tt></a></div><div class="bodymain"><p class="info"><a href="http://web.archive.org/web/20080621084008/http://search.cpan.org/perldoc/CPAN" title="Documentation on the CPAN Perl module"><tt class="perl-module">CPAN</tt></a>
+ can be configured differently for each user, and can install modules to
+ custom areas on a system. The sample configuration below installs 
+modules under <tt class="file">~/lib/perl5</tt>, man pages under <tt class="file">~/share/man</tt>
+ and (hopefully) everything else under the home directory. This approach
+ also works for individual software trees required for special 
+applications that run as non-privileged accounts: simply adjust the 
+installation paths to suit the software depot in question.</p><p class="info">Consult <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/">Life with CPAN</a> for more information about the <a href="http://web.archive.org/web/20080621084008/http://www.cpan.org/">Comprehensive Perl Archive Network (CPAN)</a>. Consider also <a href="http://web.archive.org/web/20080621084008/http://search.cpan.org/perldoc/local::lib" title="Documentation on the local::lib Perl module"><tt class="perl-module">local::lib</tt></a> to bootsrap custom Perl module installation directories.</p><h2><a name="s2">Configuration</a></h2><ol class="enum"><li>Download the sample <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/MyConfig.pm"><tt class="file">MyConfig.pm</tt></a>, and move it to <tt class="file">~/.cpan/CPAN/MyConfig.pm</tt>.</li><p class="data-shell">$ <kbd>mkdir -p ~/.cpan/CPAN</kbd><br>$ <kbd>mv MyConfig.pm ~/.cpan/CPAN</kbd></p><li>Customize the <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/MyConfig.pm"><tt class="file">MyConfig.pm</tt></a> file.<br>&nbsp;</li><ol class="enum"><li>Change all occurences of <tt class="code">HOMEDIRFIX</tt> to your home directory, for example <tt class="file">/home/username</tt>.<br>&nbsp;</li><li>Review the <tt class="code">makepl_arg</tt> arguments. For more information on the arguments, see <a href="http://web.archive.org/web/20080621084008/http://search.cpan.org/perldoc/ExtUtils::MakeMaker" title="Documentation on the ExtUtils::MakeMaker Perl module"><tt class="perl-module">ExtUtils::MakeMaker</tt></a>.<br>&nbsp;</li><li>Check the paths to various commands (e.g. <tt class="cmd">wget</tt>), proxy settings for your environment, the <tt class="code">urllist</tt>, and the shell.</li><p class="note">Be sure to remove the <tt class="code">UNINST=1</tt> option on <tt class="code">make_install_arg</tt> for any non-system-wide configuration as otherwise <a href="http://web.archive.org/web/20080621084008/http://search.cpan.org/perldoc/CPAN" title="Documentation on the CPAN Perl module"><tt class="perl-module">CPAN</tt></a> will attempt to remove “shadowing” versions of the module installed for the site <tt class="cmd">perl</tt>, leading to error messages involving <tt class="code">forceunlink</tt>.</p><li>Test <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/web/20080621084008/http://sial.org/howto/perl/life-with-cpan/MyConfig.pm"><tt class="file">MyConfig.pm</tt></a> for problems.</li><p class="data-shell">$ <kbd>perl -c MyConfig.pm</kbd><br>MyConfig.pm syntax OK</p></ol><li>See below for the required <tt class="code">PERL5LIB</tt> settings to customize <tt class="code">@INC</tt>,
+ if installing modules that depend on previously installed modules. Be 
+sure to load the changes into your shell environment before running <tt class="cmd">cpan</tt>, or to close and reopen your shell.<br>&nbsp;</li><li>Test the new configuration.</li><p class="info">To ensure <tt class="file">Makefile</tt> are being generated with the proper paths, <tt class="cmd">make</tt> a module from the <a href="http://web.archive.org/web/20080621084008/http://search.cpan.org/perldoc/CPAN" title="Documentation on the CPAN Perl module"><tt class="perl-module">CPAN</tt></a> shell, then review at the paths set in the resulting <tt class="file">Makefile</tt>.</p><p class="data-shell">cpan&gt; <kbd>make Text::Autoformat</kbd><br>…<br>cpan&gt; <kbd>look Text::Autoformat</kbd><br>…<br>$ <kbd>less Makefile</kbd><br>$ <kbd>grep /home/username Makefile</kbd><br>SITELIBEXP = /home/username/lib/perl5<br>PREFIX = /home/username/<br>INSTALLPRIVLIB = /home/username/lib/perl5<br>INSTALLSITELIB = /home/username/lib/perl5<br>INSTALLVENDORLIB = /home/username/lib/perl5<br>INSTALLARCHLIB = /home/username/lib/perl5/darwin-thread-multi-2level<br>INSTALLSITEARCH = /home/username/lib/perl5/darwin-thread-multi-2level<br>INSTALLVENDORARCH = /home/username/lib/perl5/darwin-thread-multi-2level<br>INSTALLMAN1DIR = /home/username/share/man/man1<br>INSTALLSITEMAN1DIR = /home/username/share/man/man1<br>INSTALLMAN3DIR = /home/username/share/man/man3<br>INSTALLSITEMAN3DIR = /home/username/share/man/man3<br>$ <kbd>exit</kbd></p><p class="info">If the <tt class="file">Makefile</tt> has the wrong path set for any variables, update the <tt class="code">makepl_arg</tt> arguments in <tt class="file">MyConfig.pm</tt> to set these variables to install to the proper custom location.</p></ol><h2><a name="s3">Customize <tt class="code">@INC</tt></a></h2><p class="info">Perl must be made aware of the custom <tt class="file">/home/username/lib/perl5</tt> library directory. Perl uses the <tt class="code">@INC</tt> variable to hold library directories, though this varible must not be edited directly. For more information on <tt class="code">@INC</tt>, consult <a href="http://web.archive.org/web/20080621084008/http://perldoc.perl.org/perlvar.html" title="Perl programmers reference for perlvar"><tt class="perl-pod">perlvar</tt></a> (overview of variable), <a href="http://web.archive.org/web/20080621084008/http://perldoc.perl.org/perlrun.html" title="Perl programmers reference for perlrun"><tt class="perl-pod">perlrun</tt></a> (command line arguments and environment variables), or <a href="http://web.archive.org/web/20080621084008/http://search.cpan.org/perldoc/lib" title="Documentation on the lib Perl module"><tt class="perl-module">lib</tt></a> (<tt class="code">use lib</tt> pragma). Under a Bourne shell (such as <tt class="cmd">zsh</tt>), use the following to set <tt class="code">PERL5LIB</tt> and <tt class="code">MANPATH</tt> environment variables.</p><p class="data">if [ -d $HOME/lib/perl5 ]; then<br>  PERL5LIB=${PERL5LIB:+$PERL5LIB:}$HOME/lib/perl5<br>fi<br>MANPATH=${MANPATH:+$MANPATH:}$HOME/share/man<br>export MANPATH PERL5LIB</p><p class="info">Code running under Taint mode may require the <a href="http://web.archive.org/web/20080621084008/http://perldoc.perl.org/lib.html"><tt class="code">use lib</tt></a> statement: see <a href="http://web.archive.org/web/20080621084008/http://perldoc.perl.org/perlsec.html" title="Perl programmers reference for perlsec"><tt class="perl-pod">perlsec</tt></a> for details. Other applications may include different methods of setting custom environment setting, such as <tt class="code">SetEnv</tt> under <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/howto/apache/">Apache</a>:</p><p class="data">SetEnv PERL5LIB /home/username/lib/perl5:/sw/lib/perl5</p><div class="footer"><a href="http://web.archive.org/web/20080621084008/http://web.archive.org/"><img style="float: right; margin-top: 1em; margin-right: 1em; margin-bottom: 5em;" src="Using%20CPAN%20with%20a%20non-root%20account_files/sial.html" width="64" height="64"></a><p>The author disclaims all copyrights and releases this document into the public domain.</p><p><a href="http://web.archive.org/web/20080621084008/http://web.archive.org/contact/">Questions or comments about this page?</a> Current ruminations available on <a href="http://web.archive.org/web/20080621084008/http://web.archive.org/blog/">my blog</a>
+
+   <!-- base href="http://sial.org.wstub.archive.org/howto/perl/life-with-cpan/non-root/" -->
+
+.
+      </p><p><tt>$Id: index.xml,v 1.6 2007/12/11 03:05:00 jmates Exp $</tt></p></div></div>
+
+
+
+
+
+
+<script language="Javascript">
+<!--
+
+// FILE ARCHIVED ON 20080621084008 AND RETRIEVED FROM THE
+// INTERNET ARCHIVE ON 20101121191648.
+// JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
+// ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
+// SECTION 108(a)(3)).
+
+   var sWayBackCGI = "http://web.archive.org/web/20080621084008/";
+
+   function xResolveUrl(url) {
+      var image = new Image();
+      image.src = url;
+      return image.src;
+   }
+   function xLateUrl(aCollection, sProp) {
+      var i = 0;
+      for(i = 0; i < aCollection.length; i++) {
+         var url = aCollection[i][sProp];         if (typeof(url) == "string") { 
+          if (url.indexOf("mailto:") == -1 &&
+             url.indexOf("javascript:") == -1
+             && url.length > 0) {
+            if(url.indexOf("http") != 0) {
+                url = xResolveUrl(url);
+            }
+            url = url.replace('.wstub.archive.org','');
+            aCollection[i][sProp] = sWayBackCGI + url;
+         }
+         }
+      }
+   }
+
+   xLateUrl(document.getElementsByTagName("IMG"),"src");
+   xLateUrl(document.getElementsByTagName("A"),"href");
+   xLateUrl(document.getElementsByTagName("AREA"),"href");
+   xLateUrl(document.getElementsByTagName("OBJECT"),"codebase");
+   xLateUrl(document.getElementsByTagName("OBJECT"),"data");
+   xLateUrl(document.getElementsByTagName("APPLET"),"codebase");
+   xLateUrl(document.getElementsByTagName("APPLET"),"archive");
+   xLateUrl(document.getElementsByTagName("EMBED"),"src");
+   xLateUrl(document.getElementsByTagName("BODY"),"background");
+   xLateUrl(document.getElementsByTagName("TD"),"background");
+   xLateUrl(document.getElementsByTagName("INPUT"),"src");
+   var forms = document.getElementsByTagName("FORM");
+   if (forms) {
+       var j = 0;
+       for (j = 0; j < forms.length; j++) {
+              f = forms[j];
+              if (typeof(f.action)  == "string") {
+                 if(typeof(f.method)  == "string") {
+                     if(typeof(f.method) != "post") {
+                        f.action = sWayBackCGI + f.action;
+                     }
+                  }
+              }
+        }
+    }
+
+
+//-->
+</script>
+
+</body><!-- SOME META URL'S ON THIS PAGE HAVE BEEN REWRITTEN BY THE WAYBACK MACHINE
+OF THE INTERNET ARCHIVE IN ORDER TO PRESERVE THE TEMPORAL INTEGRITY OF THE SESSION. --><!-- SOME LINK HREF'S ON THIS PAGE HAVE BEEN REWRITTEN BY THE WAYBACK MACHINE
+OF THE INTERNET ARCHIVE IN ORDER TO PRESERVE THE TEMPORAL INTEGRITY OF THE SESSION. --></html>