home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _c4e4dfa078bfc8424bb71dde36633eae < prev    next >
Text File  |  2000-03-22  |  15KB  |  337 lines

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <HTML>
  3.  
  4. <HEAD>
  5. <TITLE>perlwin32faq11 - Using PPM to install modules</TITLE>
  6. <LINK rev="made" href="mailto:support@ActiveState.com">
  7. <META name="GENERATOR" charset="iso-8859-1" content="Microsoft FrontPage 4.0">
  8. <META name="ProgId" content="FrontPage.Editor.Document">
  9. <LINK rel="STYLESHEET" href="../Active.css" type="text/css" media="screen">
  10. </HEAD>
  11.  
  12. <BODY bgcolor="#ffffff">
  13.  
  14. <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
  15.   <TR>
  16.     <TD class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><STRONG>
  17.       <P class="block"> ActivePerl FAQ</P>
  18.       </STRONG></TD>
  19.   </TR>
  20. </TABLE>
  21. <UL>
  22.   <LI><A href="#NAME">NAME</A></LI>
  23.   <LI><A href="#DESCRIPTION">DESCRIPTION</A>
  24.     <UL>
  25.       <LI><A href="#what_is_ppm">What is the Perl Package Manager (PPM)?</A></LI>
  26.       <LI><A href="#how_do_i_install_ppm">How do I install PPM?</A></LI>
  27.       <LI><A href="#running_ppm">How do I run PPM?</A></LI>
  28.       <LI><A href="#using_ppm">How do I use PPM?</A></LI>
  29.       <LI><A href="#repositories">Where are the package repositories?</A></LI>
  30.       <LI><A href="#how_to_make_ppm_distribution">How do I make a PPM package?</A></LI>
  31.       <LI><A href="#ppm_and_proxies">PPM, Proxies and Firewalls</A></LI>
  32.     </UL>
  33.   </LI>
  34.   <LI><A href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</A></LI>
  35. </UL>
  36. <HR>
  37. <H1><A name="NAME">NAME</A></H1>
  38. <P>ActivePerl-faq2 - Using PPM to install modules</P>
  39. <HR>
  40. <H1><A name="DESCRIPTION">DESCRIPTION</A></H1>
  41. <P>How to install and upgrade modules for ActivePerl using PPM</P>
  42. <A name="what_is_ppm"></A>
  43. <HR>
  44. <H1>What is the Perl Package Manager (PPM)?</H1>
  45. <P>The Perl Package Manager (PPM) provides a command line interface for managing your Perl modules
  46. and extensions (packages). PPM allows you to access package repositories, install and remove
  47. packages from your system, and update packages you previously installed using PPM with the latest
  48. versions.</P>
  49. <A name="how_do_i_install_ppm"></A>
  50. <HR>
  51. <H1>How do I install PPM?</H1>
  52. <P>PPM is installed when you install ActivePerl.</P>
  53. <A name="running_ppm"></A>
  54. <HR>
  55. <H1>How do I run PPM?</H1>
  56. <P>Before you run PPM, you should be connected to the Internet. If your Internet connection is via a
  57. firewall or proxy, you should set the environment variable 'HTTP_proxy' to the name of this proxy
  58. server. If your proxy server requires a username and password, the environment variables 'HTTP_proxy_user'
  59. and 'HTTP_proxy_pass' should be set to these values. See <A href="#ppm_and_proxies">PPM, Proxies and
  60. Firewalls</A> for more information.</P>
  61. <P>PPM can then be run by typing 'ppm' in a command prompt window.</P>
  62. <A name="using_ppm"></A>
  63. <HR>
  64. <H1>How do I use PPM?</H1>
  65. <P>Quick start: at the PPM command prompt, type '<CODE>search</CODE>' to get a listing of all
  66. available packages, then type '<CODE>install <packagename></CODE>', where <CODE><packagename></CODE>
  67. is the name of a package displayed by the '<CODE>search</CODE>' command. To list the packages you
  68. have previously installed using PPM, use the '<CODE>query</CODE>' command.</P>
  69. <P>If you find the listing of packages scrolls by too quickly, you may want to use the command '<CODE>set
  70. more <number></CODE>' to pause the listing after <number> packages have been displayed.
  71. Use the '<CODE>set save</CODE>' command to save this configuration for future PPM sessions.</P>
  72. <P>By default, PPM will use the ActiveState package repository, but this too can be configured using
  73. the '<CODE>set</CODE>' command. See below in <A href="#repositories">Where are the package
  74. repositories?</A>.</P>
  75. <P>Below is a listing of key PPM commands (you can type '<CODE>help <command></CODE>' at the
  76. PPM prompt for usage details for a particular <command>). Items in [brackets] are optional.</P>
  77. <TABLE cellpadding="5">
  78.   <TR>
  79.     <TD bgcolor="#454545"><FONT color="#FFFFFF"><B>Command</B></FONT></TD>
  80.     <TD bgcolor="#454545"><FONT color="#FFFFFF"><B>Function</B></FONT></TD>
  81.   </TR>
  82.   <TR>
  83.     <TD bgcolor="#D4F4A0"><B>genconfig</B></TD>
  84.     <TD bgcolor="#E5E4F0">prints a minimal PPM configuration file to STDOUT [Note: genconfig only
  85.       works from the command-line]</TD>
  86.   </TR>
  87.   <TR>
  88.     <TD bgcolor="#D4F4A0"><B>help [command]</B></TD>
  89.     <TD bgcolor="#E5E4F0">lists available commands, or help on 'command'.</TD>
  90.   </TR>
  91.   <TR>
  92.     <TD bgcolor="#D4F4A0"><B>info [package1...]</B></TD>
  93.     <TD bgcolor="#E5E4F0">prints a summary of installed packages.</TD>
  94.   </TR>
  95.   <TR>
  96.     <TD bgcolor="#D4F4A0"><B>install package1 [package2...]</B></TD>
  97.     <TD bgcolor="#E5E4F0">installs specified packages.</TD>
  98.   </TR>
  99.   <TR>
  100.     <TD bgcolor="#D4F4A0"><B>quit</B></TD>
  101.     <TD bgcolor="#E5E4F0">exits the program.</TD>
  102.   </TR>
  103.   <TR>
  104.     <TD bgcolor="#D4F4A0"><B>query [pattern]</B></TD>
  105.     <TD bgcolor="#E5E4F0">lists installed packages, or packages containing <CODE>pattern</CODE>.</TD>
  106.   </TR>
  107.   <TR>
  108.     <TD bgcolor="#D4F4A0"><B>query /abstract [pattern]</B></TD>
  109.     <TD bgcolor="#E5E4F0">lists descriptions of installed packages, or package descriptions
  110.       containing <CODE>pattern</CODE>.</TD>
  111.   </TR>
  112.   <TR>
  113.     <TD bgcolor="#D4F4A0"><B>remove package1 [package2...]</B></TD>
  114.     <TD bgcolor="#E5E4F0">removes the specified packages from the system.</TD>
  115.   </TR>
  116.   <TR>
  117.     <TD bgcolor="#D4F4A0"><B>search [pattern]</B></TD>
  118.     <TD bgcolor="#E5E4F0">lists available packages, or packages containing <CODE>pattern</CODE>.</TD>
  119.   </TR>
  120.   <TR>
  121.     <TD bgcolor="#D4F4A0"><B>search /abstract [pattern]</B></TD>
  122.     <TD bgcolor="#E5E4F0">lists descriptions of available packages, or package descriptions
  123.       containing <CODE>pattern</CODE>.</TD>
  124.   </TR>
  125.   <TR>
  126.     <TD bgcolor="#D4F4A0"><B>set</B></TD>
  127.     <TD bgcolor="#E5E4F0">set/display current options.</TD>
  128.   </TR>
  129.   <TR>
  130.     <TD bgcolor="#D4F4A0"><B>set save</B></TD>
  131.     <TD bgcolor="#E5E4F0">save current options.</TD>
  132.   </TR>
  133.   <TR>
  134.     <TD bgcolor="#D4F4A0"><B>verify [package1...]</B></TD>
  135.     <TD bgcolor="#E5E4F0">verifies currently installed packages are up to date.</TD>
  136.   </TR>
  137.   <TR>
  138.     <TD bgcolor="#D4F4A0"><B>verify /upgrade [package1...]</B></TD>
  139.     <TD bgcolor="#E5E4F0">installs available package upgrades.</TD>
  140.   </TR>
  141. </TABLE>
  142. <P>A pattern is a search string just like the regular expressions - for example if you search for
  143. with this command</P>
  144. <BLOCKQUOTE>
  145.   <P>search ODBC|DBI</P>
  146. </BLOCKQUOTE>
  147. <P>(which means <I>'search for packages in which the characters ODBC and/or the characters DBI are
  148. present in that order'</I>) you get a result like this</P>
  149. <BLOCKQUOTE>
  150.   <P>Apache-DBI<BR>
  151.   DBD-ODBC<BR>
  152.   DBI<BR>
  153.   FindBin<BR>
  154.   Win32-ODBC</P>
  155. </BLOCKQUOTE>
  156. <P>Note that if you use 'search /abstract [pattern]' the search will only include the ABSTRACT
  157. section of the package files.</P>
  158. <A name="repositories"></A>
  159. <HR>
  160. <H1>Where are the package repositories?</H1>
  161. <P>By default, PPM will use the ActiveState package repository, but there are other repositories on
  162. the Internet. At the moment there are these repositories:</P>
  163. <BLOCKQUOTE>
  164.   <TABLE border="0" cellspacing="10">
  165.     <TR>
  166.       <TD valign="top" align="left" width="50%"><A href="http://www.ActiveState.com/packages/">http://www.ActiveState.com/packages</A></TD>
  167.       <TD valign="top" align="left" width="50%">The default package repository from ActiveState</TD>
  168.     </TR>
  169.     <TR>
  170.       <TD valign="top" align="left" width="50%"><A href="http://Jenda.Krynicky.cz/perl/">http://Jenda.Krynicky.cz/perl</A></TD>
  171.       <TD valign="top" align="left" width="50%">Jan Krynicky's package repository</TD>
  172.     </TR>
  173.     <TR>
  174.       <TD valign="top" align="left" width="50%"><A href="http://www.roth.net/perl/packages/">http://www.roth.net/perl/packages/</A></TD>
  175.       <TD valign="top" align="left" width="50%">Roth Consulting's package repository</TD>
  176.     </TR>
  177.     <TR>
  178.       <TD valign="top" align="left" width="50%"><A href="http://www.xray.mpe.mpg.de/~ach/ptk/ppm">http://www.xray.mpe.mpg.de/~ach/ptk/ppm</A></TD>
  179.       <TD valign="top" align="left" width="50%">Achim Bohnet's package repository</TD>
  180.     </TR>
  181.     <TR>
  182.       <TD valign="top" align="left" width="50%"><A href="http://rto.dk/packages/">http://rto.dk/packages/</A></TD>
  183.       <TD valign="top" align="left" width="50%">RTO's packages repository (mostly mirrors of the
  184.         above)</TD>
  185.     </TR>
  186.     <TR>
  187.       <TD colspan="2">
  188.         <HR width="50%">
  189.       </TD>
  190.     </TR>
  191.     <TR>
  192.       <TD valign="top" align="left" width="50%"><A href="http://www.fastnetltd.ndirect.co.uk/Perl/zips/">http://www.fastnetltd.ndirect.co.uk/Perl/zips/</A></TD>
  193.       <TD valign="top" align="left" width="50%">Fastnet Software Ltd's packages - not directly
  194.         accessible from PPM at present</TD>
  195.     </TR>
  196.   </TABLE>
  197. </BLOCKQUOTE>
  198. <P>To use these package repositories you start PPM and at the prompt type</P>
  199. <BLOCKQUOTE>
  200.   <P>set repository <I>NAME</I> <I>URL</I></P>
  201. </BLOCKQUOTE>
  202. <P>where <I>NAME</I> is a name by which you want to reference the repository from PPM and <I>URL</I>
  203. is the URL to the repository. You could for example type</P>
  204. <BLOCKQUOTE>
  205.   <P>set repository JENDA http://Jenda.Krynicky.cz/perl</P>
  206. </BLOCKQUOTE>
  207. <P>The next time you do a 'search' you will not only search the ActiveState package repository but
  208. also the repositories you have added. Before you exit PPM you should save the changes to the
  209. configuration by issuing the command 'set save'.</P>
  210. <A name="how_to_make_ppm_distribution"></A>
  211. <HR>
  212. <H1>How do I make a PPM package?</H1>
  213. <P>If you want to make a PPM package for use on other machine you can do it like this:</P>
  214. <P>Specify the AUTHOR and ABSTRACT parameters in the Makefile.PL. However you should only pass them
  215. to WriteMakefile if the version of the perl is greater than 5.005 - older perls do not have these
  216. parameters added and do not expect to see them. This is an example Makefile.PL:</P>
  217. <BLOCKQUOTE>
  218.   <P><CODE>use ExtUtils::MakeMaker;<BR>
  219.   # See lib/ExtUtils/MakeMaker.pm for details of how to influence<BR>
  220.   # the contents of the Makefile that is written.<BR>
  221.   WriteMakefile(<BR>
  222.       'NAME' => 'Term::Control',<BR>
  223.       'VERSION_FROM' => 'Control.pm', # finds $VERSION<BR>
  224.       ($] ge '5.005') ? (<BR>
  225.           'AUTHOR' => 'Johnny Doel (johnny@doel.org)',<BR>
  226.           'ABSTRACT' => 'Control the IO for terminals',<BR>
  227.       ) : (),<BR>
  228.   );</CODE></P>
  229. </BLOCKQUOTE>
  230. <P>Then you make the archive with the commands</P>
  231. <BLOCKQUOTE>
  232.   <P><CODE>perl Makefile.PL<BR>
  233.   nmake</CODE></P>
  234. </BLOCKQUOTE>
  235. <P>The resulting files are placed in the blib directory that is created when you run nmake. These
  236. files should be packed into an archive like this:</P>
  237. <BLOCKQUOTE>
  238.   <P><CODE>tar cvf <I>package</I>.tar blib<BR>
  239.   gzip --best <I>package</I>.tar</CODE></P>
  240. </BLOCKQUOTE>
  241. <P>You now have an archive called <I>package</I>.tar.gz. Then you generate the PPD file by:</P>
  242. <BLOCKQUOTE>
  243.   <P><CODE>nmake ppd</CODE></P>
  244. </BLOCKQUOTE>
  245. <P>You have to edit the resulting PPD file and add the location of the package archive into <CODEBASE
  246. HREF="" />. The location is relative to the PPD file.</P>
  247. <P>You can get nmake from <A href="ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe">ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe</A>.
  248. You can get tar and gzip from <A href="http://www.itribe.net/virtunix/">http://www.itribe.net/virtunix/</A>.</P>
  249. <HR>
  250. <A name="ppm_and_proxies"></A>
  251. <H1>PPM, Proxies and Firewalls</H1>
  252. <P>If you use a proxy server or firewall, you might have trouble running PPM. Here is the solution.</P>
  253. <BLOCKQUOTE>
  254.   <P><B><I>NOTE</I></B>: If none of the changes in this document work for you, you may download
  255.   individual packages from <A href="http://www.activestate.com/packages/zips">here</A> and install
  256.   them according to the directions in the README file contained within the ZIP file. If you want,
  257.   you can also keep a local repository, with several .ppd files in a permanent repository directory,
  258.   and their .tar.gz files in an <I>x86</I> directory beneath that.</P>
  259. </BLOCKQUOTE>
  260. <OL start="1">
  261.   <LI>
  262.     <P><B>Set Environment Vars</B></P>
  263.   </LI>
  264. </OL>
  265. <BLOCKQUOTE>
  266.   <P>Up to three environment variables need to be set.</P>
  267. </BLOCKQUOTE>
  268. <BLOCKQUOTE>
  269.   <P><STRONG>Under Windows NT<BR>
  270.   </STRONG>Right click on "My Computer", click on "properties", select the
  271.   "environment" tab. These are your environment settings. Make the following changes:<BR>
  272.   <BR>
  273.   </P>
  274.   <OL>
  275.     <LI>Add the setting HTTP_proxy, with your proxy name as the value (<EM><STRONG>you must include
  276.       "http://"</STRONG></EM> ), followed by a colon and the proxy port, if applicable;
  277.       e.g., "http://proxy:8080"</LI>
  278.     <LI>If you require a user name and/or password to access your proxy, add the settings
  279.       HTTP_proxy_user and HTTP_proxy_pass, with your user name and password as the respective values</LI>
  280.     <LI style="list-style: none"><BR>
  281.     </LI>
  282.   </OL>
  283. </BLOCKQUOTE>
  284. <BLOCKQUOTE>
  285.   <P><STRONG>Under Windows 95<BR>
  286.   </STRONG>In your AUTOEXEC.BAT file, place the following lines then reboot so the changes can take
  287.   effect:</P>
  288. </BLOCKQUOTE>
  289. <BLOCKQUOTE>
  290.   <OL start="1">
  291.     <LI>SET HTTP_proxy=<your proxy server (<STRONG><EM>you must include "http://"</EM></STRONG>
  292.       >, followed by a colon and the proxy port, if applicable; e.g., SET HTTP_proxy=http://proxy:8080</LI>
  293.     <LI>SET HTTP_proxy_user=<your user name> (if required)</LI>
  294.     <LI>SET HTTP_proxy_pass=<your password> (if required)<BR>
  295.       <BR>
  296.     </LI>
  297.   </OL>
  298. </BLOCKQUOTE>
  299. <OL start="2">
  300.   <LI>
  301.     <P><B>Try using PPM</B></P>
  302.   </LI>
  303. </OL>
  304. <BLOCKQUOTE>
  305.   <P>With your internet connection active, try using PPM again. Try to install a small package, like
  306.   File-Slurp. You'll know that it still fails if you see an error stating that it can't find a ppd
  307.   file for the specified package.</P>
  308. </BLOCKQUOTE>
  309. <OL start="3">
  310.   <LI>
  311.     <P><B>Further Information and Help</B></P>
  312.   </LI>
  313. </OL>
  314. <BLOCKQUOTE>
  315.   <P>If there were problems with any of the above hints, please see <A href="../readme.html#More_Info">here</A>
  316.   on how to get further help.</P>
  317. </BLOCKQUOTE>
  318. <HR>
  319. <H1><A name="AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</A></H1>
  320. <P>This FAQ was originally assembled and maintained by Evangelo Prodromou. It has been revised and
  321. updated by Brian Jepson of O'Reilly & Associates, David Grove, David Dmytryshyn, and Murray
  322. Nesbitt of ActiveState, Henning Michael M°ller-Nielsen of RTO, Kevin Meltzer, and David Sparks of
  323. ActiveState.</P>
  324. <P>This FAQ is in the public domain. If you use it, however, please ensure that you give credit to
  325. the original authors.</P>
  326. <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
  327.   <TR>
  328.     <TD class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><STRONG>
  329.       <P class="block"> ActivePerl FAQ</P>
  330.       </STRONG></TD>
  331.   </TR>
  332. </TABLE>
  333.  
  334. </BODY>
  335.  
  336. </HTML>
  337.