App::Pinto::Command::install(3pm) | User Contributed Perl Documentation | App::Pinto::Command::install(3pm) |
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.
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.
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.
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 <jeff@stratopan.com>
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.
2022-10-16 | perl v5.34.0 |