Provided by: pinto_0.97+dfsg-2_all bug

NAME

       Pinto::Manual::Installing - Tips for installing Pinto

VERSION

       version 0.097

SYNOPSIS

       For the impatient...

         curl -L http://getpinto.stratopan.com | bash
         source ~/opt/local/pinto/etc/bashrc

       And then possibly...

         echo source ~/opt/local/pinto/etc/bashrc >> ~/.bashrc

APPLICATION VERSUS LIBRARY VERSUS SERVER

       For most situations, Pinto is more like an application than a library.  It is a tool that
       you use to develop and manage your code, but Pinto itself is not part of your code.  Pinto
       also has a lot of dependencies, some of which may conflict with or complicate your code.

       Pinto can also serve as the backend supporting a daemonized Starman server exposed to the
       wilds of the internet.  Doing so opens the door to many additional security concerns.  We
       suggest below some practices we hope will serve to minimize the risks of doing so.

INSTALLING AS AN APPLICATION

       For the reasons above, I recommend installing Pinto as a stand-alone application in its
       own sandbox.  That way, it doesn't pollute your environment with its dependencies.  Nor
       will you pollute Pinto with changes to your environment, so Pinto will function even when
       your other environment dependencies are broken. And hopefully, you can use Pinto to help
       fix whatever broke!

   Step 1: Run the pinto installer script
       The installer script at <http://getpinto.stratopan.com> is mostly just a wrapper around
       cpanm, which installs pinto in a self-contained directory:

          # If you use curl...
          curl -L http://getpinto.stratopan.com | bash

          # If you use wget...
          wget -O - http://getpinto.stratopan.com | bash

       All the dependent modules will come from a curated repository on Stratopan
       <http://stratopan.com>.  These aren't always the latest versions of things, but they are
       versions that I know will work.

   Step 2: Set up the pinto environment
       The pinto installer generates a setup script for you.  By default, it is located at
       ~/opt/local/pinto/etc/bashrc.  To load that setup into your current shell, just give this
       command:

         source ~/opt/local/pinto/etc/bashrc

       To make these settings part of your everyday shell environment, just add that last command
       to your ~/.profile or ~/.bashrc or whatever setup file is appropriate for your shell.

       If you wish to customize any of the other environment variables that pinto uses, you can
       place those commands in ~/.pintorc.  If that file exists, the setup script will source
       them as well.  See pinto for a list of the relevant environment variables.

INSTALLING AS A SERVER

       If you will be running the pintod daemon exposed to the internet, it is suggested that you
       assume root privileges and proceed as follows:

       (1) create a pinto user like so:

           adduser --system --home /opt/local/pinto --shell /bin/false \
               --disabled-login --group pinto

       (2) set some environmental variables:

           export PINTO_HOME=/opt/local/pinto
           export PINTO_REPOSITORY_ROOT=/var/pinto

       check that the exports took with `env`.

       (3) run the installer as described above, and source the environmental variables to
       facilitate the steps of setting up the repository.

       (4) choose an authentication backend and install it like so:

           cpanm -L $PINTO_HOME Authen::Simple::Kerberos

       to review your options see Authen::Simple.

       (5) choose an appropriate startup script and install it:

           cp $PINTO_HOME/etc/init.d/pintod.debian /etc/init.d/pintod

           update-rc.d pintod start 50 2 3 4 5 . stop 20 0 1 6 .

   AN IMPORTANT NOTE ABOUT SECURITY
       Currently daemonizing the pintod server will run the starman workers as root.  We hope to
       soon have the pintod daemon drop its privileges after initiating the master and before
       spawning the workers, so that the workers will run as the pinto user.  Until that feature
       is in place, pinto repository administrators are urged to keep their installations safely
       behind firewalls, protected from the potentially hostile user.

INSTALLING AS A LIBRARY

       If you're going to be hacking on Pinto itself, or want to try building on the API
       directly, then you can install Pinto straight into your development environment, just like
       you would do for any other module.

       Just beware that Pinto has lots of dependencies.  And if you subsequently upgrade any of
       those dependencies to something that breaks Pinto, then you might find yourself in a
       pickle.  The whole point of Pinto is to help you manage your dependencies, so if you break
       Pinto, it won't be able to help you.

OTHER INSTALLATION OPTIONS

       Naturally, installation procedures will vary from one environment to another.  If this
       procedure doesn't work for you, or if you'd like to suggest a procedure for a different
       environment (e.g. Windows, Perlbrew, Strawberry Perl, etc.), then please contact me.  Your
       contributions would be greatly appreciated.

SEE ALSO

       Pinto::Manual::QuickStart

       Pinto::Manual::Tutorial

       Pinto (the library)

       pinto (the command)

AUTHOR

       Jeffrey Ryan Thalhammer <jeff@stratopan.com>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2013 by Jeffrey Ryan Thalhammer.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.