Installing Tarsnap from source

At the present time, pre-built binaries are not available for Tarsnap — it must be compiled from the source code.

  1. Download the source tarball and signed SHA256 hash file (see below for links to these files for the latest version of Tarsnap).
  2. Verify that the files have not been tampered with (this step may be skipped if you're not worried about security):
    • Verify the GPG signature on the SHA256 hash file using GnuPG and the Tarsnap code signing GPG key
      Older versions are signed with older keys
      $ gpg --decrypt tarsnap-sigs-
      SHA256 (tarsnap-autoconf- = a2909e01e2f983179d63ef2094c42102c92c716032864e66ef25ae341ea28690
      gpg: Signature made Fri Aug 21 08:59:42 2015 PDT using RSA key ID 46B64BEB
      gpg: Good signature from "Tarsnap source code signing key (Colin Percival) <>"
    • Verify that the SHA256 hash of the tarball matches the value in the signed SHA256 hash file (on Linux systems, you may need to use the sha256sum command, and on OS X you may need to use shasum -a 256 instead of sha256):
      $ sha256 tarsnap-autoconf-
      SHA256 (tarsnap-autoconf- = a2909e01e2f983179d63ef2094c42102c92c716032864e66ef25ae341ea28690
  3. Make sure you have the necessary package dependencies installed: A C compiler (gcc or clang), make, system header files, OpenSSL (including header files), zlib (including header files), and on Linux, the ext2fs/ext2_fs.h header (which is NOT the same as the linux/ext2_fs.h header file).
    On most UNIX systems all the necessary packages will already be present, but on Linux they may need to be installed manually:
    • On Debian, Ubuntu, and related distributions, make sure the libssl-dev, zlib1g-dev, and e2fslibs-dev packages are installed.
    • On RedHat, SuSE, Amazon Linux, and related distributions, make sure the glibc-devel, openssl-devel, zlib-devel, and e2fsprogs-devel packages are installed.
    • If you run another flavour of Linux, you can probably figure out which packages you need, but please contact me so I can update this list.
  4. Extract the tarball and "cd" into that directory.
  5. Run ./configure to configure Tarsnap for your system.
  6. If the configure script complains about OpenSSL, zlib, or ext2_fs.h not being present, you didn't install the right dependent packages. Make sure you got the "development" versions (which have the header files Tarsnap needs) and not just the "library" versions.
  7. Run make all install clean to build and install Tarsnap.

Latest Tarsnap release

Tarsnap (August 20, 2015)


Changes since version 1.0.35:

  • A theoretically exploitable one-byte buffer overflow when archiving objects with long path names is fixed.
  • A vulnerability which allowed a corrupt archive to cause tarsnap to allocate a large amount of memory upon listing archives or reading the corrupt archive is fixed.
  • Tarsnap no longer crashes if its first DNS lookup fails.
  • Tarsnap no longer exits with "Callbacks uninitialized" when running on a dual-stack network if the first IP stack it attempts fails to connect.
  • tarsnap -c --dry-run can now run without a keyfile, allowing users to predict how much Tarsnap will cost before signing up.
  • Tarsnap now includes bash completion scripts.
  • Tarsnap now automatically detects and uses AESNI and SSE2 cpu features.

Changes since version 1.0.36:

  • Tarsnap now works around an OS X standards-compliance bug which was making tarsnap fail to build.

Download older Tarsnap releases...