PKG-UPGRADE(8)          FreeBSD System Manager's Manual         PKG-UPGRADE(8)

NAME

     pkg upgrade - perform upgrades of package software distributions

SYNOPSIS

     pkg upgrade [-fInFqUy] [-r reponame ...] [-Cgix]
                 [<pkg-origin|pkg-name|pkg-name-version> ...]

     pkg upgrade [--{force,no-scripts,dry-run,fetch-only,autoremove}]
                 [--{quiet,no-repo-update,yes}] [--repository reponame ...]
                 [--{case-sensitive,glob,case-insensitive,regex}]
                 [<pkg-origin|pkg-name|pkg-name-version> ...]

DESCRIPTION

     pkg upgrade is used for upgrading packaged software distributions.

     pkg upgrade compares the versions of all or specific packages installed
     on the system to what is available in the configured package
     repositories.  Any out of date packages are added to a work list for
     processing.  The difference to pkg-install(8) is that pkg upgrade tries
     to upgrade dependencies of packages matched as well while pkg-install(8)
     is more conservative during dependencies upgrade.  Moreover, pkg upgrade
     will not install new packages, except as required to fulfil dependencies
     of the packages listed on the command line.  A caller should ensure that
     patterns specified as arguments have installed candidates for matching.
     If the -f (force) flag is given, all installed packages are added to the
     work list.

     The package metadata downloaded from the repositories is then examined
     for each of the packages in the work list, and any missing dependencies
     are added to the work list as install jobs.  Such implicitly added
     packages are flagged as candidates for autoremoval.  See
     pkg-autoremove(8) for details.

     Autoremoval flags are sticky, and will persist over reinstallation or
     upgrade of the packages concerned, even if subsequently the packages are
     named explicitly on a command line.  See pkg-query(8) for finding the
     autoremoval status of a package, and pkg-set(8) for modifying it.

     Where a package on the work list supplies a shared library, and that
     library has been updated, all packages requiring that shared library will
     also be added to the work list as reinstallation jobs.

     The work list is sorted into dependency order and pkg upgrade will
     present it to the user for approval before proceeding, unless overridden
     by the -y option or the ASSUME_ALWAYS_YES setting in pkg.conf.

     If the vulnerability database (vuln.xml) is available (see pkg-audit(8)),
     the summary will flag any packages with known vulnerabilities and display
     a warning with the count of affected packages.

     Packages are fetched from the repositories into the local package cache
     if they are not already present, or if the checksum of the cached package
     file differs from the one in the repository.  Packages may be downloaded
     from any of the repositories mentioned in pkg.conf(5) or in the files in
     /usr/local/etc/pkg/repo.  See pkg-repository(5) for details.

     Package repository catalogues will be automatically updated whenever pkg
     upgrade is run by a user ID with write access to the package database,
     unless disabled by the -U flag or setting REPO_AUTOUPDATE to NO in
     pkg.conf(5).

     Finally, the work list is executed in dependency order.  Package
     reinstall or update jobs are processed by removing the currently
     installed package and immediately installing the replacement.  New
     dependencies are processed as installation jobs as part of the work list.

