App::Pinto::Command::install - install stuff from the repository
version 0.14
pinto --root=REPOSITORY_ROOT install [OPTIONS] TARGET...
!! THIS COMMAND IS EXPERIMENTAL !!
Installs targets from the repository into your environment. This is just a thin
wrapper around cpanm that is wired to fetch everything from the Pinto
repository, rather than a public CPAN mirror.
If the "--do-pull" option is given, then all targets and their
prerequisites will be pulled onto the stack before attempting to install them.
If any thing cannot be pulled because it cannot be found or is blocked by a
pin, then the installation will not proceed.
Arguments are the things you want to install. These can be package names,
distribution paths, URIs, local files, or directories. Look at the cpanm
documentation to see all the different ways of specifying what to install.
You can also pipe arguments to this command over STDIN. In that case, blank
lines and lines that look like comments (i.e. starting with "#" or
';') will be ignored.
- --cascade
- !! THIS OPTION IS EXPERIMENTAL !!
When searching for a prerequisite package, always take the latest
satisfactory version of the package found amongst all the upstream
repositories, rather than just taking the first satisfactory
version that is found. Remember that Pinto only searches the upstream
repositories when the local repository does not already contain a
satisfactory version of the package. This option only matters when the
"--do-pull" option is also used.
- --cpanm-exe PATH
- --cpanm PATH
- Sets the path to the cpanm executable. If not specified,
the "PATH" will be searched for the executable. At present,
cpanm version 1.500 or newer is required.
- --cpanm-options NAME=VALUE
- -o NAME=VALUE
- These are options that you wish to pass to cpanm. Do not
prefix the option NAME with a '-'. You can pass any option you like, but
the "--mirror" and "--mirror-only" options will always
be set to point to the Pinto repository.
- --diff-style=STYLE
- Controls the style of the diff reports. STYLE must be
either "concise" or "detailed". Concise reports show
only one record for each distribution added or deleted. Detailed reports
show one record for every package added or deleted. This option ony
matters when the "--do-pull" option is also used.
The default style is "concise". However, the default style can
changed by setting the "PINTO_DIFF_STYLE" environment variable
to your preferred STYLE. This variable affects the default style for diff
reports generated by all other commands too.
- --do-pull
- Pull the targets and recursively pull all their
prerequisites onto the stack before installing. Without the
"--do-pull" option, all targets and their prerequisites must
already be on the stack or the installation will probably fail. When the
"--do-pull" option is used, the stack must not be locked.
- --local-lib=DIRECTORY
- -l DIRECTORY
- Shortcut for setting the "--local-lib" option on
cpanm. Same as "--cpanm-options local-lib=DIRECTORY" or "-o
l=DIRECTORY".
- --local-lib-contained=DIRECTORY
- -L DIRECTORY
- Shortcut for setting the "--local-lib-contained"
option on cpanm. Same as "--cpanm-options
local-lib-containted=DIRECTORY" or "-o L=DIRECTORY".
- --message=TEXT
- -m TEXT
- Use TEXT as the revision history log message. This is only
relevant if you also set the "--do-pull" option. If you do not
use "--message" option, then you will be prompted to enter the
message via your text editor. Use the "PINTO_EDITOR" or
"EDITOR" or "VISUAL" environment variables to control
which editor is used. A log message is not required whenever the
"--dry-run" option is set, or if the action did not yield any
changes to the repository.
- --stack=NAME
- -s NAME
- Use the stack with the given NAME as the repository index.
When used with the "--pull" option, this also determines which
stack prerequisites will be pulled onto. Defaults to the name of whichever
stack is currently marked as the default stack. Use the stacks command to
see the stacks in the repository.
- --use-default-message
- -M
- Use the default value for the revision history log message.
This is only relevant if you also set the "--do-pull" option.
Pinto will generate a semi- informative log message just based on the
command and its arguments. If you set an explicit message with
"--message", the "--use- default-message" option will
be silently ignored.
On the surface, A Pinto repository looks like an ordinary CPAN repository, so
you can use any client to install modules. All you have to do is
"point" it at the URI of your Pinto repository. Each client has a
slightly different interface for setting the URI.
For cpanm, use the "--mirror" and "--mirror-only" options
like this:
$> cpanm --mirror file:///path/to/repo --mirror-only Some::Package ...
For cpan, set the "urllist" config option via the shell like this:
$> cpan
cpan[1]> o conf urllist file:///path/to/repo
cpan[2]> reload index
cpan[3]> install Some::Package
cpan[4]> o conf commit # If you want to make the change permanent
Pointing your client at the top of your repository will install modules from the
default stack. To install from a particular stack, just append the stack name
to the URI. For example:
file:///path/to/repo # Install from default stack
file:///path/to/repo/stacks/dev # Install from "dev" stack
file:///path/to/repo/stacks/prod # Install from "prod" stack
If your repository does not have a default stack then you must specify the full
URI to one of the stacks as shown above.
The "install" command does not support some of the newer features
found in version 1.6 (or later) of cpanm, such as installing from a Git
repository, installing development releases, or using complex version
expressions. If you pass any of those as arguments to this command, the
behavior is unspecified.
Jeffrey Ryan Thalhammer <
[email protected]>
This software is copyright (c) 2015 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.