home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / ActivePerl-5.8.4.810-MSWin32-x86.msi / _a3b9295a63ccefb927cc8cdd0daaf31b < prev    next >
Text File  |  2004-06-01  |  46KB  |  1,552 lines

  1. @rem = '--*-Perl-*--
  2. @echo off
  3. if "%OS%" == "Windows_NT" goto WinNT
  4. perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
  5. goto endofperl
  6. :WinNT
  7. perl -x -S %0 %*
  8. if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
  9. if %errorlevel% == 9009 echo You do not have Perl in your PATH.
  10. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
  11. goto endofperl
  12. @rem ';
  13. #!perl
  14. #line 15
  15. use Win32::TieRegistry;
  16.  
  17. my $R = $Registry;
  18. $R->Delimiter('/');
  19.  
  20. # Note: the double slashes in front of InstallLocation are *not* a typo:
  21. # they indicate that InstallLocation is a named value under the PPM key.
  22. my $key1 = 'HKEY_LOCAL_MACHINE/SOFTWARE/ActiveState/PPM//InstallLocation';
  23. my $key2 = 'HKEY_CURRENT_USER/SOFTWARE/ActiveState/PPM//InstallLocation';
  24. my $own  = "$Config{binexp}\\ppm3-bin";
  25. my $opt_exe = -f $own            ? $own        : 
  26.           defined $R->{$key1}    ? $R->{$key1}    :
  27.           defined $R->{$key2}    ? $R->{$key2}    : undef;
  28.  
  29. die "Error: neither '$key1' nor '$key2' found in registry"
  30.   unless defined $opt_exe;
  31.  
  32. # Tell ppm3-bin where it was launched from. (Used when auto-selecting what
  33. # target to use.)
  34. use Config;
  35. $ENV{PPM3_PERL_PREFIX} = $Config{prefix};  # should really be 'prefixexp'
  36.                        # but most versions on windows don't
  37.                        # have it set right
  38. $ENV{PPM3_PERL_SITELIB} = $Config{sitelibexp};
  39.  
  40. # If $shared is true, then tell PPM3 to look at the shared config.
  41. # If $user   is true, then tell PPM3 to look at the user's config.
  42. # If $tree   is true, then tell PPM3 to look at the perl tree's config.
  43. # Note: if both of these are true, PPM3 will not work properly!
  44. $ENV{PPM3_SHARED} = 1 if $opt_shared;
  45. $ENV{PPM3_USER}   = 1 if $opt_user;
  46.  
  47. system($opt_exe, @ARGV);
  48. exit ($? >> 8);
  49.  
  50. =head1 NAME
  51.  
  52. ppm3 - Programmer's Package Manager, version 3.1
  53.  
  54. =head1 SYNOPSIS
  55.  
  56. ppm3 [-file=f] [-shared] [-target[=t]] [-pause] [command [args]]
  57.  
  58. When run with no arguments, PPM3 starts up an interactive shell where you can
  59. enter commands. You may specify command-line arguments to run a single
  60. command.
  61.  
  62. For example, the following two sessions are equivalent:
  63.  
  64.    $ ppm
  65.    ppm> search Tk
  66.    [results displayed]
  67.    ppm> exit
  68.  
  69.    $ ppm search Tk
  70.    [results displayed]
  71.  
  72. In the first case, PPM returns you to the prompt, where you can enter more
  73. commands.
  74.  
  75. =head1 DESCRIPTION
  76.  
  77. The program I<ppm3> is intended to simplify the tasks of locating, installing,
  78. upgrading and removing Perl packages.
  79.  
  80. I<ppm3> runs in one of three modes: an interactive shell from which commands
  81. may be entered; a script interpreter, reading sequential commands from a
  82. file; and command-line mode, in which one specific action is performed per
  83. invocation of the program.
  84.  
  85. =head1 COMMANDS
  86.  
  87. The following sections describe each command available in PPM. The following
  88. help is also available via the online help feature by typing 'help' in PPM3.
  89.  
  90.  
  91. =head1 describe -- Describe Packages
  92.  
  93. =head2 Synopsis
  94.  
  95.  des                Describes default/current package
  96.  des <number>       Describes package <number> in the
  97.                     current search set
  98.  des <range>        Describes packages in the given 
  99.                     <range> from the current search
  100.  des <package name> Describes named package
  101.  des <url>          Describes package located at <url>
  102.  des <glob pattern> Performes a new search using <glob pattern>
  103.  
  104. =head2 Description
  105.  
  106. The describe command returns information about a package, including
  107. the name of the package, the author's name and a brief description
  108. (called an "Abstract") about the package. For example:
  109.  
  110.     describe libnet
  111.  
  112. returns:
  113.  
  114.     ===============================
  115.     Package 1
  116.     Name: libnet
  117.     Version: 1.07.03
  118.     Author: Graham Barr
  119.     Abstract: Collection of Network protocol modules
  120.     Implementations:
  121.             1.sun4-solaris-thread-multi
  122.             2.i686-linux-thread-multi
  123.             3.MSWIn32-x86-multi-thread
  124.     ===============================
  125.  
  126. There are two modifiers to the describe command:
  127.  
  128. =over 4
  129.  
  130. =item -ppd
  131.  
  132. Displays the raw PPD of the package.
  133.  
  134. =item -dump
  135.  
  136. The same as -ppd.
  137.  
  138. =back
  139.  
  140. When the describe command is called without arguments, it returns
  141. information about the first package in the current search. If there is no
  142. default search set, you will be prompted to use the search command
  143. to find a package.
  144.  
  145. If describe is called with a numeric argument, that number is set as the
  146. default package and the information about that package is returned. If the
  147. number given doesn't exist, you will be prompted to use search to find a
  148. package. Also, you can use describe to get descriptions of several
  149. packages.  For example:
  150.  
  151.     describe 4-7
  152.  
  153. will return descriptions of packages 4 through 7 in the current search
  154. request. You can also enter:
  155.  
  156.     describe 3-4,10
  157.  
  158. to get information on packages 3, 4 and 10.
  159.  
  160. If you specify a URL as the argument to describe, PPM will describe the
  161. package located at the URL. The URL must point to a PPD file. The URL
  162. can also point to a PPD file on your computer.
  163.  
  164. When the describe command is given a name with a wildcard (such as "*" or
  165. "?") it executes the search command with the given argument. For example,
  166. describe Tk* will return the name(s) of any packages that match the
  167. search parameters.
  168.  
  169. =head2 See Also
  170.  
  171. properties
  172.  
  173. =head1 exit, q, quit -- Exit the program
  174.  
  175. =head2 Synopsis
  176.  
  177.  exit                Exit
  178.  q                   Exit
  179.  quit                Exit
  180.  
  181. =head2 Description
  182.  
  183. When you leave the PPM environment, the current settings are saved.
  184.  
  185. =head1 help -- General help, or help on specific commands.
  186.  
  187. =head2 Synopsis
  188.  
  189.  help                Lists available commands and help topics
  190.  help <command>      Lists detailed help about a specific command
  191.  
  192. =head2 Description
  193.  
  194. The help command provides a brief description of the commands available
  195. within PPM. For help on a specific command, enter help followed by the
  196. command name. For example, enter help settings or help set for a detailed
  197. description of the settings command.
  198.  
  199. There are some extra help topics built into PPM. They can be accessed
  200. within the PPM environment as follows:
  201.  
  202.   help ppm_migration
  203.  
  204. shows more details about the changes from previous versions of PPM
  205.  
  206.   help quickstart
  207.  
  208. an easy-to-follow guide to getting started with PPM
  209.  
  210.   help prompt
  211.  
  212. provides a detailed explanation about the PPM prompt
  213.  
  214. =head1 install -- Install Packages
  215.  
  216. =head2 Synopsis
  217.  
  218.  install           Installs default package
  219.  install <number>  Installs packages by a specific <number>
  220.  install <range>   Installs packages in the given numeric <range>
  221.  install <name>    Installs named package
  222.  install <url>     Installs the package located at <url>
  223.  
  224. =head2 Description
  225.  
  226. The install command is used to install packages from the repository.  Install
  227. packages by name or number (the number is given by the repository or search
  228. request), or set a default package using the describe command. You can specify
  229. a full URL to a PPD file; the URL may point to a PPD file on your computer.
  230.  
  231. If you have profile tracking enabled, (see 'help profile') the current profile
  232. will be updated to include the newly installed package(s).
  233.  
  234. The following modifiers can be used with the install command:
  235.  
  236. =over 4
  237.  
  238. =item
  239.  
  240. -force
  241.  
  242. =item
  243.  
  244. -noforce
  245.  
  246. =item
  247.  
  248. -follow
  249.  
  250. =item
  251.  
  252. -nofollow
  253.  
  254. =back
  255.  
  256. The force and follow switches determine how packages are installed:
  257.  
  258.  FORCE       FOLLOW          RESULT
  259.  false       false           Checks to see if the package is installed and
  260.                              if it is, installation stops. If there are any
  261.                              missing prerequisites, the installation will
  262.                              fail.
  263.  
  264.  false       true            Checks to see if the package is installed and
  265.                              if it is, installation stops. If there are any
  266.                              missing prerequisites, they are automatically
  267.                              installed. NOTE: this is the default setting
  268.                              when PPM is first installed.
  269.  
  270.  true        false           If the package is installed, PPM will
  271.                              reinstall the package. If there are any
  272.                              missing prerequisites, the installation will
  273.                              fail.
  274.  
  275.  true        true            If the package is installed, PPM will
  276.                              reinstall the package. All prerequisites are
  277.                              installed, missing or not.
  278.     
  279. If you do not specify any options, install uses the default settings. 
  280. Set or view the current defaults using the 'settings' command.
  281.  
  282. For example:
  283.  
  284.     install foo
  285.  
  286. will install the package named "foo", using the default settings. 
  287. Over-ride the defaults using the install modifiers described above.
  288.  
  289. For example:
  290.  
  291.     install foo -force
  292.  
  293. will install the "foo" package, even if it has already been installed. If
  294. both -force and -follow are set to "true", all the prerequisites for any
  295. package you install will also be installed. For example, the installation
  296. of a tk-related package, like "tk-ach" which is 8.4 kB will be preceded
  297. by the installation of Tk, which is 1.7 MB.
  298.  
  299. You can also install by package number. Package numbers are 
  300. based on the current repository or current search request. For example:
  301.  
  302.     install 6
  303.  
  304. installs package number 6. You can install more than one package at one
  305. time:
  306.  
  307.     install 3-5
  308.  
  309. installs packages 3, 4 and 5. You can also type install 3-6,8 to install 
  310. packages 3,4,5,6 and 8.
  311.  
  312. =head2 See Also
  313.  
  314. profile
  315.  
  316. =head1 profile -- Manage PPM Profiles
  317.  
  318. =head2 Synopsis
  319.  
  320.  profile                     Lists profiles available on the repository
  321.  profile <num>               Switches to the given profile
  322.  profile add <name>          Creates a new profile on the repository
  323.  profile delete <name or num>
  324.                              Deletes the given profile
  325.  profile describe [name or num]
  326.                              Describes the current or given profile
  327.  profile save                Saves the client state to the current profile
  328.  profile restore             Restores the current profile
  329.  profile rename <name or num> <name>
  330.                              Renames the given profile to <name>
  331.  
  332. =head2 Description
  333.  
  334. Profiles store information about packages that are installed on your
  335. system. If the 'profile-track' setting is enabled, your ASPN Profile will
  336. be updated with information about installed packages. Profiles allow you
  337. to easily migrate, reinstall, upgrade or restore PPM packages in one or
  338. more locations.
  339.  
  340. To use profiles, you must have a license for ASPN. For license
  341. information, see http://www.ActiveState.com/ASPN/About 
  342. Disable profile tracking by setting 'profile-track=0'.
  343.  
  344. =head1 properties -- Describe Installed Packages
  345.  
  346. =head2 Synopsis
  347.  
  348.  prop                    Describes default installed package
  349.  prop <number>           Describes installed package <number>
  350.  prop <range>            Describes a <range> of installed packages
  351.  prop <package name>     Describes named installed package
  352.  prop <url>              Describes installed package located at <url>
  353.  prop <glob pattern>     Performs a new query using <glob pattern>
  354.  
  355. =head2 Description
  356.  
  357. The properties command is an verbose form of the describe command. In
  358. addition to summary information, properties will display
  359. the installation date and a URL showing the location of the package
  360. within the repository.
  361.  
  362. If you specify the package as a URL, PPM determines the package name
  363. from the URL and searches for that.
  364.  
  365. When the properties command is used with wildcard arguments,
  366. the text entered at the PPM prompt is passed to the query command.
  367.  
  368. For example, typing 'properties libnet' will give you:
  369.  
  370.     ====================
  371.         Name: libnet
  372.      Version: 1.07.03
  373.       Author: Graham Barr
  374.        Title: libnet
  375.     Abstract: Collection of Network protocol modules
  376.     InstDate: Fri Oct  2 16:15:15 1998
  377.     Location: http://ppm.ActiveState.com/PPM/...
  378.     ====================
  379.  
  380. =head2 See Also
  381.  
  382. describe
  383.  
  384. =head1 query -- Query Installed Packages
  385.  
  386. =head2 Synopsis
  387.  
  388.  query                   Displays list of previous queries
  389.  query <number>          Displays results of previous query
  390.  query <glob pattern>    Performs a new query using <glob pattern>
  391.  query *                 Displays a list of all installed packages
  392.  
  393. =head2 Description
  394.  
  395. The query command displays a list of all installed packages, or a
  396. list based on the <glob pattern> switch. You can also check
  397. the list of past queries, or the results of a past query.
  398.  
  399. With PPM 3.1, you can now perform much more powerful queries. The syntax
  400. is identical to the 'search' command, and almost all the search switches
  401. are also available for querying installed packages.
  402.  
  403. Recall previous queries with the 'query <number>' command. PPM3
  404. stores all queries from the current PPM session.
  405.  
  406. Note: Depending on the value of the "case-sensitivity" setting,
  407. the query may or may not be case-sensitive. See "help settings" for
  408. instructions on setting the default case sensitivity.
  409.  
  410. =head2 See Also
  411.  
  412. search, settings
  413.  
  414. =head1 repository -- Repository Control
  415.  
  416. =head2 Synopsis
  417.  
  418.  rep                        Displays all repositories
  419.  rep add [name] <location>  Adds a new repository; makes it active
  420.  rep delete <name or num>   Deletes specified repository
  421.  rep describe <name or num> Displays information about the specified
  422.                             repository
  423.  rep rename <name or num> <name>
  424.                             Renames the specified repository to
  425.                             the given name
  426.  rep on <name>              Activates the specified repository
  427.  rep off <name or num>      Removes the repository from the active list
  428.  rep up <name or num>       Moves the specified repository up one
  429.  rep down <name or num>     Moves the specified repository down one
  430.  
  431. The <name> needs to be put inside doublequotes if it contains any spaces.
  432.  
  433. =head2 Description
  434.  
  435. The I<repository> (or I<rep>) command controls two lists or repositories:
  436.  
  437. =over 4
  438.  
  439. =item 1
  440.  
  441. The list of "active" repositories. This is the list of repositories used by
  442. I<search>, I<install>, and I<upgrade>.
  443.  
  444. =item 2
  445.  
  446. The list of all known repositories. You can designate a repository "inactive",
  447. which means PPM will not use it in any commands.
  448.  
  449. =back
  450.  
  451. If no arguments are given, the rep command will list the active
  452. repositories defined in the PPM settings. The order is significant: when
  453. installing a package, PPM will try the first repository, then the
  454. second, and so on, until it find the package you asked for. When
  455. searching, PPM merges the results of all the repositories together, so the
  456. order is less important (see the I<search> command).
  457.  
  458. For example, when you enter:
  459.  
  460.     rep
  461.  
  462. PPM3 will return something resembling this:
  463.  
  464.     Repositories:
  465.     [1] ActiveCD
  466.     [2] ActiveState Package Repository
  467.     [ ] An inactive repository
  468.  
  469. In the example above, entering 'rep off 2' will disable the second repository
  470. (the ActiveStat Package Repository). To add another repository:
  471.  
  472.     rep add [options] <NAME> <LOCATION>
  473.  
  474. The following options are available for the 'add' command:
  475.  
  476. =over 4
  477.  
  478. =item
  479.  
  480. -username 
  481.  
  482. =item
  483.  
  484. -password
  485.  
  486. =back
  487.  
  488. These options allow you to specify a username and password to be used
  489. when logging into a repository. Currently, these are only used for FTP
  490. and WWW repositories.
  491.  
  492. For example:
  493.  
  494.     rep add "EZE" http://foo.com/MyPPMPackages
  495.  
  496. with "EZE" being the name of the repository (for easy reference)
  497. and the location noted by the http location. If you were to enter the
  498. rep command again, you would see:
  499.  
  500.     ppm> rep
  501.     Repositories:
  502.     [1] ActiveCD
  503.     [2] ActiveState Package Repository
  504.     [3] EZE
  505.     [ ] An inactive repository
  506.  
  507. To move the new repository to the top of the Active list, you would type:
  508.  
  509.     ppm> rep up EZE
  510.     Repositories:
  511.     [1] ActiveCD
  512.     [2] EZE
  513.     [3] ActiveState Package Repository
  514.     [ ] An inactive repository
  515.     ppm> rep up EZE
  516.     Repositories:
  517.     [1] EZE
  518.     [2] ActiveCD
  519.     [3] ActiveState Package Repository
  520.     [ ] An inactive repository
  521.  
  522. To disable the ActiveCD repository temporarily, enter the following:
  523.  
  524.     ppm> rep off ActiveCD
  525.     Repositories:
  526.     [1] EZE
  527.     [2] ActiveState Package Repository
  528.     [ ] ActiveCD
  529.     [ ] An inactive repository
  530.  
  531. To describe a repository, refer to it either by name, or by the number
  532. displayed next to the repository in the Active Repositories list. You must
  533. refer to inactive repositories by their full name.
  534.  
  535.     ppm> rep describe 2
  536.     Describing Active Repository 2:
  537.         Name: ActiveState Package Repository
  538.     Location: http://ppm.ActiveState.com/cgibin/PPM/...
  539.         Type: PPMServer 2.00
  540.     ppm> rep describe ActiveCD
  541.     Describing Inactive Repository:
  542.         Name: ActiveCD
  543.     Location: F:\PPMPackages\5.8plus
  544.         Type: Local Directory
  545.  
  546. To re-activate the ActiveCD repository, use the I<rep on> command. You
  547. must refer to inactive repositories by name, not number.
  548.  
  549.     ppm> rep on ActiveCD
  550.     Active Repositories:
  551.     [1] EZE
  552.     [2] ActiveState Package Repository
  553.     [3] ActiveCD
  554.     [ ] An inactive repository
  555.  
  556. =head2 Repository Types
  557.  
  558. PPM3 supports several types of package repositories:
  559.  
  560. =over 4
  561.  
  562. =item 1.
  563.  
  564. PPM Server 3
  565.  
  566. ActiveState's SOAP-driven package server. Because all searches are
  567. done server-side, the server can deliver much richer information about
  568. packages than other repositories.
  569.        
  570. =item 2.
  571.  
  572. PPM Server 2
  573.  
  574. The SOAP server designed for PPM version 2. PPM 3.1 ships with the
  575. PPM2 repository as well as the PPM3 repository, so you can use
  576. either. Simple searches are performed server-side. If your search is
  577. too complicated for the server, PPM 3.1 will download the package
  578. summary and search by itself.
  579.  
  580. =item 3.
  581.  
  582. Web Repositories
  583.  
  584. Older versions of PPM used non-SOAP repositories (directories full of
  585. PPD files accessible using a web browser). Over the history of PPM,
  586. there have been several different ways of organising the files so that
  587. PPM can search for packages properly. PPM3 tries to download a summary
  588. file first -- if that fails, it gets the directory index. It parses the
  589. summary or the index, and caches it. Searches are done from the
  590. cache.
  591.  
  592. =item 4.
  593.  
  594. FTP Repositories
  595.  
  596. FTP is another way of exposing a directory full of PPD files. PPM3
  597. consideres FTP repositories a subset of Web repositories. Treat them as
  598. identical: PPM3 downloads the summary or the "index" (file listing in
  599. this case), parses it, and then searches from it.
  600.  
  601. =item 5.
  602.  
  603. Local Repositories
  604.  
  605. To support installing packages from the ActiveCD, a local directory can
  606. be a repository. PPM searches the files in the directory. All valid
  607. path formats are supported, including UNC paths.
  608.  
  609. =back
  610.  
  611. =head1 search -- Search for Packages
  612.  
  613. =head2 Synopsis
  614.  
  615.  search                Displays list of previous searches
  616.  search <number>       Displays results of search <number>
  617.  search <glob pattern> Performs a new search
  618.  search <field>=<glob> Searches for all packages matching the field.
  619.  search *              Displays all packages in the current repository
  620.  
  621. The available fields are 'ABSTRACT', 'NAME', 'TITLE', 'AUTHOR', and 'VERSION'.
  622. 'NAME' is used when you do not specify a field.
  623.  
  624. =head2 Description
  625.  
  626. Use the search command to look through the repository for packages.
  627. PPM version 3 provides powerful search functionality. For example:
  628.  
  629. =over 4
  630.  
  631. =item 1.
  632.  
  633. Search for 'CGI' anywhere in the name:
  634.  
  635.   search CGI
  636.  
  637. Example results:
  638.  
  639.   Apache-CGI
  640.   CGI-Application
  641.   CGI-ArgChecker
  642.  
  643. =item 2.
  644.  
  645. Search for 'CGI' at the beginning of the name:
  646.  
  647.   search CGI*
  648.  
  649. Example results:
  650.  
  651.   CGI-ArgChecker
  652.   CGI-Application
  653.  
  654. =item 3.
  655.  
  656. Search for all modules authored by someone with 'smith' in their name or
  657. email:
  658.  
  659.   search AUTHOR=smith 
  660.  
  661. Example results:
  662.  
  663.   Apache-ProxyPass
  664.   Business-ISBN
  665.  
  666. =item 4.
  667.  
  668. Search for 'compress' anywhere in the abstract:
  669.  
  670.   search ABSTRACT=compress
  671.  
  672. Example results:
  673.  
  674.   Apache-GzipChain
  675.   IO-Zlib
  676.  
  677. =item 5.
  678.  
  679. Search for 'CGI' in the name, or 'web' in the abstract:
  680.  
  681.   search CGI or ABSTRACT=web
  682.  
  683. Example results:
  684.  
  685.   CGI-XMLForm
  686.   HTML-Clean
  687.  
  688. =item 6.
  689.  
  690. Search for 'XML' in the name and either 'parser' in the name or 'pars' in the
  691. abstract, but not with 'XPath' in the name:
  692.  
  693.   search XML and (parser or ABSTRACT=pars) and not XPath
  694.  
  695. Example results:
  696.  
  697.   XML-Node
  698.   XML-Parser-EasyTree
  699.  
  700. =item 7.
  701.  
  702. PPM Server 3 repositories only: search by module name, even if unrelated to
  703. the containing package:
  704.  
  705.   search Data::Grove
  706.                                 
  707. Example results:
  708.  
  709.   libxml-perl
  710.  
  711. =item 8.
  712.  
  713. Browse all packages in the repository:
  714.  
  715.   search *
  716.  
  717. Example results:
  718.  
  719.   Affix-Infix2Postfix
  720.   AI-Fuzzy
  721.   [many more...]
  722.  
  723. =back
  724.  
  725. Recall previous searches using the 'search <number>' command. PPM stores
  726. searches for each session until you exit PPM.
  727.  
  728. Some package names or versions are too long to be displayed in the search
  729. results. If a name is too long, you will see a '~' (tilde) as the last visible
  730. character in the column. You can use I<describe> to view detailed information
  731. about such packages.
  732.  
  733. =head2 Search Results
  734.  
  735. When you type a command like C<search XML>, PPM searches in each of the Active
  736. Repositories (see the I<repository> command) for your package. The results are
  737. merged into one list, and duplicates (packages found in more than one
  738. repository) are hidden.
  739.  
  740. You can control what fields PPM shows for each package. The fields each have a
  741. built-in weight, which is used to calculate how wide to make each field based
  742. on the width of your screen. Information that doesn't fit into a field is
  743. truncated, and a tilde (C<~>) character is displayed in the last column of the
  744. field.
  745.  
  746. Let's get down to an example:
  747.  
  748.     ppm> search XML
  749.     Searching in Active Repositories
  750.         1. CGI-XMLForm           [0.10] Extension to CGI.pm which
  751.         2. Data-DumpXML          [1.01] Dump arbitrary data structures
  752.         3. DBIx-XML_RDB          [0.05] Perl extension for creating XML
  753.         4. DBIx-XMLMessage       [0.03] XML Message exchange between DBI
  754.         5. GoXML-XQI            [1.1.4] Perl extension for the XML Query
  755.         6. Language-DATR-DATR2~ [0.901] manipulate DATR .dtr, XML, HTML,
  756.         7. libxml-perl           [0.07] support for deeply nested
  757.         8. Mail-FilterXML         [0.1] Undetermined
  758.         9. Mail-XML              [0.03] Adds a toXML() method to
  759.        10. Pod-XML               [0.93] Module to convert POD to XML
  760.  
  761. As you can see, the three fields being displayed are:
  762.  
  763. =over 4
  764.  
  765. =item 1
  766.  
  767. NAME
  768.  
  769. The package name
  770.  
  771. =item 2
  772.  
  773. VERSION
  774.  
  775. The package version
  776.  
  777. =item 3
  778.  
  779. ABSTRACT
  780.  
  781. The package abstract
  782.  
  783. =back
  784.  
  785. You can customize the view somewhat. If you want to view the authors, but not
  786. the abstract, you can run the same I<search> command after using I<set> to
  787. change the fields:
  788.  
  789.     ppm> set fields="NAME VERSION AUTHOR"
  790.     Setting 'fields' set to 'name version author'.
  791.     ppm> search XML
  792.     Using cached search result set 1.
  793.         1. CGI-XMLForm         [0.10] Matt Sergeant (matt@sergeant.org)
  794.         2. Data-DumpXML        [1.01] Gisle Aas (gisle@aas.no)
  795.         3. DBIx-XML_RDB        [0.05] Matt Sergeant (matt@sergeant.org)
  796.         4. DBIx-XMLMessage     [0.03] Andrei Nossov (andrein@andrein.com)
  797.         5. GoXML-XQI          [1.1.4] Matthew MacKenzie (matt@goxml.com)
  798.         6. Language-DATR-DAT~ [0.901] Lee Goddard (lgoddard@cpan.org)
  799.         7. libxml-perl         [0.07] Ken MacLeod (ken@bitsko.slc.ut.us)
  800.         8. Mail-FilterXML       [0.1] Matthew MacKenzie (matt@goxml.com)
  801.         9. Mail-XML            [0.03] Matthew MacKenzie (matt@goxml.com)
  802.        10. Pod-XML             [0.93] Matt Sergeant (matt@sergeant.org)
  803.  
  804. You can change the order in which the results are sorted, and what columns are
  805. displayed. The settings I<fields> and I<sort-field> changes this. You can
  806. sort by any valid field name (even fields which are not displayed). See the
  807. I<settings> command for the valid field names.
  808.  
  809. PPM always hides "duplicate" results. It decides whether a result is
  810. duplicated based on the fields being displayed. If the same package is found
  811. in more than one repository, but you don't have the REPOSITORY field showing,
  812. PPM will only list the package once.
  813.  
  814.  
  815. =head1 settings -- View or Set PPM Settings
  816.  
  817. =head2 Synopsis
  818.  
  819.  set                 Displays current settings
  820.  set <name>          Displays the current setting of the given <name>
  821.  set <name> <value>  Sets <name> to <value>
  822.  unset <name>        Sets <name> to a "false" value: '0' for boolean
  823.                      settings, '' for others.
  824.  
  825. =head2 Description
  826.  
  827. The settings command is used to configure the default PPM environment.
  828. Settings such as the number of lines displayed per page, case-sensitivity,
  829. and the log file are configured using the settings command.
  830.  
  831. Setting names may be abbreviated to uniqueness. For example, instead
  832. of typing 'case-sensitivity', you may type 'case'.
  833.  
  834. Available settings:
  835.  
  836.  NAME                VALUE           DESCRIPTION
  837.  case-sensitivity    1 or 0      If 1, searches and queries are
  838.                                  case-sensitive.
  839.  
  840.  download-chunksize  integer     If this is set to a positive,
  841.                                  non-zero integer, PPM updates the
  842.                                  status after "integer" of bytes
  843.                                  transferred during an install or
  844.                                  upgrade.
  845.  
  846.  fields              fields      A space-separated list of fields to 
  847.                                  display in the search results. Valid
  848.                                  fields are:
  849.  
  850.                                    ABSTRACT
  851.                                    AUTHOR
  852.                                    NAME
  853.                                    REPOSITORY
  854.                                    TITLE
  855.                                    VERSION
  856.  
  857.                                  Usually, NAME and TITLE have the same
  858.                                  content.
  859.  
  860.  follow-install      1 or 0      See 'help install' for details.
  861.  
  862.  force-install       1 or 0      See 'help install' for details.
  863.  
  864.  install-verbose     1 or 0      If 0, suppresses most output when
  865.                                  installing packages. If 1, PPM prints
  866.                                  each file as it is installed.
  867.  
  868.  pager               path        The path to an external pager program
  869.                                  used to page long displays. If blank,
  870.                                  or set to 'internal', the internal
  871.                                  pager is used. If 'none', paging
  872.                                  is disabled.
  873.  
  874.  profile-track       1 or 0      If 1, PPM arranges to have the 
  875.                                  ASPN server track your PPM profile. 
  876.                                  This means that every time your install
  877.                                  or remove a package, your profile is
  878.                                  updated on the server. If 0, you must
  879.                                  manually save your profile using
  880.                                  'profile save'.
  881.  
  882.  prompt-context      1 or 0      If 1, enables the prompt to change
  883.                                  based on the current state of PPM, i.e
  884.                                  showing current target, query, etc.
  885.  
  886.  prompt-slotsize     integer     If prompt-verbose is 1, this defines
  887.                                  the width of each slot in the prompt.
  888.                                  For instance, 4 means to use 4 
  889.                                  character-wide slots.
  890.  
  891.  prompt-verbose      1 or 0      If 0, uses numbers to represent the
  892.                                  context in the prompt; much shorter.
  893.                                  If prompt-context is set to 0, there
  894.                                  will be no visible difference in the
  895.                                  'prompt-verbose' settings.
  896.  
  897.  rebuild-html        1 or 0      If 0, suppresses regeneration of HTML
  898.                                  documentation when packages are
  899.                                  installed. If 1, enables HTML to be
  900.                                  generated from POD documentation.
  901.                                  Enabling this option may slow down
  902.                                  package installation.
  903.  
  904.  remove-verbose      1 or 0      If 0, suppresses most output when
  905.                                  removing packages. If 1, prints the
  906.                                  name of each file as it is removed.
  907.  
  908.  sort-field          field       The field by which to sort search and
  909.                                  query results. Valid fields are
  910.                  ABSTRACT, AUTHOR, NAME, TITLE
  911.                  and VERSION.
  912.  
  913.  tempdir             path        A temporary directory into which
  914.                                  packages are downloaded and expanded
  915.                                  during 'install' and 'upgrade'.
  916.  
  917.  trace-file          path        A file to which PPM will write tracing
  918.                                  information.
  919.  
  920.  trace-level         integer     If 0 or negative, tracing is disabled.
  921.                                  Positive, non-zero integers result in
  922.                                  tracing information being written to
  923.                                  'trace-file'. Higher settings of
  924.                                  'trace-level' result in more trace
  925.                                  information.
  926.  
  927.  upgrade-verbose     1 or 0      If 0, suppresses most output when
  928.                                  upgrading packages. If 1, prints the
  929.                                  name of each file as it is upgraded.
  930.  
  931. For information about migrating options used by previous
  932. versions of PPM, see 'help ppm_migration'.
  933.  
  934. When you assign a value to a setting, PPM saves the configuration.
  935. Therefore, setting values persist across sessions.
  936.  
  937. =head1 targets -- View Target Installer Backends
  938.  
  939. =head2 Synopsis
  940.  
  941.  target                      Displays a list of backend targets
  942.  target <number>             Sets <number> as default backend target
  943.  target [select] <name or num>
  944.                              Sets <name or num> as default backend target
  945.  target describe [name or num]
  946.                              Describes the given (or default) target
  947.  target set <key> <val>      Sets the target's <key> to <val> 
  948.  target rename <name or num> <name>
  949.                              Renames the given target to <name>
  950.  
  951. =head2 Description
  952.  
  953. The target is the destination location of the install routine, such as 
  954. the directory where the packages are installed when they're downloaded
  955. from the repository. For example:
  956.  
  957.     target
  958.  
  959. returns:
  960.  
  961.     Targets:
  962.       1. ActivePerl 618
  963.     * 2. ActivePerl 629
  964.  
  965. This shows that there are two available targets, and that the second
  966. target (ActivePerl 629) is currently the default (as shown by the
  967. asterisk). Using multiple targets, you can manage multiple 
  968. installations of Perl from a single command-line.
  969.  
  970. =head1 tree -- Show Dependency Tree for Packages
  971.  
  972. =head2 Synopsis
  973.  
  974.  tree                Displays the dependency-tree of the current
  975.                      or default package
  976.  tree <number>       Displays the dependency-tree of the given <number>
  977.  tree <range>        Displays a <range> of dependency-trees
  978.  tree <package name> Displays the dependency-tree of the named package
  979.  tree <url>          Displays the dependency-tree for the
  980.                      package at <url>
  981.  tree <glob pattern> Performs a new search using <glob pattern>
  982.  
  983. =head2 Description
  984.  
  985. The tree command is used to show the "dependency tree" of a given
  986. package (additional packages that are required by the current package).
  987. For example:
  988.     
  989.     tree SOAP-lite
  990.  
  991. returns:
  992.  
  993.     ====================
  994.     SOAP-Lite 0.51
  995.     |__MIME-tools 5.316
  996.     |   |__MailTools 1.15
  997.     |   \__IO-stringy 1.216
  998.     |
  999.     \__MIME-Lite 2.105
  1000.     ====================
  1001.  
  1002. SOAP-Lite requires four other packages.
  1003.  
  1004. When tree is called without a <name> or <number> switch, the command
  1005. will return the dependency tree of the first package in the default
  1006. search result. If there is no default search, you will be requested to
  1007. use search to find a package.
  1008.  
  1009. =head1 remove, uninstall -- Uninstalls Installed Packages
  1010.  
  1011. =head2 Synopsis
  1012.  
  1013.  remove              Deletes default installed package
  1014.  remove <number>     Deletes installed package <number>
  1015.  remove <range>      Deletes a <range> of installed packages
  1016.  remove <name>       Deletes a packages by a specific name
  1017.  remove <url>        Deletes the package located at <url>
  1018.  
  1019. =head2 Description
  1020.  
  1021. The remove and uninstall commands function identically. They are used to
  1022. delete packages from the current target (specified using the target
  1023. command). If profile tracking is enabled, (see 'help profile') the
  1024. current PPM profile on ASPN will be updated.
  1025.  
  1026. Packages can be removed by package name, by their numerical listing, or 
  1027. by specifying a URL to a PPD file. For example:
  1028.  
  1029.     remove XML-DOM
  1030.  
  1031. will delete the XML-DOM package from the target.
  1032.  
  1033. To remove package by number:
  1034.  
  1035.     remove 6
  1036.  
  1037. and the sixth package in your current query will be removed. If no
  1038. queries have been run in the current PPM session, you will be prompted
  1039. to use a query to find a package before deleting it. Remember that removing
  1040. packages clears all previous query requests, since the numerical
  1041. sequence stored in any query will no longer be true once package(s) have
  1042. been removed.
  1043.  
  1044. Packages can also be removed in groups.  For example:
  1045.  
  1046.     remove 4-7
  1047.  
  1048. will delete packages 4, 5, 6, and 7 from your target. You can also skip
  1049. packages:
  1050.  
  1051.     remove 3-5, 7
  1052.  
  1053. this will delete packages 3, 4, 5 and 7, but will leave 6 intact.
  1054. Remember to run a new query whenever you remove a package from your
  1055. target.
  1056.  
  1057. If you specify the package as a URL, PPM determines the package name from
  1058. the URL and removes that.
  1059.  
  1060. Please note that wildcards like "*" or "?" cannot be used with the remove
  1061. command.
  1062.  
  1063. =head2 See Also
  1064.  
  1065. profile
  1066.  
  1067. =head1 upgrade -- List or install available upgrades
  1068.  
  1069. =head2 Synopsis
  1070.  
  1071.  upgrade [*]         Lists upgrades available for all installed packages
  1072.  upgrade <number>    Lists upgrades for installed package <number>
  1073.  upgrade <range>     Lists upgrades for a <range> of installed packages
  1074.  upgrade <package>   Lists upgrades for the named <package>
  1075.  
  1076. =head2 Description
  1077.  
  1078. The upgrade command lists package upgrades that are available on the
  1079. active repositories for packages installed on your system. To install
  1080. available upgrades, use the '--install' option.
  1081.  
  1082. If profile tracking is enabled, (see 'help profile'), your profile
  1083. will be updated to reflect changes to any packages which are upgraded.
  1084.  
  1085. There are several modifiers to the upgrade command:
  1086.  
  1087. =over 4
  1088.  
  1089. =item -install
  1090.  
  1091. Installs, rather than lists, available upgrades
  1092.  
  1093. =item -precious
  1094.  
  1095. Allows upgrading of "precious" packages
  1096.  
  1097. =item -force
  1098.  
  1099. See 'help install'
  1100.  
  1101. =item -follow
  1102.  
  1103. See 'help install'
  1104.  
  1105. =back
  1106.  
  1107. By default, 'upgrade' typed by itself only lists the available upgrades.
  1108. To actually install all available upgrades, enter
  1109.  
  1110.     upgrade -install
  1111.  
  1112. To enable upgrading "precious" packages, enter
  1113.  
  1114.     upgrade -install -precious
  1115.  
  1116. =head2 See Also
  1117.  
  1118. profile
  1119.  
  1120. =head1 version -- print the name and version of PPM.
  1121.  
  1122. Prints the name and version of PPM3.
  1123.  
  1124.  
  1125. =head1 EXTRA HELP TOPICS
  1126.  
  1127. The following sections describe extra help topics available in PPM. An extra
  1128. help topic is not the name of a command -- it is only available as a help
  1129. page. The following help is available via the online help feature by typing
  1130. 'help' in PPM3.
  1131.  
  1132. =head1 ppm migration -- PPM Migration Guide
  1133.  
  1134. =head2 Description
  1135.  
  1136. Those familiar with PPM version 2 should appreciate the extended
  1137. functionality  of PPM version 3, including the command-line history,
  1138. autocomplete and profiles. Some PPM version 2 commands are different
  1139. in PPM version 3. Examples of command changes include:
  1140.  
  1141. =over 4
  1142.  
  1143. =item 1
  1144.  
  1145. Adding a repository
  1146.  
  1147. PPM2:
  1148.  
  1149.   set repository my_repository http://my/repository
  1150.  
  1151. PPM3:
  1152.  
  1153.   repository add my_repository http://my/repository
  1154.  
  1155. =item 2
  1156.  
  1157. Removing a repository
  1158.  
  1159. PPM2:
  1160.  
  1161.   set repository --remove my_repository
  1162.  
  1163. PPM3:
  1164.  
  1165.   repository del my_repository
  1166.  
  1167. =item 3
  1168.  
  1169. Setting the temporary directory
  1170.  
  1171. PPM2:
  1172.  
  1173.   set build DIRECTORY
  1174.  
  1175. PPM3
  1176.  
  1177.   set tempdir DIRECTORY
  1178.  
  1179. =item 4
  1180.  
  1181. Setting frequency of download updates
  1182.  
  1183. PPM2:
  1184.  
  1185.   set downloadstatus NUMBER
  1186.  
  1187. PPM3:
  1188.  
  1189.   set download-chunksize NUMBER
  1190.  
  1191. =item 5
  1192.  
  1193. Changing the installation root directory:
  1194.  
  1195. PPM2:
  1196.  
  1197.   set root DIRECTORY
  1198.  
  1199. PPM3:
  1200.  
  1201.   target set root DIRECTORY
  1202.  
  1203. =item 6
  1204.  
  1205. Listing all installed packages:
  1206.  
  1207. PPM2:
  1208.  
  1209.   query
  1210.  
  1211. PPM3:
  1212.  
  1213.   query *
  1214.  
  1215. =item 7
  1216.  
  1217. Listing all packages on server:
  1218.  
  1219. PPM2:
  1220.  
  1221.   search
  1222.  
  1223. PPM3:
  1224.  
  1225.   search *
  1226.  
  1227. =item 8
  1228.  
  1229. Enabling HTML documentation generation:
  1230.  
  1231. PPM2:
  1232.  
  1233.   set rebuildhtml 1
  1234.  
  1235. PPM3:
  1236.  
  1237.   set rebuild-html 1
  1238.  
  1239. =back
  1240.  
  1241. =head1 prompt -- information about the PPM3 prompt
  1242.  
  1243. =head2 Description
  1244.  
  1245. The PPM prompt can tell you six things:
  1246.  
  1247. =over 4
  1248.  
  1249. =item 1)
  1250.  
  1251. The current repository;
  1252.  
  1253. =item 2)
  1254.  
  1255. The current target;
  1256.  
  1257. =item 3)
  1258.  
  1259. The last search you made on the current repository;
  1260.  
  1261. =item 4)
  1262.  
  1263. The last query you made on the current target;
  1264.  
  1265. =item 5)
  1266.  
  1267. The last package you described from this repository; and,
  1268.  
  1269. =item 6)
  1270.  
  1271. The last package you described from this target.
  1272.  
  1273. =back
  1274.  
  1275. To enable the prompt to tell you this information, you must set
  1276. 'prompt-context' to '1'. The following examples all assume this setting.
  1277.  
  1278. =head2 Examples
  1279.  
  1280. =over 4
  1281.  
  1282. =item 1
  1283.  
  1284. Repository and Target:
  1285.  
  1286. Set 'prompt-context' The prompt will resemble:
  1287.  
  1288.     ppm:1:1> 
  1289.  
  1290. In this case, the first '1' means that the first repository is selected.
  1291. The second '1' means the first target is selected. You can prove this by
  1292. adding another repository and switching to it:
  1293.  
  1294.     ppm:1:1> rep add TEMP http://my/repository
  1295.     Repositories:
  1296.       1. ActiveState Package Repository
  1297.     * 2. TEMP
  1298.     ppm:1:1> rep 2
  1299.     Repositories:
  1300.       1. ActiveState Package Repository
  1301.     * 2. TEMP
  1302.     ppm:2:1> 
  1303.  
  1304. The same is true for targets. If you have multiple versions of Perl
  1305. installed, when you swtich to a different target the second number
  1306. reflects the change.
  1307.  
  1308. If you delete all the repositories, the repository number changes to '?'.
  1309. The same goes for targets. If either item is indicated by a question mark,
  1310. you must configure a repository or target before proceeding.
  1311.  
  1312. =item 2
  1313.  
  1314. Search and Query:
  1315.  
  1316. PPM stores searches and search results from in the current session.
  1317. The prompt displays the search number:
  1318.  
  1319.     ppm:1:1> search Text
  1320.     [results displayed here]
  1321.     ppm:1:1:s1> 
  1322.  
  1323. The 's1' indicates that the last search you performed
  1324. can be viewed again by entering 'search 1'. Type 'search' with no
  1325. arguments to view the list of cached searches:
  1326.  
  1327.     ppm:1:1:s1> search
  1328.     Search Result Sets:
  1329.     * 1. Text
  1330.  
  1331. If you then enter 'search 1', you will see the same results as when you
  1332. typed 'search Text' earlier. If you search for something else ('search 
  1333. Parse') then the number will change to 's2':
  1334.  
  1335.     ppm:1:1:s1> search Parse
  1336.     [results displayed here]
  1337.     ppm:1:1:s2>
  1338.  
  1339. The same indicators apply to the query command. When you run a query,
  1340. a numerical indicator displays the current query:
  1341.  
  1342.     ppm:1:1:s1> query PPM
  1343.     [results displayed here]
  1344.     ppm:1:1:s1:q1> 
  1345.  
  1346. You can view the past queries with 'query', and view results by querying a
  1347. particular number.
  1348.  
  1349. =item 3
  1350.  
  1351. Describe and Properties:
  1352.  
  1353. When you use the describe command with the numerical switch (to view
  1354. package information based on the package number in the last search or
  1355. query), PPM sets that index to the current index. If you use the desribe
  1356. command with the name switch, and the name is found within the current
  1357. result, the index is set to the current one. If no package is found,
  1358. PPM creates a new search or query on-the-fly, and sets it as the current
  1359. search or query.
  1360.  
  1361. For example:
  1362.  
  1363.     ppm:1:1> search Text
  1364.     1. Convert-Context  [0.501]     an Attributed Text data type
  1365.     2. gettext          [1.01]      message handling functions
  1366.     3. HTML-FromText    [1.005]     mark up text as HTML
  1367.     4. HTML-Subtext     [1.03]      Perform text substitutions on an HTML
  1368.                                     template
  1369.     5. Locale-Maketext  [0.18]      framework for software localization
  1370.     ppm:1:1:s1>
  1371.  
  1372.     ppm:1:1:s1> describe 1
  1373.     ====================
  1374.     Package 1:
  1375.         Name: Convert-Context
  1376.      Version: 0.501
  1377.       Author: Martin Schwartz (martin@nacho.de)
  1378.     Abstract: an Attributed Text data type
  1379.     Implementations:
  1380.            1. i686-linux-thread-multi
  1381.            2. MSWin32-x86-multi-thread
  1382.            3. sun4-solaris-thread-multi
  1383.     ====================
  1384.     ppm:1:1:s1:sp1> 
  1385.  
  1386. The last prompt has an extra 'sp1'. That stands for 'search
  1387. package 1', and it means that PPM considers 'Convert-Context' to be the
  1388. default package. If you now type 'describe' or 'install' with no
  1389. arguments, PPM will apply your command to this package.
  1390.  
  1391. If you go back to where you had no default package selected:
  1392.  
  1393.     ppm:1:1> search Text
  1394.     1. Convert-Context  [0.501]     an Attributed Text data type
  1395.     2. gettext          [1.01]      message handling functions
  1396.     3. HTML-FromText    [1.005]     mark up text as HTML
  1397.     4. HTML-Subtext     [1.03]      Perform text substitutions on an HTML
  1398.                                     template
  1399.     5. Locale-Maketext  [0.18]      framework for software localization
  1400.     ppm:1:1:s1>
  1401.  
  1402. ...and you describe 'Locale-Maketext', you will see this:
  1403.  
  1404.     ppm:1:1:s1> describe Locale-Maketext
  1405.     ====================
  1406.         Name: Locale-Maketext
  1407.      Version: 0.18
  1408.       Author: Sean M. Burke (sburke@cpan.org)
  1409.     Abstract: framework for software localization
  1410.     Prerequisites:
  1411.            1. I18N-LangTags 0.13
  1412.     Implementations:
  1413.            1. i686-linux-thread-multi
  1414.            2. MSWin32-x86-multi-thread
  1415.            3. sun4-solaris-thread-multi
  1416.     ====================
  1417.     ppm:1:1:s1:sp5>
  1418.  
  1419. Notice that the correct package got selected, even though you specified it
  1420. by name.
  1421.  
  1422. =back
  1423.  
  1424. This behaviour also applies to the query and properties commands.
  1425.  
  1426. =head2 See Also
  1427.  
  1428. describe, properties, query, search
  1429.  
  1430. =head1 quickstart -- a beginners' guide to PPM3
  1431.  
  1432. =head2 Description
  1433.  
  1434. PPM (Programmer's Package Manager) is a utility for managing
  1435. software "packages". A package is a modular extension for a language
  1436. or a software program. Packages reside in  repositories. PPM can use 
  1437. three types of repositories:
  1438.  
  1439.  1) A directory on a CD-ROM or hard drive in your computer
  1440.  2) A website
  1441.  3) A remote Repository Server (such as ASPN)
  1442.  
  1443. Common Commands:
  1444.  
  1445. To view PPM help:
  1446.  
  1447.   help
  1448.   help <command>
  1449.  
  1450. To view the name of the current repository:
  1451.  
  1452.   repository
  1453.  
  1454. To search the current repository:
  1455.  
  1456.   search <keywords>
  1457.  
  1458. To install a package:
  1459.  
  1460.   install <package_name>
  1461.  
  1462. Most commands can be truncated; as long as the command is unambiguous,
  1463. PPM will recognize it.  For example, 'repository add foo' can be
  1464. entered as 'rep add foo'.
  1465.  
  1466. PPM features user profiles, which store information about installed
  1467. packages. Profiles are stored as part of your ASPN account; thus,
  1468. you can easily maintain package profiles for different languages, or
  1469. configure one machine with your favorite packages, and then copy that
  1470. installation to another machine by accessing your ASPN profile.  
  1471.  
  1472. For more information, type 'help profile' at the PPM prompt.
  1473.  
  1474. =head1 unicode -- Notes About Unicode Author Names
  1475.  
  1476. =head2 Description
  1477.  
  1478. CPAN author names are defined to be in Unicode. Unicode is an international
  1479. standard ISO 10646, defining the I<Universal Character Set (UCS)>. UCS
  1480. contains all characters of all other character set standards. For more
  1481. information about Unicode, see F<http://www.unicode.org/>.
  1482.  
  1483. The CPAN authors website is located at your local CPAN mirror under
  1484. /authors/00whois.html. For example, you can view it at
  1485. F<http://www.cpan.org/authors/00whois.html>. This page can be rendered by
  1486. Mozilla 0.9.8 and Internet Explorer 5.0, but you may have to install extra
  1487. language packs to view all the author names.
  1488.  
  1489. By default, PPM3 renders all characters as Latin1 when it prints them to your
  1490. console. Characters outside the Latin1 range (0-255) are not printed at all.
  1491.  
  1492. If your console can render UTF-8 characters, you can tell PPM3 not to recode
  1493. characters by using one of the following environment variables:
  1494.  
  1495. =over 4
  1496.  
  1497. =item
  1498.  
  1499. LC_ALL
  1500.  
  1501. =item
  1502.  
  1503. LC_CTYPE
  1504.  
  1505. =item
  1506.  
  1507. LANG
  1508.  
  1509. =item
  1510.  
  1511. PPM_LANG
  1512.  
  1513. =back
  1514.  
  1515. PPM3 requires one of these environment variables to contain the string
  1516. 'UTF-8'. For example, the following setting make PPM3 print
  1517. beautifully-formatted authors in RedHat Linux 7.2 (assumes you're using a
  1518. Bourne shell):
  1519.  
  1520.   $ PPM_LANG='en_US.UTF-8' xterm -u8 -e ppm3
  1521.  
  1522. Linux and Solaris users should refer to L<xterm> for more information about
  1523. setting up xterm to display UTF-8 characters.
  1524.  
  1525. =head1 BUGS
  1526.  
  1527. If you find a bug in PPM, please report it at this URL:
  1528.  
  1529.   http://bugs.activestate.com/enter_bug.cgi?set_product=PPM
  1530.  
  1531. Bugs regarding the ActiveState Package Repository (particularly missing or
  1532. out-of-date packages) should be sent via email to this email address:
  1533.  
  1534.   mailto:ppm-request@ActiveState.com
  1535.  
  1536. =head1 SEE ALSO
  1537.  
  1538. For information about the older version of PPM, see L<ppm>.
  1539.  
  1540. =head1 AUTHOR
  1541.  
  1542. ActiveState Corporation (support@ActiveState.com)
  1543.  
  1544. =head1 COPYRIGHT
  1545.  
  1546. Copyright (C) 2001, 2002, ActiveState Corporation. All Rights Reserved.
  1547.  
  1548. =cut
  1549.  
  1550. __END__
  1551. :endofperl
  1552.