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

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3.  
  4. <head>
  5. <title>ActivePerl FAQ - Using PPM to install modules</title>
  6. <link rel="STYLESHEET" href="../Active.css" type="text/css" media="screen">
  7. </head>
  8.  
  9. <body>
  10.  
  11. <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#EAE2BB">
  12. <tr> 
  13. <td width="57"><a target=_blank href="http://www.ActiveState.com/ActivePerl/">
  14. <img src="../images/activeperl_logo.gif" width="57" height="48" border="0" alt="ActivePerl"></a></td>
  15. <td><div align="center" class="heading">ActivePerl User Guide</div></td>
  16. <td width="112"><a target=_blank  href="http://www.ActiveState.com">
  17. <img src="../images/AS_logo.gif" width="112" height="48" border="0"  alt="ActiveState" /></a></td>
  18. </tr>
  19. <tr>
  20. <td class="lineColour" colspan="3"></td>
  21. </tr>
  22. </table>
  23.  
  24. <h1>Using PPM to install modules</h1>
  25.  
  26. <ul>
  27.   <li><a class="doc" href="#NAME">NAME</a></li>
  28.   <li><a class="doc" href="#DESCRIPTION">DESCRIPTION</a>
  29.     <ul>
  30.       <li><a class="doc" href="#what_is_ppm">What is the PPM?</a></li>
  31.       <li><a class="doc" href="#how_do_i_install_ppm">How do I install PPM?</a></li>
  32.       <li><a class="doc" href="#running_ppm">How do I run PPM?</a></li>
  33.       <li><a class="doc" href="#using_ppm">How do I use PPM?</a></li>
  34.       <li><a class="doc" href="#ppm3_commands">PPM Commands</a></li>
  35.       <li><a class="doc" href="#repositories">Where are the package repositories?</a></li>
  36.       <li><a class="doc" href="#how_to_make_ppm_distribution">How do I make a PPM package?</a></li>
  37.       <li><a class="doc" href="#ppm_and_proxies">PPM, Proxies and Firewalls</a></li>
  38.     </ul>
  39.   </li>
  40.   <li><a class="doc" href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</a></li>
  41. </ul>
  42.  
  43. <h2><a name="NAME">NAME</a></h2>
  44. <p>Using PPM to install modules</p>
  45.  
  46. <h2><a name="DESCRIPTION">DESCRIPTION</a></h2>
  47. <p>How to install and upgrade modules using PPM</p>
  48.  
  49. <h2><a name="what_is_ppm">What is the PPM?</a></h2>
  50. <p>The Programmer's Package Manager (PPM), formerly known as the Perl Package Manager,
  51. provides a command line interface for managing your modules and extensions (packages).
  52. PPM is used to access package repositories (or collections of packages on other machines),
  53. install and remove packages from your system, as well as update previously installed packages
  54. with the latest versions.
  55.  
  56. <p>The PPM 3.0 release introduces a complete rewrite of PPM, featuring many
  57. <a class="doc" href="#ppm3_commands"> additions and improvements</a>.
  58.  
  59. <h2><a name="how_do_i_install_ppm">How do I install PPM?</a></h2>
  60. <p>PPM (<code>ppm</code>) is installed when you install 
  61. ActivePerl.</p>
  62.  
  63. <h2><a name="running_ppm">How do I run PPM?</a></h2>
  64.  
  65. <p>Before you run PPM , you must either be connected to the Internet or have access 
  66. to a local <a class="doc" href="#repositories">repository</a>, like a hard drive 
  67. or the <a class="doc" href="http://aspn.activestate.com/ASPN/Downloads/ActiveCD"> 
  68. ActiveState ActiveCD</a>. If your Internet connection is via a firewall or proxy, 
  69. you must set the environment variable "HTTP_proxy" to the name of the proxy 
  70. server. If your proxy server requires a username and password, use the environment 
  71. variables "HTTP_proxy_user" and "HTTP_proxy_pass". See <a class="doc" href="#ppm_and_proxies"> 
  72. PPM, Proxies and Firewalls</a> for more information.
  73.  
  74. <p>To run PPM, enter <code>ppm</code> in a command prompt window 
  75. (Windows), or at the shell prompt (Linux / Solaris).</p>
  76.  
  77. <h2><a name="using_ppm">How do I use PPM?</h2></a>
  78.  
  79. <p>Quick start: at the PPM command prompt, type 
  80. <a class="doc" href="#search"><code>search *</code></a>
  81. to get a listing of all available packages, then type <code>install
  82. <package name></code>, where <<code>package name</code>> is the name of a
  83. package displayed by the <code>search</code> command. To list the packages you have previously
  84. installed using PPM, use the <a class="doc" href="#query"><code>query *</code></a> command.
  85.  
  86. <p>Those using PPM can type <code>search</code> to get a
  87. listing of all available packages, then type <code>install <packagename></code>,
  88. where <code><packagename></code> is the name of a package displayed by the
  89. <code>search</code> command. To list the packages you have previously
  90. installed using PPM, use the <code>query</code> command.</p>
  91.  
  92. <blockquote>
  93. <p>Note to PPM users: If you find the listing of packages scrolls by too quickly, you may want to
  94. use the command <code>set more <number></code> to pause the listing
  95. after <number> packages have been displayed. Use the <code>set save</code>
  96. command to save this configuration for future PPM sessions.</p>
  97. </blockquote>
  98.  
  99. <p>The first time you run PPM, the ActiveState package repository will be your default repository.
  100. If you change your default repository, that change will be saved. You can can select a different
  101. repository with the <a class="doc" href="#repository"> repository</a> command. See
  102. <a class="doc" href="#repositories">Where are the package repositories?</a> below.
  103.  
  104. <h2><a name="ppm3_commands">PPM Commands</a></h2>
  105.  
  106. <p>Items in <angle brackets> are arguments that can be used with the commands, while items
  107. in [square brackets] are optional elements. PPM will recognize and accept shortened versions of the
  108. commands, as long as enough letters are typed to be recognized by PPM. For example,
  109. "des" can be typed instead of "describe".
  110.  
  111. <!-- to facilitate parsing of the command descriptions, each command has <PPM-HELP> tags, with the argument of "name" -->
  112. <PPM3-HELP name="describe">
  113. <h3><a name="describe">Describe</a></h3>
  114. <blockquote>
  115. <table>
  116.     <tr>
  117.     <td><p>describe</td>
  118.     <td valign="top" align="left" width="10%"></td>
  119.     <td><p>Describes default/current package</td>
  120.     </tr>
  121.     <tr>
  122.     <td><p>describe <number></td>
  123.     <td valign="top" align="left" width="10%"></td>
  124.     <td><p>Describes package <number> in the current search set</td>
  125.     </tr>
  126.     <tr>
  127.     <td><p>describe <range></td>
  128.     <td valign="top" align="left" width="10%"></td>
  129.     <td><p>Describes packages in the given <range> from the current search set</td>
  130.     </tr>
  131.     <tr>
  132.     <td><p>describe <package name></td>
  133.     <td valign="top" align="left" width="10%"></td>
  134.     <td><p>Describes named package</td>
  135.     </tr>
  136.     <tr>
  137.     <td><p>describe <url></td>
  138.     <td valign="top" align="left" width="10%"></td>
  139.     <td><p>Describes package located at <url></td>
  140.     </tr>
  141.     <tr>
  142.     <td><p>describe <glob pattern></td>
  143.     <td valign="top" align="left" width="10%"></td>
  144.     <td><p>Performs a new search using <glob pattern></td>
  145.     </tr>
  146. </table>
  147. </blockquote>
  148.  
  149. <p>When used, <code>describe</code> returns information about a package, including the name of the package,
  150. the author's name and a brief description (called an "Abstract") about the package. For example, when you enter:
  151.  
  152. <blockquote><pre>
  153. describe libnet
  154. </pre></blockquote>
  155.  
  156. <p>returns:
  157.  
  158. <blockquote><pre>
  159. ===============================
  160. Package 1
  161.     Name: libnet
  162.  Version: 1.07.03
  163.   Author: Graham Barr
  164. Abstract: Collection of Network protocol modules
  165. Implementations:
  166.     1.sun4-solaris-thread-multi
  167.     2.i686-linux-thread-multi
  168.     3.MSWIn32-x86-multi-thread
  169. ===============================
  170. </pre></blockquote>
  171.  
  172. <p>There are two modifiers to the describe command:</p>
  173.  
  174. <blockquote>
  175. <table>
  176.     <tr>
  177.     <td><p>-ppd</td>
  178.     <td valign="top" align="left" width="10%"></td>
  179.     <td><p>Displays the raw PPD of the package.</td>
  180.     </tr>
  181.     <tr>
  182.     <td><p>-dump</td>
  183.     <td valign="top" align="left" width="10%"></td>
  184.     <td><p>The same as -ppd.</td>
  185.     </tr>
  186. </table>
  187. </blockquote>
  188.  
  189. <p>When the <code>describe</code> command is called without arguments, it returns information about the first
  190. package in the current <a class="doc" href="#search">search</a>. If there is no default search set, you'll be
  191. prompted to use <a class="doc" href="#search">search</a> to find a package.
  192.  
  193. <p>If <code>describe</code> is called with a numeric argument, that number is set as the default package
  194. and the information about that package is returned. If the number given doesn't exist, you'll be prompted
  195. to use <a class="doc" href="#search">search</a> to find a package. Also, you can use <code>describe</code> to give
  196. descriptions of several packages. For example:
  197.  
  198. <blockquote><pre>
  199. describe 4-7
  200. </pre></blockquote>
  201.  
  202. <p>will give you descriptions of packages 4 through 7, in the current search request. You can also enter:
  203.     
  204. <blockquote><pre>
  205. describe 3-4,10
  206. </pre></blockquote>
  207.  
  208. <p>to get information on packages 3, 4 and 10.
  209.  
  210. <p>If you specify a URL as the argument to describe, PPM will describe the
  211. package located at the URL. The URL must point to a PPD file. The URL
  212. can also point to a PPD file on your computer.</p>
  213.  
  214. <p>When the <code>describe</code> command is given a name with a wildcard (such as "*" or "?")
  215. it executes the <code>search</code> command with the given argument. With this, you can type
  216. something like <code>describe Tk*</code> will return the name(s) of any packages that match
  217. your search parameters.
  218.  
  219. <p>See Also:
  220. <a class="doc" href="#properties">Properties</a>
  221. </PPM3-HELP>
  222.  
  223. <PPM3-HELP name="exit">
  224. <h3><a name="exit">Exit</a></h3>
  225. <blockquote>
  226. <table>
  227.     <tr>
  228.     <td><p>exit</td>
  229.     <td valign="top" align="left" width="10%"></td>
  230.     <td><p>Exit</td>
  231.     </tr>
  232.     <tr>
  233.     <td><p>quit</td>
  234.     <td valign="top" align="left" width="10%"></td>
  235.     <td><p>Exit</td>
  236.     </tr>
  237.     <tr>
  238.     <td><p>q</td>
  239.     <td valign="top" align="left" width="10%"></td>
  240.     <td><p>Exit</td>
  241.     </tr>
  242.     <tr>
  243.     <td><p>q <query></td>
  244.     <td valign="top" align="left" width="10%"></td>
  245.     <td><p>Perform a new query (shortcut for query)</td>
  246.     </tr>
  247. </table>
  248. </blockquote>
  249.  
  250. <p>When you leave the PPM environment, the current settings are saved.
  251.  
  252. <p>See Also:
  253.     <a class="doc" href="#quit">Quit</a>
  254. </PPM3-HELP>
  255.  
  256. <PPM3-HELP name="help">
  257. <h3><a name="help">Help</a></h3>
  258.  
  259. <blockquote>
  260. <table>
  261.     <tr>
  262.     <td><p>help</td>
  263.     <td valign="top" align="left" width="10%"></td>
  264.         <td><p>Lists available commands and help topics</td>
  265.     </tr>
  266.     <tr>
  267.     <td><p>help <command></td>
  268.     <td valign="top" align="left" width="10%"></td>
  269.     <td><p>Lists detailed help about a specific command</td>
  270.     </tr>
  271. </table>
  272. </blockquote>
  273.  
  274. <p>The <code>help</code> command provides a brief description of the commands available
  275. within PPM. For help on a specific command, enter <code>help</code> followed by the command name.
  276. For example, enter <code>help settings</code> or <code>help set</code> for a detailed description of the
  277. <a class="doc" href="#settings">settings</a> command.
  278.  
  279. <p>There are some extra help topics built into PPM. They can be accessed within the PPM environment as follows:</p>
  280.  
  281. <blockquote>
  282. <table> 
  283.     <tr>
  284.     <td align="left"><p>HELP COMMAND</td>
  285.     <td valign="top" align="left" width="10%"></td>
  286.     <td align="left"><p>DESCRIPTION</td>
  287.     <td valign="top" align="left" width="10%"></td>
  288.     </tr>
  289.     <tr>    
  290.     <td colspan="4" bgcolor="#000000"></td>
  291.     </tr>
  292.     <tr>
  293.     <td><p>help ppm_migration</td>
  294.     <td valign="top" align="left" width="10%"></td>
  295.     <td><p>shows more details about the changes from previous versions of PPM</td>
  296.     </tr>
  297.     <tr>    
  298.     <td colspan="4" bgcolor="#000000"></td>
  299.     </tr>
  300.     <tr>
  301.     <td><p>help quickstart</td>
  302.     <td valign="top" align="left" width="10%"></td>
  303.     <td><p>an easy-to-follow guide to getting started with PPM</td>
  304.     </tr>
  305.     <tr>    
  306.     <td colspan="4" bgcolor="#000000"></td>
  307.     </tr>
  308.     <tr>
  309.     <td><p>help prompt</td>
  310.     <td valign="top" align="left" width="10%"></td>
  311.     <td><p>provides a detailed explanation about the PPM prompt</td>
  312.     </tr>
  313.     <tr>    
  314.     <td colspan="4" bgcolor="#000000"></td>
  315.     </tr>
  316. </table>
  317. </blockquote>
  318. </PPM3-HELP>
  319.  
  320. <PPM3-HELP name="install">
  321. <h3><a name="install">Install</a></h3>
  322.  
  323. <blockquote>
  324. <table>
  325.     <tr>
  326.     <td><p>install</td>
  327.     <td valign="top" align="left" width="10%"></td>
  328.     <td><p>Installs default package<td>
  329.     </tr>
  330.     <tr>
  331.     <td><p>install <number></td>
  332.     <td valign="top" align="left" width="10%"></td>
  333.     <td><p>Installs packages by a specific <number></td>
  334.     </tr>
  335.     <tr>
  336.     <td><p>install <range></td>
  337.     <td valign="top" align="left" width="10%"></td>
  338.     <td><p>Installs packages in the given numeric range <range>.</td>
  339.     </tr>
  340.     <tr>
  341.     <td><p>install <name></td>
  342.     <td valign="top" align="left" width="10%"></td>
  343.     <td><p>Installs named package</td>
  344.     </tr>
  345.     <tr>
  346.     <td><p>install <url></td>
  347.     <td valign="top" align="left" width="10%"></td>
  348.     <td><p>Installs the package located at <url></td>
  349.     </tr>
  350. </table>
  351. </blockquote>
  352.  
  353. <p>The <code>install</code> command is used to install packages from the
  354. repository. You can install packages by name or number (the number is given by
  355. the repository or search request), or a default package can be established
  356. through use of the <code>describe</code> command. There is also a set of
  357. modifiers that can be used with the install command:</p>
  358.  
  359. <p>The <code>install</code> command is used to install packages from
  360. the repository.  Install packages by name or number (the number is
  361. given by the repository or search request), or set a default package
  362. using the <code>describe</code> command. You can specify a full URL to
  363. a PPD file; the URL may point to a PPD file on your computer.</p>
  364.  
  365. <p>If you have profile tracking enabled, (see 'help profile') the current profile
  366. will be updated to include the newly installed package(s).</p>
  367.  
  368. <p>The following modifiers can be used with the install command:</p>
  369.  
  370. <blockquote><pre>-force  -noforce
  371. -follow -nofollow</pre></blockquote>
  372.  
  373. <p>The <code>force</code> and <code>follow</code> commands determine how
  374. packages are installed:
  375.  
  376. <blockquote>
  377. <table>
  378.     <tr>
  379.     <td align="left"><p>FORCE</td>
  380.     <td valign="top" align="left" width="10%"></td>
  381.     <td align="left"><p>FOLLOW</td>
  382.     <td valign="top" align="left" width="10%"></td>
  383.     <td align="left"><p>RESULT</td>
  384.     </tr>
  385.     <tr>    
  386.     <td colspan="5" bgcolor="#000000"></td>
  387.     </tr>
  388.     <tr>
  389.     <td><p>false</td>
  390.     <td valign="top" align="left" width="10%"></td>
  391.     <td><p>false</td>
  392.     <td valign="top" align="left" width="10%"></td>
  393.     <td><p>Checks to see if the package is installed and
  394.                if it is, installation stops. If there are any
  395.                missing prerequisites, the installation will
  396.                fail.</td>
  397.     </tr>
  398.     <tr>    
  399.     <td colspan="5" bgcolor="#000000"></td>
  400.     </tr>
  401.     <tr>
  402.     <td><p>false</td>
  403.     <td valign="top" align="left" width="10%"></td>
  404.     <td><p>true</td>
  405.     <td valign="top" align="left" width="10%"></td>
  406.     <td><p>Checks to see if the package is installed and
  407.                if it is, installation stops. If there are any
  408.                missing prerequisites, they are automatically
  409.                installed. NOTE: this is the default setting
  410.                when PPM is first installed.</td>
  411.     </tr>
  412.     <tr>    
  413.     <td colspan="5" bgcolor="#000000"></td>
  414.     </tr>
  415.     <tr>
  416.     <td><p>true</td>
  417.     <td valign="top" align="left" width="10%"></td>
  418.     <td><p>false</td>
  419.     <td valign="top" align="left" width="10%"></td>
  420.     <td><p>If the package is installed, PPM will
  421.                reinstall the package. If there are any
  422.                missing prerequisites, the installation will
  423.                fail.</td>
  424.     </tr>
  425.     <tr>    
  426.     <td colspan="5" bgcolor="#000000"></td>
  427.     </tr>
  428.     <tr>
  429.     <td><p>true</td>
  430.     <td valign="top" align="left" width="10%"></td>
  431.     <td><p>true</td>
  432.     <td valign="top" align="left" width="10%"></td>
  433.     <td><p>If the package is installed, PPM will
  434.                reinstall the package. All prerequisites are
  435.                installed, missing or not.</td>
  436.     </tr>
  437.     <tr>    
  438.     <td colspan="5" bgcolor="#000000"></td>
  439.     </tr>
  440. </table>
  441. </blockquote>
  442.  
  443. <p>If you do not specify any options, install uses the default settings. Set or view the
  444. current defaults using the <a class="doc" href="#settings">settings</a> command.</p>
  445.  
  446. <p>For example:</p>
  447.  
  448. <blockquote><pre>install foo</pre></blockquote>
  449.  
  450. <p>will install the package named "foo", using the default settings. 
  451. Over-ride the defaults using the install modifiers described above.</p>
  452.  
  453. <p>For example:</p>
  454.  
  455. <blockquote><pre>install foo -force</pre></blockquote>
  456.  
  457. <p>will install the "foo" package, even if it has already been
  458. installed. If both <code>-force</code> and <code>-follow</code> are
  459. set to "true", all the prerequisites for any package you install will
  460. also be installed. For example, the installation of a tk-related
  461. package, like "tk-ach" which is 8.4 kB will be preceded by the
  462. installation of Tk, which is 1.7 MB.</p>
  463.  
  464. <p>You can also install by package number. Package numbers are based
  465. on the current repository or current search request. For example:</p>
  466.  
  467. <blockquote><pre>
  468. install 6
  469. </pre></blockquote>
  470.  
  471. <p>installs package number 6. You can install more than one package at one time:
  472.     
  473. <blockquote><pre>
  474. install 3-5
  475. </pre></blockquote>
  476.  
  477. <p>installs packages 3, 4 and 5. You can also type <code>install 3-6,8</code> to receive packages 3,4,5,6 and 8.
  478. </PPM3-HELP>
  479.  
  480. <PPM3-HELP name="profile">
  481. <h3><a name="profile">Profile</a></h3>
  482. <blockquote>
  483. <table>
  484.     <tr>
  485.     <td><p>profile</td>
  486.     <td valign="top" align="left" width="10%"></td>
  487.     <td><p>Lists profiles available on the repository</td>
  488.     </tr>
  489.     <tr>
  490.         <td><p>profile <num></td>
  491.         <td valign="top" align="left" width="10%"></td>
  492.         <td><p>Switches to the given profile</td>
  493.     </tr>
  494.     <tr>
  495.     <td><p>profile add <name></td>
  496.     <td valign="top" align="left" width="10%"></td>
  497.     <td><p>Creates a new profile on the repository</td>
  498.     </tr>
  499.     <tr>
  500.     <td><p>profile delete <name or num></td>
  501.     <td valign="top" align="left" width="10%"></td>
  502.     <td><p>Deletes the given profile</td>
  503.     </tr>
  504.     <tr>
  505.     <td><p>profile describe [name or num]</td>
  506.      <td valign="top" align="left" width="10%"></td>
  507.         <td><p>Describes the current or given profile</td>
  508.     </tr>
  509.     <tr>
  510.     <td><p>profile save</td>
  511.     <td valign="top" align="left" width="10%"></td>
  512.     <td><p>Saves the client state to the current profile</td>
  513.     </tr>
  514.     <tr>
  515.     <td><p>profile restore</td>
  516.     <td valign="top" align="left" width="10%"></td>
  517.     <td><p>Restores the current profile</td>
  518.     </tr>
  519.     <tr>
  520.     <td><p>profile rename <name or num> <name></td>
  521.     <td valign="top" align="left" width="10%"></td>
  522.     <td><p>Renames the given profile to <name></td>
  523.     </tr>
  524. </table>
  525. </blockquote>
  526.  
  527. <p>Profiles store information about packages that are installed on
  528. your system. If the <code>profile-track</code> setting is enabled,
  529. your ASPN Profile will be updated with information about installed
  530. packages. Profiles allow you to easily migrate, reinstall, upgrade or
  531. restore PPM packages in one or more locations.</p>
  532.  
  533. <p>To use profiles, you must have a license for ASPN Perl. For license
  534. information, see the <a class="doc"
  535. href="http://www.ActiveState.com/ASPN_Perl">ASPN Perl</a> web site.
  536. Disable profile tracking by setting
  537. <code>profile-track=0</code>.</p>
  538.  
  539. </PPM3-HELP>
  540.  
  541. <PPM3-HELP name="properties">
  542. <h3><a name="properties">Properties</a></h3>
  543.  
  544. <blockquote>
  545. <table> 
  546.     <tr>
  547.     <td><p>prop</td>
  548.     <td valign="top" align="left" width="10%"></td>
  549.     <td><p>Describes default installed package</td>
  550.     </tr>
  551.     <tr>
  552.     <td><p>prop <number></td>
  553.     <td valign="top" align="left" width="10%"></td>
  554.     <td><p>Describes installed package <number></td>
  555.     </tr>
  556.     <tr>
  557.     <td><p>prop <range></td>
  558.     <td valign="top" align="left" width="10%"></td>
  559.     <td><p>Describes a <range> of installed package</td>
  560.     </tr>
  561.     <tr>
  562.         <td><p>prop <package name></td>
  563.         <td valign="top" align="left" width="10%"></td>
  564.         <td><p>Describes named installed package</td>
  565.     </tr>
  566.     <tr>
  567.     <td><p>prop <url></td>
  568.     <td valign="top" align="left" width="10%"></td>
  569.     <td><p>Describes installed package located at <url></td>
  570.     </tr>
  571.     <tr>
  572.     <td><p>prop <glob pattern></td>
  573.     <td valign="top" align="left" width="10%"></td>
  574.     <td><p>Performs a new query using <glob pattern></td>
  575.     </tr>
  576. </table>
  577. </blockquote>
  578.  
  579. <p>The <code>properties</code> command is an verbose form of the <a
  580. class="doc" href="#describe">describe</a> command. In addition to
  581. summary information, properties will display the installation date and
  582. a URL showing the location of the package within the repository.</p>
  583.  
  584. <p>If you specify the package as a URL, PPM determines the package name
  585. from the URL and searches for that.</p>
  586.  
  587. <p>When the <code>properties</code> command is used with wildcard
  588. arguments, the text entered at the PPM prompt is passed to the <a
  589. class="doc" href="#query">query</a> command.</p>
  590.  
  591. <p>For example, typing <code>properties libnet</code> will give you:</p>
  592.  
  593. <blockquote><pre>
  594.     Name: libnet
  595.  Version: 1.07.03
  596.   Author: Graham Barr
  597. Abstract: Collection of Network protocol modules
  598. InstDate: Fri Oct  2 16:15:15 1998
  599. Location: http://ppm.ActiveState.com/cgibin/PPM/ppmserver.pl?urn:/PPMServer
  600. </pre></blockquote>
  601. <p>See Also:
  602.     <a class="doc" href="#describe">Describe</a>
  603. </PPM3-HELP>
  604.  
  605. <PPM3-HELP name="query">
  606. <h3><a name="query">Query</a></h3>
  607.  
  608. <blockquote>
  609. <table>
  610.     <tr>
  611.     <td><p>query</td>
  612.     <td valign="top" align="left" width="10%"></td>
  613.     <td><p>Displays list of previous queries</td>
  614.     </tr>
  615.     <tr>
  616.     <td><p>query <number></td>
  617.     <td valign="top" align="left" width="10%"></td>
  618.     <td><p>Displays results of previous query</td>
  619.     </tr>
  620.     <tr>
  621.     <td><p>query <glob pattern></td>
  622.     <td valign="top" align="left" width="10%"></td>
  623.     <td><p>Performs a new query using <glob pattern></td>
  624.     </tr>
  625.     <tr>
  626.     <td><p>query *</td>
  627.     <td valign="top" align="left" width="10%"></td>
  628.     <td><p>Displays a list of all installed packages</td>
  629.     </tr>
  630. </table>    
  631. </blockquote>
  632.  
  633. <p>The query command displays a list of all installed packages, or a
  634. list based on the <glob pattern> switch. You can also check the
  635. list of past queries, or the results of a past query.</p>
  636.  
  637. <p>With PPM 3.1, you can now perform much more powerful queries. The
  638. syntax is identical to the <a class="doc" href="#search">search</a>
  639. command, and almost all the search switches are also available for
  640. querying installed packages.</p>
  641.  
  642. <p>Recall previous queries with the <code>query <number></code>
  643. command. PPM3 stores all queries from the current PPM session.</p>
  644.  
  645. <p>Note: Depending on the value of the "case-sensitivity" setting, the
  646. query may or may not be case-sensitive. See <a class="doc"
  647. href="#settings">"help settings"</a> for instructions on setting the
  648. default case sensitivity.</p>
  649.  
  650. <p>See Also:
  651.     <a class="doc" href="#settings">Settings</a>
  652. </PPM3-HELP>
  653.  
  654. <PPM3-HELP name="remove">
  655. <h3><a name="remove">Remove</a></h3>
  656.  
  657. <blockquote>
  658. <table>
  659.     <tr>
  660.     <td><p>remove</td>
  661.     <td valign="top" align="left" width="10%"></td>
  662.     <td><p>Deletes default installed package</td>
  663.     </tr>
  664.     <tr>
  665.     <td><p>remove <number></td>
  666.     <td valign="top" align="left" width="10%"></td>
  667.     <td><p>Deletes installed package <number></td>
  668.     </tr>
  669.     <tr>
  670.     <td><p>remove <range></td>
  671.     <td valign="top" align="left" width="10%"></td>
  672.     <td><p>Deletes a <range> of installed packages</td>
  673.     </tr>
  674.     <tr>
  675.     <td><p>remove <name></td>
  676.     <td valign="top" align="left" width="10%"></td>
  677.     <td><p>Deletes a package by a specific name</td>
  678.     </tr>
  679.     <tr>
  680.     <td><p>remove <url></td>
  681.     <td valign="top" align="left" width="10%"></td>
  682.     <td><p>Deletes the package located at <url></td>
  683.     </tr>
  684. </table>
  685. </blockquote>
  686.  
  687. <p>The <code>remove</code> and <code>uninstall</code> commands
  688. function identically. They are used to delete packages from the
  689. current target (specified using the <a class="doc"
  690. href="#target">target</a> command). If profile tracking is enabled,
  691. (see <a class="doc" href="#profile">profile</a>) the current PPM
  692. profile on ASPN will be updated.</p>
  693.  
  694. <p>Packages can be removed by package name, by their numerical listing, or 
  695. by specifying a URL to a PPD file. For example:</p>
  696.  
  697. <blockquote><pre>
  698. remove XML-DOM
  699. </pre></blockquote>
  700.  
  701. <p>will delete the XML-DOM package from the target.</p>
  702.  
  703. <p>To remove package by number:</p>
  704.  
  705. <blockquote><pre>
  706. remove 6
  707. </pre></blockquote>
  708.  
  709. <p>and the sixth package in your current query will be removed. If no
  710. queries have been run in the current PPM session, you will be prompted
  711. to use a <code>query</code> to find a package before deleting
  712. it. Remember that removing packages clears all previous query
  713. requests, since the numerical sequence stored in any query will no
  714. longer be true once package(s) have been removed.</p>
  715.  
  716. Packages can also be removed in groups.  For example:
  717.  
  718. <blockquote><pre>
  719. remove 4-7
  720. </pre></blockquote>
  721.  
  722. will delete packages 4, 5, 6, and 7 from your target. You can also skip
  723. packages:
  724.  
  725. <blockquote><pre>
  726. remove 3-5, 7
  727. </pre></blockquote>
  728.  
  729. <p>this will delete packages 3, 4, 5 and 7, but will leave 6 intact.
  730. Remember to run a new query whenever you remove a package from your
  731. target.</p>
  732.  
  733. <p>If you specify the package as a URL, PPM determines the package name from
  734. the URL and removes that.</p>
  735.  
  736. <p>Please note that wildcards like "*" or "?" cannot be used with the
  737. <code>remove</code> command.</p>
  738.  
  739. </PPM3-HELP>
  740.  
  741. <PPM3-HELP name="repository">
  742. <h3><a name="repository">Repository</a></h3>
  743.  
  744. <blockquote>
  745. <table>
  746.     <tr>
  747.     <td><p>rep</td>
  748.     <td valign="top" align="left" width="10%"></td>
  749.     <td><p>Displays all repositories</td>
  750.     </tr>
  751.     <tr>
  752.     <td><p>rep add [name] <location></td>
  753.     <td valign="top" align="left" width="10%"></td>
  754.     <td><p>Adds a new repository; makes it active</td>
  755.     </tr>
  756.     <tr>
  757.     <td><p>rep delete <name or num></td>
  758.     <td valign="top" align="left" width="10%"></td>
  759.     <td><p>Deletes specified repository</td>
  760.     </tr>
  761.     <tr>
  762.     <td><p>rep describe <name or num></td>
  763.     <td valign="top" align="left" width="10%"></td>
  764.     <td><p>Displays information about the specified repository</td>
  765.     </tr>
  766.     <tr>
  767.     <td><p>rep rename <name or num> <name></td>
  768.     <td valign="top" align="left" width="10%"></td>
  769.     <td><p>Renames the specified repository to the given name</td>
  770.     </tr>
  771.     <tr>
  772.     <td><p>rep on <name></td>
  773.     <td valign="top" align="left" width="10%"></td>
  774.     <td><p>Activates the specified repository</td>
  775.     </tr>
  776.     <tr>
  777.     <td><p>rep off <name or num></td>
  778.     <td valign="top" align="left" width="10%"></td>
  779.     <td><p>Removes the repository from the active list</td>
  780.     </tr>
  781.     <tr>
  782.     <td><p>rep up <name or num></td>
  783.     <td valign="top" align="left" width="10%"></td>
  784.     <td><p>Moves the specified repository up one</td>
  785.     </tr>
  786.     <tr>
  787.     <td><p>rep down <name or num></td>
  788.     <td valign="top" align="left" width="10%"></td>
  789.     <td><p>Moves the specified repository down one</td>
  790.     </tr>
  791. </table>
  792. </blockquote>
  793.  
  794. <p>The <name> needs to be put inside doublequotes if it contains
  795. any spaces.</p>
  796.  
  797. <p>The <code>repository</code> (or <code>rep</code>) command controls two
  798. lists or repositories:</p>
  799.  
  800. <ol>
  801.  
  802. <li><p>The list of "active" repositories. This is the list of
  803. repositories used by <a class="doc" href="#search">search</a>, <a
  804. class="doc" href="#install">install</a>, and <a class="doc"
  805. href="#upgrade">upgrade</a>.</p>
  806.  
  807. <li><p>The list of all known repositories. You can designate a
  808. repository "inactive", which means PPM will not use it in any
  809. commands.</p>
  810.  
  811. </ol>
  812.  
  813. <p>If no arguments are given, the <code>rep</code> command will list
  814. the active repositories defined in the PPM settings. The order is
  815. significant: when installing a package, PPM will try the first
  816. repository, then the second, and so on, until it find the package you
  817. asked for. When searching, PPM merges the results of all the
  818. repositories together, so the order is less important (see the <a
  819. class="doc" href="#search">search</a> command).</p>
  820.  
  821. <p>For example, when you enter:</p>
  822.  
  823. <blockquote><pre>
  824. rep
  825. </pre></blockquote>
  826.  
  827. <p>PPM3 will return something resembling this:</p>
  828.  
  829. <blockquote><pre>
  830. Repositories:
  831. [1] ActiveCD
  832. [2] ActiveState Package Repository
  833. [ ] An inactive repository
  834. </pre></blockquote>
  835.  
  836. <p>In the example above, entering <code>rep off 2</code> will disable
  837. the second repository (the ActiveStat Package Repository). To add
  838. another repository:</p>
  839.  
  840. <blockquote><pre>
  841. rep add [options] <NAME> <LOCATION>
  842. </pre></blockquote>
  843.  
  844. <p>The following options are available for the <code>add</code>
  845. command:</p>
  846.  
  847. <blockquote><pre>-username
  848. -password
  849. </pre></blockquote>
  850.  
  851. <p>These options allow you to specify a username and password to be
  852. used when logging into a repository. Currently, these are only used
  853. for FTP and WWW repositories.</p>
  854.  
  855. <p>For example:</p>
  856.  
  857. <blockquote><pre>
  858. rep add "EZE" http://foo.com/MyPPMPackages
  859. </pre></blockquote>
  860.  
  861. <p>with "EZE" being the name of the repository (for easy reference)
  862. and the location noted by the http location. If you were to enter the
  863. rep command again, you would see:</p>
  864.  
  865. <blockquote><pre>
  866. ppm> rep
  867. Repositories:
  868. [1] ActiveCD
  869. [2] ActiveState Package Repository
  870. [3] EZE
  871. [ ] An inactive repository
  872. </pre></blockquote>
  873.  
  874. <p>To move the new repository to the top of the Active list, you would
  875. type:</p>
  876.  
  877. <blockquote><pre>
  878. ppm> rep up EZE
  879. Repositories:
  880. [1] ActiveCD
  881. [2] EZE
  882. [3] ActiveState Package Repository
  883. [ ] An inactive repository
  884. ppm> rep up EZE
  885. Repositories:
  886. [1] EZE
  887. [2] ActiveCD
  888. [3] ActiveState Package Repository
  889. [ ] An inactive repository
  890. </pre></blockquote>
  891.  
  892. <p>To disable the ActiveCD repository temporarily, enter the
  893. following:</p>
  894.  
  895. <blockquote><pre>
  896. ppm> rep off ActiveCD
  897. Repositories:
  898. [1] EZE
  899. [2] ActiveState Package Repository
  900. [ ] ActiveCD
  901. [ ] An inactive repository
  902. </pre></blockquote>
  903.  
  904. <p>To describe a repository, refer to it either by name, or by the
  905. number displayed next to the repository in the Active Repositories
  906. list. You must refer to inactive repositories by their full name.</p>
  907.  
  908. <blockquote><pre>
  909. ppm> rep describe 2
  910. Describing Active Repository 2:
  911.     Name: ActiveState Package Repository
  912. Location: http://ppm.ActiveState.com/cgibin/PPM/...
  913.     Type: PPMServer 2.00
  914. ppm> rep describe ActiveCD
  915. Describing Inactive Repository:
  916.     Name: ActiveCD
  917. Location: F:\PPMPackages\5.8plus
  918.     Type: Local Directory
  919. </pre></blockquote>
  920.  
  921. <p>To re-activate the ActiveCD repository, use the <code>rep on</code>
  922. command. You must refer to inactive repositories by name, not
  923. number.</p>
  924.  
  925. <blockquote><pre>
  926. ppm> rep on ActiveCD
  927. Active Repositories:
  928. [1] EZE
  929. [2] ActiveState Package Repository
  930. [3] ActiveCD
  931. [ ] An inactive repository
  932. </pre></blockquote>
  933.  
  934. <p>PPM3 supports several types of package repositories:</p>
  935.  
  936. <ol>
  937.  
  938. <li><p>PPM Server 3</p>
  939.  
  940. <p>ActiveState's SOAP-driven package server. Because all searches are
  941. done server-side, the server can deliver much richer information about
  942. packages than other repositories.</p>
  943.        
  944. <li><p>PPM Server 2</p>
  945.  
  946. <p>The SOAP server designed for PPM version 2. PPM 3.1 ships with the
  947. PPM2 repository as well as the PPM3 repository, so you can use
  948. either. Simple searches are performed server-side. If your search is
  949. too complicated for the server, PPM 3.1 will download the package
  950. summary and search by itself.</p>
  951.  
  952. <li><p>Web Repositories</p>
  953.  
  954. <p>Older versions of PPM used non-SOAP repositories (directories full of
  955. PPD files accessible using a web browser). Over the history of PPM,
  956. there have been several different ways of organising the files so that
  957. PPM can search for packages properly. PPM3 tries to download a summary
  958. file first -- if that fails, it gets the directory index. It parses the
  959. summary or the index, and caches it. Searches are done from the
  960. cache.</p>
  961.  
  962. <li><p>FTP Repositories</p>
  963.  
  964. <p>FTP is another way of exposing a directory full of PPD files. PPM3
  965. consideres FTP repositories a subset of Web repositories. Treat them as
  966. identical: PPM3 downloads the summary or the "index" (file listing in
  967. this case), parses it, and then searches from it.</p>
  968.  
  969. <li><p>Local Repositories</p>
  970.  
  971. <p>To support installing packages from the ActiveCD, a local directory can
  972. be a repository. PPM searches the files in the directory. All valid
  973. path formats are supported, including UNC paths.</p>
  974.  
  975. </ol>
  976.  
  977. </PPM3-HELP>
  978.  
  979. <PPM3-HELP name="search">
  980. <h3><a name="search">Search</a></h3>
  981.  
  982. <blockquote>
  983. <table>
  984.     <tr>
  985.     <td valign="top" align="left" width="20%"><p>search</td>
  986.     <td valign="top" align="left" width="10%"></td>
  987.     <td><p>Displays list of previous searches</td>
  988.     </tr>
  989.     <tr>
  990.     <td><p>search <number></td>
  991.     <td valign="top" align="left" width="10%"></td>
  992.     <td><p> Displays results of search <number></td>
  993.     </tr>
  994.     <tr>
  995.     <td><p>search <glob pattern></td>
  996.     <td valign="top" align="left" width="10%"></td>
  997.     <td><p>Performs a new search</td>
  998.     </tr>
  999.     <tr>
  1000.     <td><p>search <field>=<glob pattern></td>
  1001.     <td valign="top" align="left" width="10%"></td>
  1002.     <td><p>Searches for all packages matching the field</td>
  1003.     </tr>
  1004.     <tr>
  1005.     <td><p>search *</td>
  1006.     <td valign="top" align="left" width="10%"></td>
  1007.     <td><p>Displays all packages in the current repository</td>
  1008.     </tr>
  1009. </table>
  1010. </blockquote>
  1011.  
  1012. <p>The available fields are <code>ABSTRACT</code>, <code>NAME</code>,
  1013. <code>TITLE</code>, <code>AUTHOR</code>, and <code>VERSION</code>.
  1014. <code>NAME</code> is used when you do not specify a field.</p>
  1015.  
  1016. <p>Use the <code>search</code> command to look through the repository
  1017. for packages.  PPM provides powerful search functionality. For
  1018. example:</p>
  1019.  
  1020. <blockquote>
  1021. <table>
  1022.     <tr valign="top">
  1023.         <td align="left" width="20%"><p>COMMAND</p></td>
  1024.         <td width="10%"></td>
  1025.         <td align="left"><p>MEANING</p></td>
  1026.         <td width="10%"></td>
  1027.         <td width="30%" align="left"><p>SAMPLE RESULTS</p></td>
  1028.     </tr>
  1029.     <tr>
  1030.         <td colspan="5" bgcolor="#000000"></td>
  1031.     </tr>
  1032.     <tr valign="top">
  1033.         <td width="20%"><p><code>search CGI</code></p></td>
  1034.         <td width="10%"></td>
  1035.         <td><p>Search for 'CGI' anywhere in the name</p></td>
  1036.         <td width="10%"></td>
  1037.         <td><p><code>Apache-CGI<br>CGI-Application<br>CGI-ArgChecker</code></p></td>
  1038.     </tr>
  1039.     <tr>
  1040.         <td colspan="5" bgcolor="#000000"></td>
  1041.     </tr>
  1042.     <tr valign="top">
  1043.         <td width="20%"><p><code>search CGI*</code></p></td>
  1044.         <td width="10%"></td>
  1045.         <td><p>Search for 'CGI' at beginning of name</p></td>
  1046.         <td width="10%"></td>
  1047.         <td><p><code>CGI-Application<br>CGI-ArgChecker</code></p></td>
  1048.     </tr>
  1049.     <tr>
  1050.         <td colspan="5" bgcolor="#000000"></td>
  1051.     </tr>
  1052.     <tr valign="top">
  1053.         <td width="20%"><p><code>search AUTHOR=smith</code></p></td>
  1054.         <td width="10%"></td>
  1055.         <td><p>Search for all modules authored by someone with 'smith' in their name or email</p></td>
  1056.         <td width="10%"></td>
  1057.         <td><p><code>Apache-ProxyPass<br>Business-ISBN</code></p></td>
  1058.     </tr>
  1059.     <tr>
  1060.         <td colspan="5" bgcolor="#000000"></td>
  1061.     </tr>
  1062.     <tr valign="top">
  1063.         <td width="20%"><p><code>search ABSTRACT=compress</code></p></td>
  1064.         <td width="10%"></td>
  1065.         <td><p>Search for 'compress' anywhere in the abstract</p></td>
  1066.         <td width="10%"></td>
  1067.         <td><p><code>Apache-GzipChain<br>IO-Zlib</code></p></td>
  1068.     </tr>
  1069.     <tr>
  1070.         <td colspan="5" bgcolor="#000000"></td>
  1071.     </tr>
  1072.     <tr valign="top">
  1073.         <td width="20%"><p><code>search CGI or ABSTRACT=web</code></p></td>
  1074.         <td width="10%"></td>
  1075.         <td><p>Search for 'CGI' in the name, or 'web' in the abstract</p></td>
  1076.         <td width="10%"></td>
  1077.         <td><p><code>CGI-XMLForm<br>HTML-Clean</code></p></td>
  1078.     </tr>      
  1079.     <tr>
  1080.         <td colspan="5" bgcolor="#000000"></td>
  1081.     </tr>
  1082.     <tr valign="top">
  1083.         <td width="20%"><p><code>search XML and (parser or ABSTRACT=pars) and not XPath</code></p></td>
  1084.         <td width="10%"></td>
  1085.         <td><p>Search for 'XML' in the name and either 'parser' in the name or 'pars' in the abstract, but not with 'XPath' in the name</p></td>
  1086.         <td width="10%"></td>
  1087.         <td><p><code>XML-Node<br>XML-Parser-EasyTree</code></p></td>
  1088.     </tr>      
  1089.     <tr>
  1090.         <td colspan="5" bgcolor="#000000"></td>
  1091.     </tr>
  1092.     <tr valign="top">
  1093.         <td width="20%"><p><code>search Data::Grove</code></p></td>
  1094.         <td width="10%"></td>
  1095.         <td><p>PPM Server 3.0 repositories only: Search by module name, even if unrelated to the containing package</p></td>
  1096.         <td width="10%"></td>
  1097.         <td><p><code>libxml-perl</code></p></td>
  1098.     </tr>      
  1099.     <tr>
  1100.         <td colspan="5" bgcolor="#000000"></td>
  1101.     </tr>
  1102.     <tr valign="top">
  1103.         <td width="20%"><p><code>search *</code></p></td>
  1104.         <td width="10%"></td>
  1105.         <td><p>Browse all packages in the repository</p></td>
  1106.         <td></td>
  1107.         <td><p><code>Affix-Infix2Postfix<br>AI-Fuzzy<br>AI-NeuralNet-BackProp<br></code><em>[many more ...]</em></p></td>
  1108.     </tr>
  1109.     <tr>
  1110.         <td colspan="5" bgcolor="#000000"></td>
  1111.     </tr>
  1112. </table>
  1113. </blockquote>
  1114.  
  1115. <p>Recall previous searches using the <code>search <number></code>
  1116. command. PPM stores searches for each session until you exit PPM.</p>
  1117.  
  1118. <p>Some package names or versions are too long to be displayed in the
  1119. search results. If a name is too long, you will see a <code>~</code>
  1120. (Tilde) as the last visible character in the column. You can use <a
  1121. class="doc" href="#describe">describe</a> to view detailed information
  1122. about such packages.</p>
  1123.  
  1124. <p><i>Search Results</i></p>
  1125.  
  1126. <p>When you type a command like <code>search XML</code>, PPM searches
  1127. in each of the Active Repositories (see the <a class="doc"
  1128. href="#repository">repository</a> command) for your package. The
  1129. results are merged into one list, and duplicates (packages found in
  1130. more than one repository) are hidden.</p>
  1131.  
  1132. <p>You can control what fields PPM shows for each package. The fields
  1133. each have a built-in weight, which is used to calculate how wide to
  1134. make each field based on the width of your screen. Information that
  1135. doesn't fit into a field is truncated, and a tilde (<code>~</code>)
  1136. character is displayed in the last column of the field.</p>
  1137.  
  1138. <p>Let's get down to an example:</p>
  1139.  
  1140. <blockquote><pre>
  1141. ppm> search XML
  1142. Searching in Active Repositories
  1143.     1. CGI-XMLForm           [0.10] Extension to CGI.pm which
  1144.     2. Data-DumpXML          [1.01] Dump arbitrary data structures
  1145.     3. DBIx-XML_RDB          [0.05] Perl extension for creating XML
  1146.     4. DBIx-XMLMessage       [0.03] XML Message exchange between DBI
  1147.     5. GoXML-XQI            [1.1.4] Perl extension for the XML Query
  1148.     6. Language-DATR-DATR2~ [0.901] manipulate DATR .dtr, XML, HTML,
  1149.     7. libxml-perl           [0.07] support for deeply nested
  1150.     8. Mail-FilterXML         [0.1] Undetermined
  1151.     9. Mail-XML              [0.03] Adds a toXML() method to
  1152.    10. Pod-XML               [0.93] Module to convert POD to XML
  1153. </pre></blockquote>
  1154.  
  1155. <p>As you can see, the three fields being displayed are:</p>
  1156.  
  1157. <blockquote>    
  1158. <table>
  1159.     <tr>
  1160.     <td><p>NAME</td>
  1161.     <td valign="top" align="left" width="10%"></td>
  1162.     <td><p>The package name</td>
  1163.     </tr>
  1164.     <tr>
  1165.     <td><p>VERSION</td>
  1166.     <td valign="top" align="left" width="10%"></td>
  1167.     <td><p>The package version</td>
  1168.     </tr>
  1169.     <tr>
  1170.     <td><p>ABSTRACT</td>
  1171.     <td valign="top" align="left" width="10%"></td>
  1172.     <td><p>The package abstract</td>
  1173.     </tr>
  1174. </table>
  1175. </blockquote>
  1176.  
  1177. <p>You can customize the view somewhat. If you want to view the
  1178. authors, but not the abstract, you can run the same <a class="doc"
  1179. href="#search">search</a> command after using <a class="doc"
  1180. href="#settings">set</a> to change the fields:</p>
  1181.  
  1182. <blockquote><pre>
  1183. ppm> set fields="NAME VERSION AUTHOR"
  1184. Setting 'fields' set to 'name version author'.
  1185. ppm> search XML
  1186. Using cached search result set 1.
  1187.     1. CGI-XMLForm         [0.10] Matt Sergeant (matt@sergeant.org)
  1188.     2. Data-DumpXML        [1.01] Gisle Aas (gisle@aas.no)
  1189.     3. DBIx-XML_RDB        [0.05] Matt Sergeant (matt@sergeant.org)
  1190.     4. DBIx-XMLMessage     [0.03] Andrei Nossov (andrein@andrein.com)
  1191.     5. GoXML-XQI          [1.1.4] Matthew MacKenzie (matt@goxml.com)
  1192.     6. Language-DATR-DAT~ [0.901] Lee Goddard (lgoddard@cpan.org)
  1193.     7. libxml-perl         [0.07] Ken MacLeod (ken@bitsko.slc.ut.us)
  1194.     8. Mail-FilterXML       [0.1] Matthew MacKenzie (matt@goxml.com)
  1195.     9. Mail-XML            [0.03] Matthew MacKenzie (matt@goxml.com)
  1196.    10. Pod-XML             [0.93] Matt Sergeant (matt@sergeant.org)
  1197. </pre></blockquote>
  1198.  
  1199. <p>You can change the order in which the results are sorted, and what
  1200. columns are displayed. The settings <code>fields</code> and
  1201. <code>sort-field</code> changes this. You can sort by any valid field
  1202. name (even fields which are not displayed). See the <a class="doc"
  1203. href="#settings">settings</a> command for the valid field names.</p>
  1204.  
  1205. <p>PPM always hides "duplicate" results. It decides whether a result
  1206. is duplicated based on the fields being displayed. If the same package
  1207. is found in more than one repository, but you don't have the
  1208. <code>REPOSITORY</code> field showing, PPM will only list the package
  1209. once.</p>
  1210.  
  1211. </PPM3-HELP>
  1212.     
  1213. <PPM3-HELP name="settings">
  1214. <h3><a name="settings">Settings</a></h3>
  1215.     
  1216. <blockquote>    
  1217. <table>
  1218.     <tr>
  1219.     <td><p>set</td>
  1220.     <td valign="top" align="left" width="10%"></td>
  1221.     <td><p>displays current options</td>
  1222.     </tr>
  1223.     <tr>
  1224.     <td><p>set <name></td>
  1225.     <td valign="top" align="left" width="10%"></td>
  1226.     <td><p>displays the current setting of the given <name></td>
  1227.     </tr>
  1228.     <tr>
  1229.     <td><p>set <name> <value></td>
  1230.     <td valign="top" align="left" width="10%"></td>
  1231.     <td><p>sets <name> to <value></td>
  1232.     </tr>
  1233.     <tr>
  1234.     <td><p>unset <name></td>
  1235.     <td valign="top" align="left" width="10%"></td>
  1236.     <td><p>Sets <name> to a "false" value: '0' for boolean settings, '' for others.</td>
  1237.     </tr>
  1238. </table>
  1239. </blockquote>
  1240.  
  1241. <p>The settings command is used to configure the default PPM
  1242. environment.  Settings such as the number of lines displayed per page,
  1243. case-sensitivity, and the log file are configured using the settings
  1244. command.</p>
  1245.  
  1246. <p>Setting names may be abbreviated to uniqueness. For example,
  1247. instead of typing <code>case-sensitivity</code>, you may type
  1248. <code>case</code>.</p>
  1249.  
  1250. <p>Available settings:</p>
  1251.  
  1252. <blockquote>
  1253. <table>
  1254.     <tr>
  1255.     <td align="left" width="20%"><p><b>NAME</b></td>
  1256.     <td valign="top" align="left" width="5%"></td>
  1257.     <td align="left" width="15%"><p><b>VALUE</b></td>
  1258.         <td valign="top" align="left" width="5%"></td>
  1259.     <td align="left"><p><b>DESCRIPTION</b></td>
  1260.     </tr>
  1261.     <tr>    
  1262.     <td colspan="5" bgcolor="#000000"></td>
  1263.     </tr>
  1264.     <tr>
  1265.     <td><p><code>case-sensitivity</code></td>
  1266.     <td valign="top" align="left" width="5%"></td>
  1267.     <td><p>"0" or "1"</td>
  1268.     <td valign="top" align="left" width="5%"></td>
  1269.     <td><p>If set to "1", searches and queries are case-sensitive.</td>
  1270.     </tr>
  1271.     <tr>    
  1272.     <td colspan="5" bgcolor="#000000"></td>
  1273.     </tr>
  1274.     <tr>
  1275.     <td><p><code>download-chunksize</code></td>
  1276.     <td valign="top" align="left" width="5%"></td>
  1277.     <td><p>integer</td>
  1278.         <td valign="top" align="left" width="5%"></td>
  1279.     <td><p>If this is set to a positive, non-zero integer, PPM updates the status after each "integer"
  1280.     of bytes transferred during an <a class="doc" href="#install">install</a> or <a class="doc" href="#upgrade">upgrade</a>.</td>
  1281.     </tr>
  1282.     <tr>    
  1283.     <td colspan="5" bgcolor="#000000"></td>
  1284.     </tr>
  1285.     <tr>
  1286.     <td><p><code>fields</code></td>
  1287.     <td valign="top" align="left" width="5%"></td>
  1288.     <td><p>fields</td>
  1289.         <td valign="top" align="left" width="5%"></td>
  1290.     <td><p>A space-separated list of fields to display in the <a class="doc" href="#search">search</a>
  1291.                results. Valid fields are:<br>
  1292.                <tt>  ABSTRACT AUTHOR NAME REPOSITORY TITLE VERSION</tt><br>
  1293.                Usually, NAME and TITLE have the same content.</p></td>
  1294.     </tr>
  1295.     <tr>
  1296.     <td colspan="5" bgcolor="#000000"></td>
  1297.     </tr>
  1298.     <tr>
  1299.     <td><p><code>follow-install</code></td>
  1300.     <td valign="top" align="left" width="5%"></td>
  1301.     <td><p>"0" or "1"</td>
  1302.         <td valign="top" align="left" width="5%"></td>
  1303.     <td><p>See <a class="doc" href="#install">install</a> for details.</td>
  1304.     </tr>
  1305.     <tr>    
  1306.     <td colspan="5" bgcolor="#000000"></td>
  1307.     </tr>
  1308.     <tr>
  1309.     <td><p><code>force-install</code></td>
  1310.     <td valign="top" align="left" width="5%"></td>
  1311.     <td><p>"0" or "1"</td>
  1312.         <td valign="top" align="left" width="5%"></td>
  1313.     <td><p>See <a class="doc" href="#install">install</a> for details.</td>
  1314.     </tr>
  1315.     <tr>    
  1316.     <td colspan="5" bgcolor="#000000"></td>
  1317.     </tr>
  1318.     <tr>
  1319.     <td><p><code>install-verbose</code></td>
  1320.     <td valign="top" align="left" width="5%"></td>
  1321.     <td><p>"0" or "1"</td>
  1322.         <td valign="top" align="left" width="5%"></td>
  1323.     <td><p>If "0", suppresses most output when installing packages.
  1324.                If "1", PPM prints each file as it is installed.</td>
  1325.     </tr>
  1326.     <tr>    
  1327.     <td colspan="5" bgcolor="#000000"></td>
  1328.     </tr>
  1329.     <tr>
  1330.     <td><p><code>pager</code></td>
  1331.     <td valign="top" align="left" width="5%"></td>
  1332.     <td><p>path</td>
  1333.         <td valign="top" align="left" width="5%"></td>
  1334.     <td><p>The path to an external pager program used to page long displays. If blank,
  1335.                or set to "internal", the internal pager is used. If "none", paging
  1336.                is disabled.</td>
  1337.     </tr>
  1338.     <tr>    
  1339.     <td colspan="5" bgcolor="#000000"></td>
  1340.     </tr>
  1341.     <tr>
  1342.     <td><p><code>profile-track</code></td>
  1343.     <td valign="top" align="left" width="5%"></td>
  1344.     <td><p>"0" or "1"</td>
  1345.         <td valign="top" align="left" width="5%"></td>
  1346.     <td><p>If "1", PPM arranges to have the ASPN server track your PPM profile. 
  1347.                This means that every time your install or remove a package, your profile is
  1348.                updated on the server. If "0", you must manually save your profile using
  1349.                <code>profile save</code>.</td>
  1350.     </tr>
  1351.     <tr>    
  1352.     <td colspan="5" bgcolor="#000000"></td>
  1353.     </tr>
  1354.     <tr>
  1355.     <td><p><code>prompt-context</code></td>
  1356.     <td valign="top" align="left" width="5%"></td>    
  1357.     <td><p>"0" or "1"</td>
  1358.     <td valign="top" align="left" width="5%"></td>
  1359.     <td><p>If "1", enables the prompt to change based on the current state of PPM, i.e. showing current target, query, etc.
  1360.     </tr>
  1361.     <tr>    
  1362.     <td colspan="5" bgcolor="#000000"></td>
  1363.     </tr>
  1364.     <tr>
  1365.     <td><p><code>prompt-slotsize</code></td>
  1366.     <td valign="top" align="left" width="5%"></td>
  1367.     <td><p>integer</td>
  1368.         <td valign="top" align="left" width="5%"></td>
  1369.     <td><p>If <code>prompt-verbose</code> is "1", this defines the width of each slot in the prompt. For instance, "4" means to
  1370.     use 4 character-wide slots.</td>
  1371.     </tr>
  1372.     <tr>    
  1373.     <td colspan="5" bgcolor="#000000"></td>
  1374.     </tr>
  1375.     <tr>
  1376.     <td><p><code>prompt-verbose</code></td>
  1377.         <td valign="top" align="left" width="5%"></td>
  1378.     <td><p>"0" or "1"</td>
  1379.     <td valign="top" align="left" width="5%"></td>
  1380.     <td><p>If "0", uses numbers to represent the context in the prompt; much shorter. If <code>prompt-context</code> is set
  1381.     to "0", there will be no visible difference in the <code>prompt-verbose</code> settings.</td>
  1382.     </tr>
  1383.     <tr>    
  1384.     <td colspan="5" bgcolor="#000000"></td>
  1385.     </tr>
  1386.     <tr>
  1387.     <td><p><code>rebuild-html</code></td>
  1388.         <td valign="top" align="left" width="5%"></td>
  1389.     <td><p>"0" or "1"</td>
  1390.     <td valign="top" align="left" width="5%"></td>
  1391.     <td><p>If "0", suppresses regeneration of HTML documentation when packages are
  1392.                installed. If "1", enables HTML to be generated from POD documentation.
  1393.                Enabling this option may slow down package installation.</td>
  1394.     </tr>
  1395.     <tr>    
  1396.     <td colspan="5" bgcolor="#000000"></td>
  1397.     </tr>
  1398.     <tr>
  1399.     <td><p><code>remove-verbose</code></td>
  1400.         <td valign="top" align="left" width="5%"></td>
  1401.     <td><p>"0" or "1"</td>
  1402.     <td valign="top" align="left" width="5%"></td>
  1403.     <td><p>If "0", suppresses most output when removing packages. If "1", prints the
  1404.                name of each file as it is removed.</td>
  1405.     </tr>
  1406.     <tr>    
  1407.     <td colspan="5" bgcolor="#000000"></td>
  1408.     </tr>
  1409.     <tr>
  1410.     <td><p><code>sort-field</code></td>
  1411.     <td valign="top" align="left" width="5%"></td>
  1412.     <td><p>field</td>
  1413.     <td valign="top" align="left" width="5%"></td>
  1414.     <td><p>The field by which to sort search and query results. Valid fields are
  1415.                ABSTRACT, AUTHOR, NAME, TITLE and VERSION.</td>
  1416.     </tr>
  1417.     <tr>    
  1418.     <td colspan="5" bgcolor="#000000"></td>
  1419.     </tr>
  1420.     <tr>
  1421.     <td><p><code>tempdir</code></td>
  1422.         <td valign="top" align="left" width="5%"></td>
  1423.     <td><p>path</td>
  1424.     <td valign="top" align="left" width="5%"></td>
  1425.     <td><p>A temporary directory into which packages are downloaded and expanded during
  1426.                <a class="doc" href="#install">install</a> and
  1427.                <a class="doc" href="#upgrade">upgrade</a>.</td>
  1428.     </tr>
  1429.     <tr>    
  1430.     <td colspan="5" bgcolor="#000000"></td>
  1431.     </tr>
  1432.     <tr>
  1433.     <td><p><code>trace-file</code></td>
  1434.         <td valign="top" align="left" width="5%"></td>
  1435.     <td><p>path</td>
  1436.     <td valign="top" align="left" width="5%"></td>
  1437.     <td><p>A file to which PPM will write tracing information.</td>
  1438.     </tr>
  1439.     <tr>    
  1440.     <td colspan="5" bgcolor="#000000"></td>
  1441.     </tr>
  1442.     <tr>
  1443.     <td><p><code>trace-level</code></td>
  1444.         <td valign="top" align="left" width="5%"></td>
  1445.     <td><p>integer</td>
  1446.     <td valign="top" align="left" width="5%"></td>
  1447.     <td><p>If "0" or negative, tracing is disabled. Positive, non-zero integers result in
  1448.                tracing information being written to <code>trace-file</code>. Higher settings of
  1449.                <code>trace-level</code> result in more trace information.</td>
  1450.     </tr>
  1451.     <tr>    
  1452.     <td colspan="5" bgcolor="#000000"></td>
  1453.     </tr>
  1454.     <tr>
  1455.     <td><p><code>upgrade-verbose</code></td>
  1456.     <td valign="top" align="left" width="5%"></td>
  1457.     <td><p>"0" or "1"</td>
  1458.         <td valign="top" align="left" width="5%"></td>
  1459.     <td><p>If "0", suppresses most output when upgrading packages. If "1", prints the
  1460.                name of each file as it is upgraded.</td>
  1461.     </tr>
  1462.     <tr>    
  1463.     <td colspan="5" bgcolor="#000000"></td>
  1464.     </tr>
  1465. </table>
  1466. </blockquote>
  1467.  
  1468. <p>For information about migrating options used by previous versions
  1469. of PPM, see <code>help ppm_migration</code>.</p>
  1470.  
  1471. <p>When you assign a value to a setting, PPM saves the configuration.
  1472. Therefore, setting values persist across sessions.</p>
  1473.     
  1474. </PPM3-HELP>
  1475.  
  1476. <PPM3-HELP name="tree">
  1477. <h3><a name="tree">Tree</a></h3>
  1478.  
  1479.  
  1480. <blockquote>
  1481. <table>
  1482.     <tr>
  1483.     <td><p>tree</td>
  1484.     <td valign="top" align="left" width="10%"></td>
  1485.     <td><p>Displays the dependency-tree of the default package</td>
  1486.     </tr>
  1487.     <tr>
  1488.     <td><p>tree <number></td>
  1489.     <td valign="top" align="left" width="10%"></td>
  1490.     <td><p>Displays the dependency-tree of the given <number></td>
  1491.     </tr>
  1492.     <tr>
  1493.     <td><p>tree <range></td>
  1494.     <td valign="top" align="left" width="10%"></td>
  1495.     <td><p>Displays a <range> of dependency trees</td>
  1496.     </tr>
  1497.     <tr>
  1498.     <td><p>tree <package name></td>
  1499.     <td valign="top" align="left" width="10%"></td>
  1500.     <td><p>Displays the dependency-tree of the named package</td>
  1501.     </tr>
  1502.     <tr>
  1503.     <td><p>tree <url></td>
  1504.     <td valign="top" align="left" width="10%"></td>
  1505.     <td><p>Displays the dependency-tree for the package at <url></td>
  1506.     </tr>
  1507.     <tr>
  1508.     <td><p>tree <glob pattern></td>
  1509.     <td valign="top" align="left" width="10%"></td>
  1510.     <td><p>Performs a new search using <glob pattern></td>
  1511.     </tr>
  1512. </table>
  1513. </blockquote>
  1514.  
  1515. <p>The <code>tree</code> command is used to show the "dependency tree"
  1516. of a given package (additional packages that are required by the
  1517. current package).  For example:</p>
  1518.     
  1519. <blockquote><pre>
  1520. tree SOAP-lite
  1521. </pre></blockquote>
  1522.     
  1523. <p>returns:</p>
  1524.     
  1525. <blockquote><pre>
  1526. ====================
  1527. SOAP-Lite 0.51
  1528. |__MIME-tools 5.316
  1529. |   |__MailTools 1.15
  1530. |   \__IO-stringy 1.216
  1531. |
  1532. \__MIME-Lite 2.105
  1533. ====================
  1534. </pre></blockquote>
  1535.  
  1536. <p>SOAP-Lite requires four other packages.</p>
  1537.  
  1538. <p>When tree is called without a <name> or <number>
  1539. switch, the command will return the dependency tree of the first
  1540. package in the default search result. If there is no default search,
  1541. you will be requested to use <a class="doc" href="#search">search</a>
  1542. to find a package.</p>
  1543.  
  1544. </PPM3-HELP>
  1545.  
  1546. <PPM3-HELP name="upgrade">
  1547. <h3><a name="upgrade">Upgrade</a></h3>
  1548.     
  1549. <blockquote>
  1550. <table>
  1551.     <tr>
  1552.     <td><p>upgrade [*]</td>
  1553.         <td valign="top" align="left" width="10%"></td>
  1554.     <td><p>Lists upgrades available for all installed packages</td>
  1555.     </tr>
  1556.     <tr>
  1557.         <td><p>upgrade <number></td>
  1558.         <td valign="top" align="left" width="10%"></td>
  1559.     <td><p>Lists upgrades for installed package <number></td>
  1560.     </tr>
  1561.     <tr>
  1562.         <td><p>upgrade <range></td>
  1563.         <td valign="top" align="left" width="10%"></td>
  1564.     <td><p>Lists upgrades for a <range> of installed packages</td>
  1565.     </tr>
  1566.     <tr>
  1567.     <td><p>upgrade <package></td>
  1568.         <td valign="top" align="left" width="10%"></td>
  1569.     <td><p>Lists upgrades for the named <package></td>
  1570.     </tr>
  1571. </table>
  1572. </blockquote>
  1573.     
  1574. <p>The upgrade command lists package upgrades that are available on
  1575. the active repositories for packages installed on your system. To
  1576. install available upgrades, use the <code>-install</code> option.</p>
  1577.  
  1578. <p>If profile tracking is enabled, (see <a class="doc"
  1579. href="#profile">profile</a>), your profile will be updated to
  1580. reflect changes to any packages which are upgraded.</p>
  1581.  
  1582. <p>There are several modifiers to the upgrade command:</p>
  1583.  
  1584. <blockquote>
  1585. <table>
  1586.     <tr>
  1587.     <td align="left"><p>OPTION</td>
  1588.     <td valign="top" align="left" width="10%"></td>
  1589.     <td align="left"><p>DESCRIPTION</td>
  1590.     </tr>
  1591.     <tr>    
  1592.     <td colspan="5" bgcolor="#000000"></td>
  1593.     </tr>
  1594.     <tr>
  1595.     <td><p>Install</td>
  1596.         <td valign="top" align="left" width="10%"></td>
  1597.     <td><p>Installs, rather than lists, available upgrades</td>
  1598.     </tr>
  1599.     <tr>    
  1600.     <td colspan="5" bgcolor="#000000"></td>
  1601.     </tr>
  1602.     <tr>
  1603.     <td><p>Precious</td>
  1604.         <td valign="top" align="left" width="10%"></td>
  1605.     <td><p>Allows upgrading of "precious" packages</td>
  1606.     </tr>
  1607.     <tr>    
  1608.     <td colspan="5" bgcolor="#000000"></td>
  1609.     </tr>
  1610.     <tr>
  1611.     <td><p>Force</td>
  1612.         <td valign="top" align="left" width="10%"></td>
  1613.     <td><p>See <a class="doc" href="#install">install</a></td>
  1614.     </tr>
  1615.     <tr>    
  1616.     <td colspan="5" bgcolor="#000000"></td>
  1617.     </tr>
  1618.     <tr>
  1619.     <td><p>Follow</td>
  1620.     <td valign="top" align="left" width="10%"></td>
  1621.     <td><p>See <a class="doc" href="#install">install</a></td>
  1622.     </tr>
  1623.     <tr>    
  1624.     <td colspan="5" bgcolor="#000000"></td>
  1625.     </tr>
  1626. </table>
  1627. </blockquote>
  1628.  
  1629. <p>By default, <code>upgrade</code> typed by itself only lists the available upgrades.
  1630. To actually install all available upgrades, enter</p>
  1631.  
  1632. <blockquote><pre>
  1633. upgrade -install
  1634. </pre></blockquote>
  1635.     
  1636. <p>To enable upgrading "precious" packages, enter</p>
  1637.     
  1638. <blockquote><pre>
  1639. upgrade -install -precious
  1640. </pre></blockquote>
  1641.     
  1642. </PPM3-HELP>
  1643.     
  1644. <PPM3-HELP name="version">
  1645. <h3><a name="version">Version</a></h3>
  1646.  
  1647. <blockquote>
  1648. <table>
  1649.     <tr>
  1650.     <td><p>version</td>
  1651.     <td valign="top" align="left" width="10%"></td>
  1652.     <td><p>Prints the name and version of PPM3.</td>
  1653.     </tr>
  1654. </table>
  1655. </blockquote>
  1656. </PPM3-HELP>
  1657.  
  1658. <h2><a name="repositories">Where are the package repositories?</a></h2>
  1659. <p>By default, PPM will use the ActiveState package repository, but there are
  1660. other repositories on the Internet. At the moment there are these repositories:</p>
  1661.     
  1662. <p><b>Note: most of these repositories are for ActivePerl 5xx builds only; they
  1663. may not be compatible with ActivePerl 6xx builds. Check these repositories for the latest updates:</b></p>
  1664.     
  1665. <blockquote>
  1666.   <table cellspacing="10">
  1667.     <tr>
  1668.       <td valign="top" align="left" width="50%">http://ppm-ia.ActiveState.com/PPM/ppmserver.plex?urn:/PPM/Server/SQL</td>
  1669.       <td valign="top" align="left" width="50%">New 3.0 Repository
  1670.         from ActiveState</td>
  1671.     </tr>
  1672.     <tr>
  1673.       <td valign="top" align="left" width="50%">http://www.ActiveState.com/cgibin/PPM/ppmserver.plex?urn:/PPMServer</td>
  1674.       <td valign="top" align="left" width="50%">The default package repository from ActiveState</td>
  1675.     </tr>
  1676.     <tr>
  1677.       <td valign="top" align="left" width="50%">http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer</td>
  1678.       <td valign="top" align="left" width="50%">University of Winnipeg</td>
  1679.     </tr>
  1680.     <tr>
  1681.       <td valign="top" align="left" width="50%">http://Jenda.Krynicky.cz/perl</td>
  1682.       <td valign="top" align="left" width="50%">Jan Krynicky's package
  1683.         repository</td>
  1684.     </tr>
  1685.     <tr>
  1686.       <td valign="top" align="left" width="50%">http://www.roth.net/perl/packages/</td>
  1687.       <td valign="top" align="left" width="50%">Roth Consulting's package
  1688.         repository</td>
  1689.     </tr>
  1690.     <tr>
  1691.       <td valign="top" align="left" width="50%">http://www.xray.mpe.mpg.de/~ach/ptk/ppm</td>
  1692.       <td valign="top" align="left" width="50%">Achim Bohnet's package
  1693.         repository</td>
  1694.     </tr>
  1695.     <tr>
  1696.       <td valign="top" align="left" width="50%">http://rto.dk/packages/</td>
  1697.       <td valign="top" align="left" width="50%">RTO's packages repository
  1698.         (mostly mirrors of the above)</td>
  1699.     </tr>
  1700.     <tr>
  1701.       <td colspan="2">
  1702.         <hr width="50%">
  1703.       </td>
  1704.     </tr>
  1705.     <tr>
  1706.       <td valign="top" align="left" width="50%">http://www.fastnetltd.ndirect.co.uk/Perl/zips/</td>
  1707.       <td valign="top" align="left" width="50%">Fastnet Software Ltd's packages
  1708.         - not directly accessible from PPM at present</td>
  1709.     </tr>
  1710.   </table>
  1711. </blockquote>
  1712.  
  1713. <p>To use these package repositories you start PPM v3 and at the prompt type:</p>
  1714.     
  1715. <blockquote><pre>
  1716. repository add <i>NAME</i> <i>URL</i>
  1717. </pre></blockquote>
  1718.     
  1719. <p>where <i>NAME</i> is a name by which you want to reference the repository
  1720. from PPM and <i>URL</i> is the URL to the repository. Please note that <i>NAME</i> is
  1721. optional, as PPM will assign a name to the repository for you. For example, entering:</p>
  1722.  
  1723. <blockquote><pre>
  1724. repository add JENDA http://Jenda.Krynicky.cz/perl
  1725. </pre></blockquote>
  1726.  
  1727. <p>will create a repository for you, by the name of JENDA and give you access to the modules
  1728. available there.</p>
  1729.  
  1730. <h2><a name="how_to_make_ppm_distribution">How do I make a PPM package?</a></h2>
  1731. <p>If you want to make a PPM package for use on other machine you can do it like
  1732. this:</p>
  1733. <p>Specify the AUTHOR and ABSTRACT parameters in the Makefile.PL. However you
  1734. should only pass them to WriteMakefile if the version of the perl is greater
  1735. than 5.005 - older perls do not have these parameters added and do not expect to
  1736. see them. This is an example Makefile.PL:</p>
  1737. <blockquote>
  1738.   <p><code>use ExtUtils::MakeMaker;<br>
  1739.   # See lib/ExtUtils/MakeMaker.pm for details of how to influence<br>
  1740.   # the contents of the Makefile that is written.<br>
  1741.   WriteMakefile(<br>
  1742.       'NAME' => 'Term::Control',<br>
  1743.       'VERSION_FROM' => 'Control.pm', # finds $VERSION<br>
  1744.       ($] ge '5.005') ? (<br>
  1745.           'AUTHOR' => 'Johnny Doel (johnny@doel.org)',<br>
  1746.           'ABSTRACT' => 'Control the
  1747.   IO for terminals',<br>
  1748.       ) : (),<br>
  1749.   );</code></p>
  1750. </blockquote>
  1751. <p>Then you make the archive with the commands</p>
  1752. <blockquote>
  1753.   <p><code>perl Makefile.PL<br>
  1754.   nmake</code></p>
  1755. </blockquote>
  1756. <p>The resulting files are placed in the blib directory that is created when you
  1757. run nmake. These files should be packed into an archive like this:</p>
  1758. <blockquote>
  1759.   <p><code>tar cvf <i>package</i>.tar blib<br>
  1760.   gzip --best <i>package</i>.tar</code></p>
  1761. </blockquote>
  1762. <p>You now have an archive called <i>package</i>.tar.gz. Then you generate the
  1763. PPD file by:</p>
  1764. <blockquote>
  1765.   <p><code>nmake ppd</code></p>
  1766. </blockquote>
  1767. <p>You have to edit the resulting PPD file and add the location of the package
  1768. archive into <CODEBASE HREF="" />. The location is relative to
  1769. the PPD file.</p>
  1770. <p>You can get nmake from <a class="doc" href="http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe">http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe</a>.
  1771. </p>
  1772.  
  1773.  
  1774. <h2><a name="ppm_and_proxies">PPM, Proxies and Firewalls</a></h2>
  1775. <p>If you use a proxy server or firewall, you might have trouble running PPM.
  1776. Here is the solution.</p>
  1777. <blockquote>
  1778.   <p><b>NOTE</b>: If none of the changes in this document work for you,
  1779.   you may download individual packages from
  1780.   <a class="doc" href="http://www.activestate.com/PPMpackages/5.8/zips">here
  1781.   [ActivePerl 801 and later]</a> or
  1782.   <a class="doc" href="http://www.activestate.com/PPMpackages/5.6/zips">here
  1783.   [ActivePerl 613 and later]</a> or
  1784.   <a class="doc" href="http://www.activestate.com/PPMpackages/5.005/zips">here
  1785.   [ActivePerl 522 and earlier]</a> and install them according to the directions
  1786.   in the README file contained within the ZIP file. If you want, you can also
  1787.   keep a local repository, with several .ppd files in a permanent repository
  1788.   directory, and their .tar.gz files in an <i>x86</i> directory beneath that.</p>
  1789. </blockquote>
  1790. <ol start="1">
  1791.   <li>
  1792.     <h3>Set Environment Vars</h3>
  1793.   </li>
  1794. </ol>
  1795. <blockquote>
  1796.   <p>Up to three environment variables need to be set.</p>
  1797. </blockquote>
  1798. <blockquote>
  1799.     <p><b>Under Windows 2000</b><br>
  1800.     Right click on "My Computer", click on "Properties" and select the
  1801.     "Advanced" tab. Click the button marked "Environment Variables"
  1802.     and make the following changes in the "System Variables" window:<br></p>
  1803.     <ol>
  1804.     <li>With the "New" button, add the setting <i>HTTP_proxy</i>, with your proxy name as the
  1805.     value (you must include "<code>http://</code>"), followed by a colon and
  1806.       the proxy port, if applicable; e.g., "<code>http://proxy:8080/</code>"</li>
  1807.     <li>If you require a user name and/or password to access your proxy, use the "New" button
  1808.     to add the settings <i>HTTP_proxy_user</i> and <i>HTTP_proxy_pass</i>, with your user name and
  1809.       password as the respective values.</li>
  1810.     </ol>
  1811. </blockquote>
  1812. <blockquote>
  1813.   <p><strong>Under Windows NT<br>
  1814.   </strong>Right click on "My Computer", click on
  1815.   "Properties", select the "Environment" tab. These are your
  1816.   environment settings. Make the following changes:<br></p>
  1817.   <ol>
  1818.     <li>Add the setting <i>HTTP_proxy</i>, with your proxy name as the value (you
  1819.       must include "<code>http://</code>"), followed by a colon and
  1820.       the proxy port, if applicable; e.g., "<code>http://proxy:8080/</code>"</li>
  1821.     <li>If you require a user name and/or password to access your proxy, add the
  1822.       settings <i>HTTP_proxy_user</i> and <i>HTTP_proxy_pass</i>, with your user name and
  1823.       password as the respective values.</li>
  1824.     </ol>
  1825. </blockquote>
  1826. <blockquote>
  1827.   <p><strong>Under Windows 9x<br></strong>
  1828.   In your AUTOEXEC.BAT file, place the following lines then reboot so the changes can take effect:</p>
  1829. </blockquote>
  1830. <blockquote>
  1831.   <ol>
  1832.     <li>SET HTTP_proxy=<your proxy server (you must include
  1833.       "<code>http://</code>", followed by a colon and the proxy
  1834.       port, if applicable; e.g., <code>SET HTTP_proxy=http://proxy:8080/</code></li>
  1835.     <li>SET HTTP_proxy_user=<your user name> (if required)</li>
  1836.     <li>SET HTTP_proxy_pass=<your password> (if required)</li>
  1837.   </ol>
  1838. </blockquote>
  1839. <ol start="2">
  1840.   <li>
  1841.     <h3>Try using PPM</h3>
  1842.   </li>
  1843. </ol>
  1844. <blockquote>
  1845.   <p>With your internet connection active, try using PPM again. Try to install a
  1846.   small package, like File-Slurp. You'll know that it still fails if you see an
  1847.   error stating that it can't find a ppd file for the specified package.</p>
  1848. </blockquote>
  1849. <ol start="3">
  1850.   <li>
  1851.     <h3>Further Information and Help</h3>
  1852.   </li>
  1853. </ol>
  1854. <blockquote>
  1855.   <p>If there were problems with any of the above hints, please see 
  1856.   <a class="doc" href="../readme.html#Troubleshooting_FAQ">Troubleshooting</a>
  1857.   for information regarding further help.</p>
  1858. </blockquote>
  1859.  
  1860. <h2><a name="AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</a></h2>
  1861. <p>This FAQ was originally assembled and maintained by Evangelo Prodromou. It
  1862. has been revised and updated by Brian Jepson of O'Reilly & Associates, David
  1863. Grove, David Dmytryshyn, and Murray Nesbitt of ActiveState, Henning Michael M°ller-Nielsen
  1864. of RTO, Kevin Meltzer, and David Sparks of ActiveState.</p>
  1865. <p>This FAQ is in the public domain. If you use it, however, please ensure that
  1866. you give credit to the original authors.</p>
  1867.  
  1868. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  1869.   <tr>
  1870.     <td class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><strong>
  1871.       <p class="block"> ActivePerl FAQ - PPM</p>
  1872.       </strong></td>
  1873.   </tr>
  1874. </table>
  1875.  
  1876. </body>
  1877.  
  1878. </html>
  1879.