auto-update-system [--sync-pkg-cache user@host] [--binary | --binary+reboot | --defaults | --defaults+reboot | --yes]
--sync-pkg-cache user@host Sync package cache from host --binary Binary packages and base only --binary+reboot Same as above + auto reboot --defaults All components that can be easily updated --defaults+reboot Same as above + auto reboot --yes Synonymous with --defaults+reboot
On BSD systems, auto-pkgsrc-setup ensures that the binary package repository and ports/pkgsrc tree are on the same branch. If they are not, auto-update-system offers to update the ports/pkgsrc tree accordingly.
On RHEL/CentOS, auto-update-system runs yum-complete-transaction before updates, as the system may frequently be left in an inconsistent state due to a previous failed update.
Binary packages can be pulled from another local system using the --sync-pkg-cache user@host option to reduce downloads from primary package servers. The option uses rsync over ssh. This both reduces needless Internet load and probably speeds up the update process significantly for systems with similar installed packages. Local network speeds may approach 100 MB/s for a typical gigabit LAN while downloads from primary servers probably won't exceed a few MB/s.
If the user@host spec is stored in $PREFIX/etc/auto-admin/pkg-cache-host, it will be automatically used for all future updates.
If no flags are provided, auto-update-system prompts the user before updating each component.
CAUTION: auto-update-system should not be run in parallel on many systems, as this will swamp the network and package servers with redundand downloads. Either run updates serially, using --sync-pkg-cache for all but the first system, or configure a package mirror or proxy server.
Following a successful update, the current time is stored in $PREFIX/etc/auto-admin/last-system-update. The auto-last-update command reads this file and reports the number of hourse since the last update.
Packages listed in $PREFIX/etc/auto-admin/critical packages (1 per line) must be available on the package server in order for updates to proceed automatically. If any package in this list is not available, the user is warned and offered the option to proceed anyway. Packages can be added to this list using auto-mark-package-critical(1). Package names are the same as those used in a package install command, minus any version information. This system protects against situations where a package is temporarily unavailable due to a regression. This is rare in most package managers, but does happen occasionally in the latest package repositories. Such issues are usually resolved within a few days, so the most common response to such a warning is to simply wait a day or so and try again. Using quarterly packages should eliminate any possibility of this happening.
Ports or pkgsrc packages listed as category/name (1 per line) $PREFIX/etc/auto-admin/install-from-source will be rebuilt and reinstalled from source following successful binary packages and port/pkgsrc tree updates. Ports/packages can be added to the list using auto-mark-install-from-source(1). This can be useful for updating ports/packages that cannot be redistributed in binary form for licesning reasons, work-in-progress ports/packages, and ports/packages with non-default build options such as non-portable optimizations to capitalize on AVX and the like.
This system should only be used if your installed packages and ports tree are well-synchronized, which is usually the case if you use auto-update-system for all your updates. If you use quarterly packages and ports/pkgsrc, there should be no issues at all, since only minor bug fixes are permitted to the quarterly branches of ports and pkgsrc, and API changes are all but forbidden. This system is also safe to use for latest/current ports/packages as long as package builds are done regularly. This is the case for FreeBSD ports on amd64, where changes to the ports tree are generally reflected in the official binary packages within a few days. However, on other architectures, official packages may not be updated frequently, so the ports tree may contain much newer versions of some software, including API differences that could break dependencies.
If $PREFIX/etc/auto-admin/auto-update-system-post-ports exists and is secure (owned by root/wheel and not writable to anyone else) it will be executed following successful updates of binary packages and the ports/pkgsrc tree. This should only be used as a last option for customizations that can't be performed by install-from-source.
$PREFIX/etc/auto-admin/pkg-cache-host $PREFIX/etc/auto-admin/last-system-update $PREFIX/etc/auto-admin/critical-packages $PREFIX/etc/auto-admin/install-from-source $PREFIX/etc/auto-admin/auto-update-system-post-ports