App-opan

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME
    App::opan - A CPAN overlay for darkpan and pinning purposes

SYNOPSIS
    Set up an opan (creates a directory tree in "pans/"):

      $ opan init
      $ opan pin MSTROUT/M-1.tar.gz
      $ opan add ./My-Dist-1.23.tar.gz

    Now, you can start the server:

      $ opan daemon -l http://localhost:8030/
      Server available at http://localhost:8030/

    Then in another terminal, run one of:

      $ cpanm --mirror http://localhost:8030/combined/ --mirror-only --installdeps .
      $ PERL_CARTON_MIRROR=http://localhost:8030/combined/ carton install

    Or, to let opan do that part for you, skip starting the server and run
    one of:

      $ opan cpanm --installdeps .
      $ opan carton install

DESCRIPTION
    Two basic approaches to using this thing. First, if you're using carton,
    you can probably completely ignore the pinning system, so just do:

      $ opan init
      $ opan add ./My-DarkPan-Dist-1.23.tar.gz
      $ git add pans/; git commit -m 'fresh opan'
      $ opan carton install

    You can reproduce this install with simply:

      $ opan carton install --deployment

    When you want to update to a new version of the cpan index (assuming you
    already have an additional requirement that's too old in your current
    snapshot):

      $ opan pull
      $ git add pans/; git commit -m 'update pans'
      $ opan carton install

    Second, if you're not using carton, but you want reproducible installs,
    you can still mostly ignore the pinning system by doing:

      $ opan init
      $ opan add ./My-DarkPan-Dist-1.23.tar.gz
      $ opan cpanm --autopin --installdeps .
      $ git add pans/; git commit -m 'opan with current version pinning'

    Your reproducible install is now:

      $ opan cpanm --installdeps .

    When you want to update to a new version of the cpan index (assuming you
    already have an additional requirement that's too old in your current
    snapshot):

README  view on Meta::CPAN

      PERL_CARTON_MIRROR=http://localhost:<port>/combined/ carton <your args here>

    Can also be run with one of:

      opan carton --nopin <your args here>
      opan carton --autopin <your args here>
      opan carton --combined <your args here>

    to request a specific PAN.

  PANs
   upstream
    02packages: Fetched from www.cpan.org by the "fetch" command.

    Dist files: Fetched from www.cpan.org on-demand.

   pinset
    02packages: Managed by "pin" and "unpin" commands.

    Dist files: Fetched from www.cpan.org by "pin" command.

   custom
    02packages: Managed by "add" and "unadd" commands.

    Dist files: Imported from local disk by "add" command.

   combined
    02packages: Merged from upstream, pinset and custom PANs by "merge"
    command.

    Dist files: Fetched from custom, pinset and upstream in that order.

   nopin
    02packages: Merged from upstream and custom PANs by "merge" command.

    Dist files: Fetched from custom, pinset and upstream in that order.

   autopin
    Virtual PAN with no presence on disk.

    Identical to nopin, but fetching a dist from upstream does an implict
    "pin".

    Since this can modify your opan config, it's only enabled if the
    environment variable "OPAN_AUTOPIN" is set to a true value (calling the
    "cpanm" or "carton" commands with "--autopin" sets this for you, because
    you already specified you wanted that).

  uploads
    To enable the /upload endpoint, set the ENV var OPAN_AUTH_TOKENS to a
    colon separated list of accepted tokens for uploads. This will allow a
    post with a 'file' upload argument, checking http basic auth password
    against the provided auth tokens.

  recurring pull
    Set ENV OPAN_RECURRING_PULL to a true value to make opan automatically
    pull from upstream every 600 seconds

  custom upstream
    Set the ENV var OPAN_MIRROR to specify a cpan mirror - the default is
    www.cpan.org. Remember that if you need to temporarily overlay your
    overlay but only for one user, there's nothing stopping you setting
    OPAN_MIRROR to another opan.

AUTHOR
    Matt S. Trout (mst) <mst@shadowcat.co.uk>

CONTRIBUTORS
    Aaron Crane (arc) <arc@cpan.org>

    Marcus Ramburg (marcus) <marcus.ramberg@gmail.com>

COPYRIGHT
    Copyright (c) 2016-2018 the App::opan "AUTHOR" and "CONTRIBUTORS" as
    listed above.

LICENSE
    This library is free software and may be distributed under the same
    terms as perl itself.



( run in 0.739 second using v1.01-cache-2.11-cpan-5735350b133 )