It has been a while since How to Install a CPAN Perl Module and things have changed a little bit. The qpsmtpd Download page recommends running
# perl -MCPAN -e shell
This will again go through a configuration wizard, but now you have to answer 'no' to get the full run-down:
CPAN is the world-wide archive of perl resources. It consists of about 300 sites that all replicate the same contents 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, lots of things have to be configured. Fortunately, most of them can be determined automatically. If you prefer the automatic configuration, answer 'yes' below. If you prefer to enter a dialog instead, you can answer 'no' to this question and I'll let you configure in small steps one thing after the other. (Note: you can revisit this dialog anytime later by typing 'o conf init' at the cpan prompt.) Would you like me to configure as much as possible automatically? [yes] no
We accept all the defaults anyway...
The following questions are intended to help you with the configuration. The CPAN module needs a directory of its own to cache important index files and maybe keep a temporary mirror of CPAN files. This may be a site-wide or a personal directory. First of all, I'd like to create this directory. Where? cpan_home CPAN build and cache directory? [/root/.cpan] Unless you are accessing the CPAN on your filesystem via a file: URL, CPAN.pm needs to keep the source files it downloads somewhere. Please supply a directory where the downloaded files are to be kept. keep_source_where Download target directory? [/root/.cpan/sources] build_dir Directory where the build process takes place? [/root/.cpan/build] Until version 1.88 CPAN.pm never trusted the contents of the build_dir directory between sessions. Since 1.88_58 CPAN.pm has a YAML-based mechanism that makes it possible to share the contents of the build_dir/ directory between different sessions with the same version of perl. People who prefer to test things several days before installing will like this feature because it safes a lot of time. If you say yes to the following question, CPAN will try to store enough information about the build process so that it can pick up in future sessions at the same state of affairs as it left a previous session. build_dir_reuse Store and re-use state information about distributions between CPAN.pm sessions? [no] CPAN.pm can store customized build environments based on regular expressions for distribution names. These are YAML files where the default options for CPAN.pm and the environment can be overridden and dialog sequences can be stored that can later be executed by an Expect.pm object. The CPAN.pm distribution comes with some prefab YAML files that cover sample distributions that can be used as blueprints to store one own prefs. Please check out the distroprefs/ directory of the CPAN.pm distribution to get a quick start into the prefs system. prefs_dir Directory where to store default options/environment/dialogs for building modules that need some customization? [/root/.cpan/prefs] Normally CPAN.pm keeps config variables in memory and changes need to be saved in a separate 'o conf commit' command to make them permanent between sessions. If you set the 'auto_commit' option to true, changes to a config variable are always automatically committed to disk. auto_commit Always commit changes to config variables to disk? [no] CPAN.pm can limit the size of the disk area for keeping the build directories with all the intermediate files. build_cache Cache size for build directory (in MB)? [100] The CPAN indexes are usually rebuilt once or twice per hour, but the typical CPAN mirror mirrors only once or twice per day. Depending on the quality of your mirror and your desire to be on the bleeding edge, you may want to set the following value to more or less than one day (which is the default). It determines after how many days CPAN.pm downloads new indexes. index_expire Let the index expire after how many days? [1] By default, each time the CPAN module is started, cache scanning is performed to keep the cache size in sync. To prevent this, answer 'never'. scan_cache Perform cache scanning (atstart or never)? [atstart] To considerably speed up the initial CPAN shell startup, it is possible to use Storable to create a cache of metadata. If Storable is not available, the normal index mechanism will be used. Note: this mechanism is not used when use_sqlite is on and SQLLite is running. cache_metadata Cache metadata (yes/no)? [yes] The CPAN module can detect when a module which you are trying to build depends on prerequisites. If this happens, it can build the prerequisites for you automatically ('follow'), ask you for confirmation ('ask'), or just ignore them ('ignore'). Please set your policy to one of the three values. prerequisites_policy Policy on building prerequisites (follow, ask or ignore)? [ask] Every Makefile.PL is run by perl in a separate process. Likewise we run 'make' and 'make install' in separate processes. If you have any parameters (e.g. PREFIX, UNINST or the like) you want to pass to the calls, please specify them here. If you don't understand this question, just press ENTER. Typical frequently used settings: PREFIX=~/perl # non-root users (please see manual for more hints) makepl_arg Parameters for the 'perl Makefile.PL' command? [INSTALLDIRS=site] Parameters for the 'make' command? Typical frequently used setting: -j3 # dual processor system (on GNU make) make_arg Your choice: [] Parameters for the 'make install' command? Typical frequently used setting: UNINST=1 # to always uninstall potentially conflicting files make_install_arg Your choice: [] A Build.PL is run by perl in a separate process. Likewise we run './Build' and './Build install' in separate processes. If you have any parameters you want to pass to the calls, please specify them here. Typical frequently used settings: --install_base /home/xxx # different installation directory mbuildpl_arg Parameters for the 'perl Build.PL' command? [--installdirs site] Parameters for the './Build' command? Setting might be: --extra_linker_flags -L/usr/foo/lib # non-standard library location mbuild_arg Your choice: [] Do you want to use a different command for './Build install'? Sudo users will probably prefer: su root -c ./Build or sudo ./Build or /path1/to/sudo -u admin_account ./Build mbuild_install_build_command or some such. Your choice: [./Build] Parameters for the './Build install' command? Typical frequently used setting: --uninst 1 # uninstall conflicting files mbuild_install_arg Your choice: [] If you're accessing the net via proxies, you can specify them in the CPAN configuration or via environment variables. The variable in the $CPAN::Config takes precedence. ftp_proxy Your ftp_proxy? [] http_proxy Your http_proxy? [] no_proxy Your no_proxy? [] CPAN needs access to at least one CPAN mirror. As you did not allow me to connect to the internet you need to supply a valid CPAN URL now. Please enter the URL of your CPAN mirror
Ouch, did we not pay enough attention? Anyway, just enter...
Please enter the URL of your CPAN mirror http://www.cpan.org Configuration does not allow connecting to the internet. Current set of CPAN URLs: http://www.cpan.org Enter another URL or RETURN to quit: [] New urllist http://www.cpan.org Please remember to call 'o conf commit' to make the config permanent! cpan shell -- CPAN exploration and modules installation (v1.9402) Enter 'h' for help. cpan[1]> o conf commit commit: wrote '/etc/perl/CPAN/Config.pm' cpan[2]> q No history written (no histfile specified). Lockfile removed.
We don't know what to do at the prompt, so use our trusty
# perl -MCPAN -e 'install full::module::name'