in reply to Building a local 'ppm' repository (Windows)

To answer your question about the ppd file lets look at the content of one.

<?xml version="1.0" encoding="UTF-8"?> <SOFTPKG NAME="ABI" VERSION="0,01,0,0"> <ABSTRACT>Perl module to parse chromatogram files generated by Appli +ed Biosystems (ABI) automated DNA sequencing machine.</ABSTRACT> <AUTHOR>Malay Kumar Basu (mbasu@ncbi.nlm.nih.gov)</AUTHOR> <IMPLEMENTATION> <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" /> <CODEBASE HREF="MSWin32-x86-multi-thread-5.8/ABI-0.01.tar.gz" /> <OS NAME="MSWin32" /> </IMPLEMENTATION> <TITLE>ABI</TITLE> </SOFTPKG>

The ppd file is similiar to CPAN's meta.yml file. It is used by ppm to get information about the package, what platform the package has been bundled for (since different OS's use different compilers) and the version of the software you want to install.

A don't know of a ppm utility for making sure that you can make yourself a personal repository with only the most current modules. Personally I don't like ppm at all, it has too many issues and it drives me nuts. It has driven me more towards Linux (and CPAN) more than anything else has been able too.

Edited by planetscape - changed pre tags to code tags

( keep:1 edit:5 reap:0 )

Replies are listed 'Best First'.
Re^2: Building a local 'ppm' repository (Windows)
by LittleGreyCat (Scribe) on Jul 05, 2006 at 14:15 UTC
    Thanks - but I don't think this answers my question (or at least the one I thought I asked).
    A full online repository holds several versions of some packages.
    To replicate this in an offline repository you would need to hold several versions of the same package.
    To do this you would need a unique 'ppd' file for each version.

    For some reason the 'ppd' files are not version specific, so you can't directly build an offline repository from the ActiveState ZIP archive.

    I am not looking for a '.ppm' repository with only the most recent modules, I am looking for as near as possible a 'mirror' of the online repository.
    This requires the holding of several versions of modules.

    You can build a CPAN mirror with 'CPAN::Mini'; I just want the same for 'ppm'.

      I am not looking for a '.ppm' repository with only the most recent modules, I am looking for as near as possible a 'mirror' of the online repository.
      I suppose my question would be - why? Okay, I understand the air-gap issue, but why do you eed to have the entire repository on your own machine?

      At present the ppm's available from ActiveState are for those modules which will build succesfully, but even that does not guarantee that they will work flawlessly on Win32. However using CPAN currently gives you an even lower chance of success on Win32 - lots and lots of modules will not build or will not pass their tests.

      A full blown PPM repository is a SOAP server. If you want to make things a little easier you can have a look at this thread http://aspn.activestate.com/ASPN/Mail/Message/ppm/2851563 on the ActiveState ppm mailing list which discusses how to 'fake' a repository. Although I have never had to do it, you can create some other files and the PPM client will look at those and make the indexing and searching easier apparently.

      jdtoronto

        Why? Perhaps why not?

        As to why I want a full repository - I don't know what I will want or what dependecies this will have. Shuttling back across the air-gap each time I find I need something could become a major pain. Better to get the whole set at once.

        At first glance, sorting through the ZIP archives to get only the latest version seems nearly as much work as getting all the versions. Also, if all versions are available in the online repository there may be a reason - or not - but it seems wiser to match the online repository as closely as possible.

        Now I have built my offline 'ppm' repository it seems to work fine; I haven't needed a SOAP server or anything else.
        I just tell 'ppm' about the repository, disable the online repositories, and 'ppm' searches the local disc copy.
        First time through the search is slow, but 'ppm' seems to cache an index and subsequent searches are fast.

        So now I have CDs with a 'ppm' repository that I can distribute locally so that anyone working with ActiveState Perl on Windows just has to insert the CD and tell 'ppm' where to look.

        To me this seems an obvious solution to my 'air gap' problem, and easy to use once set up.

        I guess I am now bitching because I think it could and should have been much easier

        Thanks for all the comments and suggestions.
        Dave R.

      On my local mini-CPAN-mirror I keep only the most recent versions of the modules and have no problems with that, so I'm not sure why you would want to have all versions of the ppm-zips.

      CountZero

      "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law