Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qbit/snap
OpenBSD upgrade tool (OpenBSD,Shell)
https://github.com/qbit/snap
openbsd snapshots
Last synced: 3 months ago
JSON representation
OpenBSD upgrade tool (OpenBSD,Shell)
- Host: GitHub
- URL: https://github.com/qbit/snap
- Owner: qbit
- License: isc
- Created: 2012-09-20T14:55:38.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2019-01-17T23:27:31.000Z (over 5 years ago)
- Last Synced: 2023-09-06T12:18:34.881Z (10 months ago)
- Topics: openbsd, snapshots
- Language: Shell
- Homepage:
- Size: 827 KB
- Stars: 91
- Watchers: 16
- Forks: 19
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-openbsd - snap, an OpenBSD upgrade tool
- awesome-openbsd - snap, an OpenBSD upgrade tool
- awesome-openbsd - snap, an OpenBSD upgrade tool
README
SNAP(8) - System Manager's Manual
# NAME
**snap** - snapshot upgrade tool
# SYNOPSIS
**snap**
\[**-bBcdDehiIkKmMnrRsSuUvWx**]
\[**-b** \[boot device]]
\[**-c** \[config\_file]]
\[**-D** \[destination]]
\[**-m** \[machine]]
\[**-M** \[mirror]]
\[**-V** \[version]]
\[**-s** \[pubkey]]# DESCRIPTION
**snap**
is a
ksh(1)
script designed to upgrade an
OpenBSD
machine to the latest snapshot available.
Upgrading from release to release is not supported.**snap**
checks the \`BUILDINFO\` file located on the remote mirror, and will
warn you if the snapshot is not newer than the currently running
version.By default
**snap**
verifies signatures for the set files it downloads.
This can be prevented by specifying the
**-S**
option, however, skipping verification is very much not recommended!The options are as follows:
**-D** *destination*
> Destination directory to place the \`.tgz\` files.
**-S**
> Skip signature verification.
> This is not recommended!**-c** *config\_file*
> Location of configuration file (default is
> */etc/snap.conf*
> or
> *$HOME/.snaprc*
> ).**-e**
> Extract sets into destination directory and exit.
> The destination directory can be overwritten by the
> **-D**
> option, or by setting the DST line in
> *config\_file*.**-d**
> Download sets to the destination directory, verify (
> **-S**
> prevents signature verification) and
> exit.
> By default the destination directory is set to
> */tmp/upgrade***-m** *machine*
> Use
> **machine**
> instead of what the \`machine\` command returns.**-V** *setversion*
> Use to specify a specific version of sets.
> This option will need to be used when there is a version jump, say from 6.0 to 6.1.**-r**
> Run sysmerge after extracting {x}sets.
> This option may cause issues if the newer snapshot introduces ABI changes.
> Not recommended.**-x**
> Do not extract x11 sets.
**-M** *mirror*
> Specify which mirror to use.
**-I** *sigfile*
> Verify integrity of the
> **snap**
> tool.
> If
> **sigfile**
> is omitted,
> **snap**
> will pull a copy of SHA256.sig from the GitHub page.**-s** *pubkey*
> Signify pub key to do verification with.
**-i**
> Run in interactive mode (has colors).
**-n**
> Force snap to install
> **bsd.mp**
> as
> */bsd***-k**
> Only install the kernels and exit.
**-B**
> Prevent
> **snap**
> from making a backup of the kernel files.**-u**
> Check for update to the
> **snap**
> script.**-U**
> Download and install the latest version of
> **snap**
> (will overwrite currently installed version).
> Signature verification is also done.**-b** *device*
> Tells
> **snap**
> which
> **device**
> to install bootstrap on.**-R**
> Reboot after running
> **snap****-h**
> Help.
# FILES
*$HOME/.last\_snap*
> Contains timestamp of the previous snapshot.
*/etc/snap.conf*
> Global configuration options.
> See
> *SNAPRC*
> for more information on these options.*$HOME/.snaprc*
> User specific configuration options.
# SNAPRC
**snap**
supports the following configuration options via
*/etc/snap.conf*
or
*$HOME/.snaprc*
file:**INTERACTIVE bool**
> If true,
> **snap**
> will operate as if
> **-i**
> was specified.
> Defaults to false.**DST directory**
> Tells
> **snap**
> where to download the snapshot sets and signature files.
> Defaults to
> */tmp/upgrade***EXTRACT\_ONLY bool**
> Tells
> **snap**
> to exit after extracting the sets.
> Defaults to false.**FTP\_OPTS string**
> Lets you overwrite the options passed to
> ftp(1).
> This can be handy if your mirror supports file continuation!
> Defaults to: " -V ".> See
> ftp(1)
> for options.**MERGE bool**
> Tells
> **snap**
> to merge files in
> */etc*
> using the
> sysmerge(8)
> utility.
> Defaults to false.**NO\_X11 bool**
> Tells
> **snap**
> to forgo download and extraction of xsets.
> Defaults to false.**REBOOT bool**
> Setting this to \`true\` will cause
> **snap**
> to reboot the system after successful extraction of sets.
> Defaults to false.**AFTER script**
> Specifies a script to be copied to
> */etc/rc.firsttime*.
> The script will then be executed upon successful reboot.
> Default is not set.**MIRROR string**
> Defaults to \`cdn.openbsd.org\`.
# EXAMPLES
## EXAMPLE USAGE
To upgrade to the latest snapshot:
$ doas snap
To upgrade to the latest snapshot using an explicit mirror region:
$ doas snap -M cdn.openbsd.org
To upgrade to a snapshot without updating xsets:
$ doas snap -x
## EXAMPLE SNAPRC
A typical
*~/.snaprc*
would look something like this:INTERACTIVE:true
MERGE:true
AFTER:/etc/after_snap
MIRROR:cdn.openbsd.org
FTP_OPTS:-C -V## EXAMPLE AFTER SCRIPT
Here is an \`AFTER\` script that makes sure we have the latest devices
in
*/dev*,
upgrades all the firmware currently installed and upgrades currently
installed packages:#!/bin/sh
(
cd /dev && sh MAKEDEV all
/usr/sbin/fw_update -v
/usr/sbin/pkg_add -uVm # -m is needed to see progress in this context
)# SIGNATURE VERIFICATION
**snap**
can be verified using the
**signify**
utility.## Public key
untrusted comment: github.com/qbit/snap public key
RWQVGN6sUjQQA5uYpANGLLKQMAERZ43otLePFSVqNFGGtf/qBez7G1WU## SIGNATURE URL
https://raw.githubusercontent.com/qbit/snap/master/SHA256.sig
After installing the above public key in
*/etc/signify/snap.pub*
and downloading the
*SHA256.sig*
file, you can verify
**snap**
by running one the following:Have snap download the
*SHA256.sig*
file and run verification:$ snap -I
Have snap verify a pre-downloaded
*SHA256.sig*
file:$ snap -I SHA256.sig
Manual verification with the
**signify**
utility:$ signify -C -p /etc/signify/snap.pub -x SHA256.sig snap
# SEE ALSO
ftp(1),
signify(1),
installboot(8),
rc(8),
release(8),
sysmerge(8)# HISTORY
The first version of
**snap**
was released in September of 2012.# AUTHORS
**snap**
was written by
Aaron Bieber <[[email protected]](mailto:[email protected])>.OpenBSD 6.4 - September 19, 2012