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

This post is quite late, but anyway... it would help any other guy who would like to have a local PPM reposity also...

Because both versions have the same name for the 'ppd' file you can't just download all the ZIP files then unzip them to create your repository. (Been there, done that, no T shirt)

Looks like you're just going to the wrong side... you should do the same PPM tool does. For instance, instead of fetching ZIP files you could use the URL http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/, which will give you all the PPD's. After that, is just a matter to parse the PPD (which are simple XML files), create a list of tarballs to download. The PPD also gives the architecture, so I just tried http://ppm4.activestate.com/MSWin32-x86/5.8/820/MSWin32-x86-multi-thread-5.8/ and it worked.

This should solve the issues you had. The major problem, as I see, is combining the repository of ActiveState with others, since ActiveState's does not hold all available modules in PPM format. Winnipeg's repository, for example, has many additional modules plus the same available on ActiveState's.

Oh, and I had to get '7-zip' to be able to unzip from the command line.

CPAN has utilities to deal with ZIP files, so using a binary is not necessary.

Alceu Rodrigues de Freitas Junior
---------------------------------
"You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill
  • Comment on Re: Building a local 'ppm' repository (Windows)

Replies are listed 'Best First'.
Re^2: Building a local 'ppm' repository (Windows)
by LittleGreyCat (Scribe) on Nov 05, 2008 at 10:45 UTC
    "you could use the URL http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/, which will give you all the PPD's"

    Actually, that is the URL which gave me all my zip files (please see original post).

    I now have some combined code which builds the repository from zip files and then builds the 'package.lst' file from the repository.
    See What is the format of a .packlist file for a PPM repository?.
    This works fine with 5.8 ppm; about to test with 5.10 ppm.
    The code is really nasty, but I probably don't have time to clean it up.
    The code was developed at least partially on work time, so I will have to check to see if there are any issues with posting it.
    If not, I will post it as an example of how not to write Perl (but still get the job done in a slow, rude, crude and disgusting way).

    Please note that one of the 'rude, crude and disgusting' design decisions was to use DOS command line utilities invoked via Perl where possible to minimise coding time.
    A future project (when I have some spare time) is to replace all the DOS dross with Perl code including handling Zip files.
    Until then I will use 7-zip because I can do what I want with a single line of Perl :-).

    Cheers

    Dave R

    Nothing succeeds like a budgie with no teeth.

      I am facing the same firewall issue, and had exactly the same thoughts about setting up a local repo. Did you seek/get permission to post the code? It would save me a whole load of time - and most likely the same for others in our situation.

      Cheers,
      Anthony.

        Ditto that last. Please, people, do kindly share your solutions after having gotten help here. Thus do I find myself two years ex-post-facto the above seekers assumed victory, having read through the entire thread only to find that he who assumably solved this vexing issue elected neither to share their final results nor to explain why they couldn't. Grrr.

        Yes, of course I can exert a similar effort myself and put it together on my own...except for a pressing time constraint within which narrow window I must either effect this solution or else do without.

        My own such howtos, few though they may be, are all posted here link and here link...both of which lists, do admittedly, need updating and some broken links fixed (I just last week moved some domains). But at least I bothered in the first place.