OPTIONS

     The following options are supported by pkg upgrade:

     -C, --case-sensitive
                 Make the standard or the regular expression (-x) matching
                 against pkg-name case sensitive.  This is the default, unless
                 modified by setting CASE_SENSITIVE_MATCH to false in
                 pkg.conf.

     -F, --fetch-only
                 Do not perform installation of packages, merely fetch
                 packages that should be upgraded and detect possible
                 conflicts.

     -f, --force
                 Force the reinstallation or upgrade of the whole set of
                 packages.  To reinstall a single specific package, prefer
                 using pkg install -f instead.  See pkg-install(8).

     -g, --glob  Treat the package names as shell glob patterns.

     -I, --no-scripts
                 If any installation scripts (pre-install or post-install) or
                 deinstallation scripts (pre-deinstall or post-deinstall)
                 exist for a given package, do not execute them.

     -i, --case-insensitive
                 Make the standard or the regular expression (-x) matching
                 against pkg-name case insensitive.

     -n, --dry-run
                 Dry-run mode: show what packages have updates available, but
                 do not perform any upgrades.  Repository catalogues will be
                 updated as usual unless the -U option is also given.

     -q, --quiet
                 Force quiet output, except when -n is used, where a summary
                 of the work list is always displayed.

     -r reponame, --repository reponame
                 Install packages from only the named repository.  This option
                 can be specified multiple times to use several repositories.
                 Packages will be fetched from the named repositories only,
                 irrespective of the configured "enabled" status from
                 repo.conf.

     -U, --no-repo-update
                 Suppress the automatic update of the local copy of the
                 repository catalogue from remote.  Automatic repository
                 catalogue updates are only attempted when the effective UID
                 of the process has write access to the package database.
                 Otherwise they are silently ignored.

     -v, --vulnerable
                 Upgrade packages which are known to be vulnerable.  See
                 pkg-audit(8) for more details.

     -x, --regex
                 Treat the package names as regular expressions according to
                 the "modern" or "extended" syntax of re_format(7).

     -y, --yes   Assume yes when asked for confirmation before package
                 installation.

     --autoremove
                 After upgrading the requested packages, automatically remove
                 any orphaned packages that were installed as dependencies and
                 are no longer required.  This is equivalent to running
                 pkg-autoremove(8) after the upgrade.  Can also be enabled
                 permanently via the AUTOREMOVE option in pkg.conf(5).

     --script-no-exec
                 Do not execute the pre-install, post-install, pre-deinstall,
                 or post-deinstall scripts but still log the scripts in the
                 package database for future reference.  Unlike -I, which
                 prevents scripts from both running and being recorded,
                 --script-no-exec only suppresses execution.

EXAMPLES

     To upgrade base system packages from 15.0-RELEASE to 15.1-RELEASE using
     the FreeBSD-base repository:

           pkg -o VERSION_MINOR=1 upgrade -r FreeBSD-base

     This overrides the VERSION_MINOR variable used in repository URL
     expansion, allowing the repository URL to resolve to the 15.1 package
     set.  See pkg.conf(5) for details on variable expansion in repository
     configurations.

ENVIRONMENT

     The following environment variables affect the execution of pkg upgrade.
     See pkg.conf(5) for further description.

     DEFAULT_ALWAYS_YES

     ASSUME_ALWAYS_YES

     HANDLE_RC_SCRIPTS

     PKG_CACHEDIR

     PKG_DBDIR

     REPO_AUTOUPDATE

FILES

     See pkg.conf(5).

SEE ALSO

     pkg_checksum(3), pkg_create(3), pkg_printf(3), pkg_repo_create(3),
     pkg_repos(3), pkg-keywords(5), pkg-lua-script(5), pkg-repository(5),
     pkg-script(5), pkg-triggers(5), pkg.conf(5), pkg(8), pkg-add(8),
     pkg-alias(8), pkg-annotate(8), pkg-audit(8), pkg-autoremove(8),
     pkg-check(8), pkg-checksum(8), pkg-clean(8), pkg-config(8),
     pkg-create(8), pkg-delete(8), pkg-fetch(8), pkg-help(8), pkg-info(8),
     pkg-install(8), pkg-key(8), pkg-lock(8), pkg-plugins(8), pkg-query(8),
     pkg-register(8), pkg-repo(8), pkg-repositories(8), pkg-rquery(8),
     pkg-rwhich(8), pkg-search(8), pkg-set(8), pkg-shell(8), pkg-shlib(8),
     pkg-ssh(8), pkg-stats(8), pkg-triggers(8), pkg-unregister(8),
     pkg-update(8), pkg-updating(8), pkg-version(8), pkg-which(8)

FreeBSD 15.1-STABLE-HBSD         July 7, 2024                   PKG-UPGRADE(8)