MirBSD manpage: pkg_upgrade(1)

PKG_UPGRADE(1)               BSD Reference Manual               PKG_UPGRADE(1)


     pkg_upgrade - upgrade an installed package in-place


     pkg_upgrade [-afqsv] pkgname.cgz


     The pkg_upgrade command is used to upgrade an installed package in-place.
     If no other version of the package is installed and -a is not given,
     pkg_upgrade simply calls pkg_add(1). Otherwise, the installed package is
     deleted and the new version is added, keeping dependencies intact.

     The following command line options are supported:

     -a      Ignore packages for which no older version is installed (auto).

     -f      Force upgrading the package: Also upgrade if the exact same ver-
             sion is already installed, useful if you rebuilt a package from
             source. If a conflicting package other than an older version of
             the same package is installed, remove it.

     -q      Don't print less important messages (quiet).

     -s      Enable special treatment for shared libraries, see below

     -v      Pass the -v flag to subprocesses for more verbose operation.


     pkg_upgrade has a special mode for upgrading shared library packages.
     Consider the following situation: You have installed a package foo that
     contains libfoo.so.1.0. Package bar is also installed and contains a
     binary that depends on this version of libfoo. Now you upgrade the foo
     package, the new version contains libfoo.so.2.0 instead. The other binary
     will no longer run.

     For this reason, systems like Debian split their library packages in two:
     the library itself and a "developer" package containing headers and so
     on. Instead, pkg_upgrade creates a "stub package" from the installed
     package. Basically, the installed package is split in two. The old li-
     braries are kept as a package named stub-pkgname while the rest is delet-
     ed and replaced by the new version.

     In the general case, this should work but you may still run into situa-
     tions where you will need to rebuild dependent packages from source. In
     any case, you can delete unused stub packages after you have rebuilt
     dependent packages.


     pkg_add(1), pkg_create(1), pkg_delete(1), ports(7)


     Benny Siegert <bsiegert@mirbsd.org> came up with the idea for
     pkg_upgrade, wrote the first version and this manual page.
     Thorsten Glaser <tg@mirbsd.org> improved option handling and overall


     pkg_upgrade can easily render other packages unusable if you install a
     new version of a shared library while the other package still uses the
     old one. Use the -s switch to prevent this situation.

     Shared library support needs much work.

MirBSD #10-current            September 4, 2020                              1

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.