packagesbootstrap is a small utility which bulk downloads OpenBSD binary packages. The downloaded packages can then be installed en masse, minimising downtime. packagesbootstrap has a number of useful features:
- Requires only utilities found in base install of OpenBSD - can be run on a freshly installed machine.
- Can interpret the output of
pkg_infodirectly. If a list of packages is not specified, the output from
pkg_infoon the machine packagesbootstrap is being run on is used automatically.
- Downloads the latest version of a package.
- Understands package flavours.
- Asks the user what to do in the presence of multiple versions of the same package.
- Warns the user at the end of the download which packages could not be downloaded.
- Can download packages for
-stable. packagesbootstrap detects which version the user is running, but this can be overridden.
Running packagesbootstrapWhen you run packagesbootstrap, it goes to the specified FTP server and downloads the list of packages stored there. It then looks at the list of packages you wish to download, and attempts to find an appropriate match for each one on the FTP server. When multiple versions of the package exist (e.g. typically
autoconfhas several versions for download), packagesbootstrap will interactively ask you which version you wish to download. You may download more than one version.
Once matches have been found for packages, packagesbootstrap then downloads each package, one by one. Once it has downloaded all packages, it warns you of any packages you requested for which it was unable to find a match. Typically such packages are ones with restrictive licenses, which you will have to build manually from the ports system.
You can get a good idea of how packagesbootstrap works by looking at the screenshots of it in action.
Command-line optionspackagesbootstrap can be called as follows:
packagesbootstrap [<options>] [<packages list>]
<packages list>is either a list of package names, separated by newlines, or the output from the
<packages list>is not specified, the list of packages installed on current machine will be used. Other options are as follows:
-f <ftp server>
FTP server to download binary packages from. Please be considerate, and use a local mirror.
Default: Depends on OS installed
OS version number. e.g.
Default: The current machine architecture
Architecture to download packages for. e.g.
Directory to save packages to.
Do not prompt if multiple matches found. Automatically downloads all matches. This option makes packagesbootstrap completely non-interactive.
packagesbootstrap in useThere are various potential ways that packagesbootstrap could be used. I typically use it to minimise downtime when updating a server. Such uses tend to look as follows:
packagesbootstrap -f http://mirror.bytemark.co.uk/OpenBSD/snapshots/packages/amd64/ -d packages PKG_PATH=packages:http://mirror.bytemark.co.uk/OpenBSD/snapshots/packages/amd64/ sudo pkg_add -uiThis downloads new packages for everything that is installed on my machine, then uses pkg_add to upgrade everything. Note the
PKG_PATHfirst specifies the directory where the packages live, then the FTP mirror. This is because sometimes upgrading a package can install new dependencies. By default, the above incantation will use the locally downloaded packages (nearly all cases), using remote packages when necessary (which is rarely).
Downloadpackagesbootstrap is released under a BSD / MIT licence.
- Download packagesbootstrap 0.3 (18 February 2014) (7Kb)
- Download packagesbootstrap 0.2 (8 April 2007) (7Kb)
- Download packagesbootstrap 0.1 (9 June 2005) (7Kb)
Related toolsPart of packagesbootstrap's functionality can be achieved via
pkg_add -uinwith an appropriately set
PKG_CACHE. If you are using packagesbootstrap to install packages on more than one machine of the same architecture (where each machine currently has identical packages installed),
pkg_add -uinmight be for you. Otherwise packagesbootstrap might be more appropriate.