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

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>ppm - PPM</TITLE>
  5. <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> ppm - PPM</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#usage">USAGE</A></LI>
  26.     <LI><A HREF="#examples">EXAMPLES</A></LI>
  27.     <LI><A HREF="#environment variables">ENVIRONMENT VARIABLES</A></LI>
  28.     <LI><A HREF="#files">FILES</A></LI>
  29.     <LI><A HREF="#author">AUTHOR</A></LI>
  30.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  31. </UL>
  32. <!-- INDEX END -->
  33.  
  34. <HR>
  35. <P>
  36. <H1><A NAME="name">NAME</A></H1>
  37. <P>ppm - PPM (Perl Package Management)</P>
  38. <P>
  39. <HR>
  40. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  41. <UL>
  42. <LI>Linux</LI>
  43. <LI>Solaris</LI>
  44. <LI>Windows</LI>
  45. </UL>
  46. <HR>
  47. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  48. <PRE>
  49.  use PPM;</PRE>
  50. <PRE>
  51.  PPM::InstallPackage("package" => $package, "location" => $location, "root" => $root);
  52.  PPM::RemovePackage("package" => $package, "force" => $force);
  53.  PPM::VerifyPackage("package" => $package, "location" => $location, "upgrade" => $upgrade);
  54.  PPM::QueryInstalledPackages("searchRE" => $searchRE, "searchtag" => $searchtag, "ignorecase" => $ignorecase);
  55.  PPM::InstalledPackageProperties();
  56.  PPM::QueryPPD("location" => $location, "searchRE" => $searchRE, "searchtag" => $searchtag, "ignorecase" => $ignorecase, "package" => $package);
  57. </PRE>
  58. <PRE>
  59.  
  60.  PPM::ListOfRepositories();
  61.  PPM::RemoveRepository("repository" => $repository, "save" => $save);
  62.  PPM::AddRepository("repository" => $repository, "location" => $location, "save" => $save);
  63.  PPM::RepositoryPackages("location" => $location);
  64.  PPM::RepositoryPackageProperties("package" => $package, "location" => $location);
  65.  PPM::RepositorySummary("location" => $location);</PRE>
  66. <PRE>
  67.  
  68.  PPM::GetPPMOptions();
  69.  PPM::SetPPMOptions("options" => %options, "save" => $save);</PRE>
  70. <P>
  71. <HR>
  72. <H1><A NAME="description">DESCRIPTION</A></H1>
  73. <P>PPM is a group of functions intended to simplify the tasks of locating,
  74. installing, upgrading and removing software 'packages'.  It can determine
  75. if the most recent version of a software package is installed on a system,
  76. and can install or upgrade that package from a local or remote host.</P>
  77. <P>PPM uses files containing a modified form of the Open Software Distribution
  78. (OSD) specification for information about software packages.
  79. These description files, which are written in Extensible Markup
  80. Language (XML) code, are referred to as 'PPD' files.  Information about
  81. OSD can be found at the W3C web site (at the time of this writing,
  82. <A HREF="http://www.w3.org/TR/NOTE-OSD.html).">http://www.w3.org/TR/NOTE-OSD.html).</A>  The modifications to OSD used by PPM
  83. are documented in PPM::ppd.</P>
  84. <P>PPD files for packages are generated from POD files using the pod2ppd
  85. command.</P>
  86. <P>
  87. <HR>
  88. <H1><A NAME="usage">USAGE</A></H1>
  89. <DL>
  90. <DT><STRONG><A NAME="item_InstallPackage">PPM::InstallPackage(``package'' => $package, ``location'' => $location, ``root'' => $root);</A></STRONG><BR>
  91. <DD>
  92. Installs the specified package onto the local system.  'package' may
  93. be a simple package name ('foo'), a pathname (P:\PACKAGES\FOO.PPD) or
  94. a URL (HTTP://www.ActiveState.com/packages/foo.ppd).  In the case of a
  95. simple package name, the function will look for the package's PPD file
  96. at 'location', if provided; otherwise, it will use information stored
  97. in the PPM data file (see 'Files' section below) to locate the PPD file
  98. for the requested package.  The package's files will be installed under
  99. the directory specified in 'root'; if not specified the default value
  100. of 'root' will be used.
  101. <P>The function uses the values stored in the PPM data file to determine the
  102. local operating system, operating system version and CPU type.  If the PPD
  103. for this package contains implementations for different platforms, these
  104. values will be used to determine which one is installed.</P>
  105. <P><A HREF="#item_InstallPackage"><CODE>InstallPackage()</CODE></A> updates the PPM data file with information about the package
  106. installation. It stores a copy of the PPD used for installation, as well
  107. as the location from which this PPD was obtained.  This location will
  108. become the default PPD location for this package.</P>
  109. <P>During an installation, the following actions are performed:</P>
  110. <PRE>
  111.     - the PPD file for the package is read
  112.     - a directory for this package is created in the directory specified in
  113.       <BUILDDIR> in the PPM data file.
  114.     - the file specified with the <CODEBASE> tag in the PPD file is 
  115.       retrieved/copied into the directory created above.
  116.     - the package is unarchived in the directory created for this package
  117.     - individual files from the archive are installed in the appropriate
  118.       directories of the local Perl installation.
  119.     - <A HREF="../../lib/perllocal.html">perllocal</A>.pod is updated with the install information.
  120.     - if provided, the <INSTALL> script from the PPD is executed in the
  121.       directory created above.
  122.     - information about the installation is stored in the PPM data file.</PRE>
  123. <P></P>
  124. <DT><STRONG><A NAME="item_RemovePackage">PPM::RemovePackage(``package'' => $package, ``force'' => $force)</A></STRONG><BR>
  125. <DD>
  126. Removes the specified package from the system.  Reads the package's PPD
  127. (stored during installation) for removal details.  If 'force' is
  128. specified, even a package required by PPM will be removed (useful
  129. when installing an upgrade).
  130. <P></P>
  131. <DT><STRONG><A NAME="item_VerifyPackage">PPM::VerifyPackage(``package'' => $package, ``location'' => $location, ``upgrade'' => $upgrade)</A></STRONG><BR>
  132. <DD>
  133. Reads a PPD file for 'package', and compares the currently installed
  134. version of 'package' to the version available according to the PPD.
  135. The PPD file is expected to be on a local directory or remote site
  136. specified either in the PPM data file or in the 'location' argument.
  137. The 'location' argument may be a directory location or a URL.
  138. The 'upgrade' argument forces an upgrade if the installed package is
  139. not up-to-date.
  140. <P>The PPD file for each package will initially be searched for at
  141. 'location', and if not found will then be searched for using the
  142. locations specified in the PPM data file.</P>
  143. <P></P>
  144. <DT><STRONG><A NAME="item_QueryInstalledPackages">PPM::QueryInstalledPackages(``searchRE'' => $searchRE, ``searchtag'' => $searchtag, ``ignorecase'' => $ignorecase);</A></STRONG><BR>
  145. <DD>
  146. Returns a hash containing information about all installed packages.
  147. By default, a list of all installed packages is returned.  If a regular
  148. expression 'searchRE' is specified, only packages matching it are 
  149. returned.  If 'searchtag' is specified, the pattern match is applied 
  150. to the appropriate tag (e.g., ABSTRACT).
  151. <P>The data comes from the PPM data file, which contains installation
  152. information about each installed package.</P>
  153. <P></P>
  154. <DT><STRONG><A NAME="item_InstalledPackageProperties">PPM::InstalledPackageProperties();</A></STRONG><BR>
  155. <DD>
  156. Returns a hash with package names as keys, and package properties as
  157. attributes.
  158. <P></P>
  159. <DT><STRONG><A NAME="item_QueryPPD">PPM::QueryPPD(``location'' => $location, ``searchRE'' => $searchRE, ``searchtag'' => $searchtag, ``ignorecase'' => $ignorecase, ``package'' => $package);</A></STRONG><BR>
  160. <DD>
  161. Searches for 'searchRE' (a regular expression) in the <ABSTRACT>,
  162. <AUTHOR> or <TITLE> tags of the PPD file for 'package' at 'location'.
  163. 'location' may be either a remote address or a directory path, and if
  164. it is not provided, the default location as specified in the PPM data
  165. file will be used.  If the 'ignorecase' option is specified, it overrides
  166. the current global case-sensitivity setting.  On success, the matching
  167. string is returned.
  168. <P></P>
  169. <DT><STRONG><A NAME="item_RepositoryPackages">PPM::RepositoryPackages(``location'' => $location);</A></STRONG><BR>
  170. <DD>
  171. Returns a hash, with 'location' being the key, and arrays of all packages
  172. with package description (PPD) files available at 'location' as its
  173. elements.  'location' may be either a remote address or a directory path.
  174. If 'location' is not specified, the default location as specified in
  175. the PPM data file will be used.
  176. <P></P>
  177. <DT><STRONG><A NAME="item_ListOfRepositories">PPM::ListOfRepositories();</A></STRONG><BR>
  178. <DD>
  179. Returns a hash containing the name of the repository and its location.
  180. These repositories will be searched if an explicit location is not
  181. provided in any function needing to locate a PPD.
  182. <P></P>
  183. <DT><STRONG><A NAME="item_RemoveRepository">PPM::RemoveRepository(``repository'' => $repository, ``save'' => $save);</A></STRONG><BR>
  184. <DD>
  185. Removes the repository named 'repository' from the list of available
  186. repositories.  If 'save' is not specified, the change is for the current
  187. session only.
  188. <P></P>
  189. <DT><STRONG><A NAME="item_AddRepository">PPM::AddRepository(``repository'' => $repository, ``location'' => $location, ``save'' => $save);</A></STRONG><BR>
  190. <DD>
  191. Adds the repository named 'repository' to the list of available repositories.
  192. If 'save' is not specified, the change is for the current session only.
  193. <P></P>
  194. <DT><STRONG><A NAME="item_RepositoryPackageProperties">PPM::RepositoryPackageProperties(``package'' => $package, ``location'' => $location);</A></STRONG><BR>
  195. <DD>
  196. Reads the PPD file for 'package', from 'location' or the default repository,
  197. and returns a hash with keys being the various tags from the PPD (e.g.
  198. 'ABSTRACT', 'AUTHOR', etc.).
  199. <P></P>
  200. <DT><STRONG><A NAME="item_RepositorySummary">PPM::RepositorySummary(``location'' => $location);</A></STRONG><BR>
  201. <DD>
  202. Attempts to retrieve the summary file associated with the specified repository,
  203. or from all repositories if 'location' is not specified.  The return value
  204. is a hash with the key being the repository, and the data being another
  205. hash of package name keys, and package detail data.
  206. <P></P>
  207. <DT><STRONG><A NAME="item_GetPPMOptions">PPM::GetPPMOptions();</A></STRONG><BR>
  208. <DD>
  209. Returns a hash containing values for all PPM internal options ('IGNORECASE',
  210. 'CLEAN', 'CONFIRM', 'ROOT', 'BUILDDIR').
  211. <P></P>
  212. <DT><STRONG><A NAME="item_SetPPMOptions">PPM::SetPPMOptions(``options'' => %options, ``save'' => $save);</A></STRONG><BR>
  213. <DD>
  214. Sets internal PPM options as specified in the 'options' hash, which is
  215. expected to be the hash previously returned by a call to GetPPMOptions().
  216. <P></P></DL>
  217. <P>
  218. <HR>
  219. <H1><A NAME="examples">EXAMPLES</A></H1>
  220. <DL>
  221. <DT><STRONG>PPM::AddRepository(``repository'' => 'ActiveState', ``location'' => ``http://www.ActiveState.com/packages'', ``save'' => 1);</STRONG><BR>
  222. <DD>
  223. Adds a repository to the list of available repositories, and saves it in
  224. the PPM options file.
  225. <P></P>
  226. <DT><STRONG>PPM::InstallPackage(``package'' => 'http://www.ActiveState.com/packages/foo.ppd');</STRONG><BR>
  227. <DD>
  228. Installs the software package 'foo' based on the information in the PPD
  229. obtained from the specified URL.
  230. <P></P>
  231. <DT><STRONG>PPM::VerifyPackage(``package'' => 'foo', ``upgrade'' => true)</STRONG><BR>
  232. <DD>
  233. Compares the currently installed version of the software package 'foo' to
  234. the one available according to the PPD obtained from the package-specific
  235. location provided in the PPM data file, and upgrades to a newer
  236. version if available.  If a location for this specific package is not
  237. given in PPM data file, a default location is searched.
  238. <P></P>
  239. <DT><STRONG>PPM::VerifyPackage(``package'' => 'foo', ``location'' => 'P:\PACKAGES', ``upgrade'' => true);</STRONG><BR>
  240. <DD>
  241. Compares the currently installed version of the software package 'foo'
  242. to the one available according to the PPD obtained from the specified
  243. directory, and upgrades to a newer version if available.
  244. <P></P>
  245. <DT><STRONG>PPM::VerifyPackage(``package'' => 'PerlDB');</STRONG><BR>
  246. <DD>
  247. Verifies that package 'PerlDB' is up to date, using package locations specified
  248. in the PPM data file.
  249. <P></P>
  250. <DT><STRONG>PPM::RepositoryPackages(``location'' => <A HREF="http://www.ActiveState.com/packages);">http://www.ActiveState.com/packages);</A></STRONG><BR>
  251. <DD>
  252. Returns a hash keyed on 'location', with its elements being an array of
  253. packages with PPD files available at the specified location.
  254. <P></P>
  255. <DT><STRONG>PPM::QueryPPD(``location'' => 'P:\PACKAGES', ``searchRE'' => 'ActiveState', ``searchtag'' => 'author');</STRONG><BR>
  256. <DD>
  257. Searches the specified location for any package with an <AUTHOR> tag
  258. containing the string 'ActiveState'.  On a successful search, the matching
  259. string is returned.
  260. <P></P>
  261. <DT><STRONG>%opts = PPM::GetPPMOptions();</STRONG><BR>
  262. <DD>
  263. <DT><STRONG><A NAME="item_%24opts%7B%27CONFIRM%27%7D_%3D_%27No%27%3B">$opts{'CONFIRM'} = 'No';</A></STRONG><BR>
  264. <DD>
  265. <DT><STRONG>PPM::SetPPMOptions(``options'' => \%opts, ``save'' => 1);</STRONG><BR>
  266. <DD>
  267. Sets and saves the value of the option 'CONFIRM' to 'No'.
  268. <P></P></DL>
  269. <P>
  270. <HR>
  271. <H1><A NAME="environment variables">ENVIRONMENT VARIABLES</A></H1>
  272. <DL>
  273. <DT><STRONG><A NAME="item_HTTP_proxy">HTTP_proxy</A></STRONG><BR>
  274. <DD>
  275. If the environment variable 'HTTP_proxy' is set, then it will
  276. be used as the address of a proxy for accessing the Internet.
  277. If the environment variables 'HTTP_proxy_user' and 'HTTP_proxy_pass'
  278. are set, they will be used as the login and password for the 
  279. proxy server.
  280. <P></P></DL>
  281. <P>
  282. <HR>
  283. <H1><A NAME="files">FILES</A></H1>
  284. <DL>
  285. <DT><STRONG><A NAME="item_package%2Eppd">package.ppd</A></STRONG><BR>
  286. <DD>
  287. A description of a software package, in Perl Package Distribution (PPD)
  288. format.  More information on this file format can be found in <A HREF="../../site/lib/XML/PPD.html">the XML::PPD manpage</A>.
  289. PPM stores a copy of the PPD it uses to install or upgrade any software
  290. package.
  291. <P></P>
  292. <DT><STRONG><A NAME="item_ppm%2Exml_%2D_PPM_data_file%2E">ppm.xml - PPM data file.</A></STRONG><BR>
  293. <DD>
  294. The XML format file in which PPM stores configuration and package
  295. installation information.  This file is created when PPM is installed,
  296. and under normal circumstances should never require modification other
  297. than by PPM itself.  For more information on this file, refer to
  298. <A HREF="../../site/lib/XML/PPMConfig.html">the XML::PPMConfig manpage</A>.
  299. <P></P></DL>
  300. <P>
  301. <HR>
  302. <H1><A NAME="author">AUTHOR</A></H1>
  303. <P>Murray Nesbitt, <<EM><A HREF="mailto:murray@activestate.com">murray@activestate.com</A></EM>></P>
  304. <P>
  305. <HR>
  306. <H1><A NAME="see also">SEE ALSO</A></H1>
  307. <P><A HREF="../../site/lib/XML/PPMConfig.html">the XML::PPMConfig manpage</A>
  308. .</P>
  309. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  310. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  311. <STRONG><P CLASS=block> ppm - PPM</P></STRONG>
  312. </TD></TR>
  313. </TABLE>
  314.  
  315. </BODY>
  316.  
  317. </HTML>
  318.