App::Pinto::Command::update - update packages to latest
versions
pinto --root=REPOSITORY_ROOT update [OPTIONS] TARGET ...
!! THIS COMMAND IS EXPERIMENTAL !!!
This command updates packages in your repository to the newer
versions in an updstream repository. By default, Pinto takes the first newer
version that it finds. If the "--cascade"
option is used, then Pinto will take the newest version it finds among all
the upstream repositories.
Arguments are the names of the pakcages you want to install. If
using the "--all" or
"--roots" options then arguments are not
allowed.
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. If using the
"--all" or
"--roots" options, then input will not be
read from STDIN.
- --all
- Update all distributions in the stack. We do not attempt to update locally
added distributions unless "--force" is
used. If this option is used, then package names cannot be given as
command arguments. See also the
"--roots" option.
- --cascade
- !! THIS OPTION IS EXPERIMENTAL !!
When searching for a package (or one of its prerequisites),
always take the latest satisfactory version of the package found amongst
all the upstream repositories, rather than just taking the
first newer 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.
- --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.
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.
- --dry-run
- Go through all the motions, but do not actually commit any changes to the
repository. At the conclusion, a diff showing the changes that would have
been made will be displayed. Use this option to see how upgrades would
potentially impact the stack.
- --force
- Forcibly unpin any packages that require updating. The pins will not be
restored after a succesful update.
- --no-fail
- !! THIS OPTION IS EXPERIMENTAL !!
Normally, failure to pull a target (or its prerequisites)
causes the command to immediately abort and rollback the changes to the
repository. But if C <--no-fail> is set, then only the changes
caused by the failed target (and its prerequisites) will be rolled back
and the command will continue processing the remaining targets.
This option is useful if you want to throw a list of targets
into a repository and see which ones are problematic. Once you've fixed
the broken ones, you can throw the whole list at the repository
again.
- --message=TEXT
- -m TEXT
- Use TEXT as the revision history log message. If you do not use the
"--message" option or the
"--use-default-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.
- --pin
- Pins the packages to the stack, so they cannot be changed until you unpin
them. Only the packages in the requested targets will be pinned --
packages in prerequisites will not be pinned. However, you may pin them
separately with the pin command if you so desire.
- --recurse
- --no-recurse
- Recursively pull any distributions required to satisfy prerequisites for
the targets. The default value for this option can be configured in the
pinto.ini configuration file for the repository (it is usually set
to 1). To disable recursion, use
"--no-recurse".
- --roots
- Updates the root distributions of the stack. We do not attempt to update
locally added distributions unless
"--force" is used. If this option is
used, then package names cannot be given as command arguments. See also
the "--all" option.
- --skip-missing-prerequisite=PACKAGE
- -k PACKAGE
- !! THIS OPTION IS EXPERIMENTAL !!
Skip any prerequisite with name PACKAGE if a satisfactory
version cannot be found. However, a warning will be given whenever this
occurrs. This option only has effect when recursively fetching
prerequisites for the targets (See also the
"--recurse" option). This option can
be repeated.
- --skip-all-missing-prerequisites
- -K
- !! THIS OPTION IS EXPERIMENTAL !!
Skips all missing prerequisites if a satisfactory version
cannot be found. However, a warning will be given whenever this occurrs.
This option will silently override the
"--skip-missing-prerequisite" option
and only has effect when recursively fetching prerequisites for the
targets (See also the "--recurse"
option).
- --stack=NAME
- -s NAME
- Puts all the packages onto the stack with the given NAME. 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. 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.
- --with-development-prerequisites
- --wd
- Also pull development prerequisites so you'll have everything you need to
work on those distributions, in the event that you need to patch them in
the future. Be aware that most distributions do not actually declare their
development prerequisites.
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.