.. -*- coding: utf-8; indent-tabs-mode: nil; -*-

ftjail-freebsd-update
=====================

.. program:: ftjail freebsd-update


Synopsis
--------

**ftjail freebsd-update** [**-k**] [**-o** `old-origin`] [[**-R** `dataset@snapname`]...] `directory` `new-origin` [`etcupdate-tarball`]


Description
-----------

A :manpage:`freebsd-update(8)` for a Thin Jail.

Make the ZFS dataset mounted at `directory` a read-only clone of `new-origin`.

If `etcupdate-tarball` is given also call :manpage:`etcupdate(8)` on
the fully re-mounted directory tree that is rooted at `directory`
using `etcupdate-tarball` as the new "current".

See also :manpage:`ftjail-check-freebsd-update(8)` for a tool that
tries to thoroughly check the preconditions to run this tool successfully.


Options
-------

.. option:: -R <dataset@snapname>

   Create ZFS snapshots for `dataset` and all its children before
   updating.

   The snapshots may not exist already.

   Can be given more than once.

.. option:: -k

   Keep all temporary files.

   .. note:: On unexpected errors temp files are automatically kept.

.. option:: -o <old-origin>

   In addition to check that `directory` is a ZFS clone also check that
   its origin is equal to `old-origin`.

   Note that a check that `directory` is a ZFS clone with some origin
   is done by default.


Environment
-----------

All environment variables that affect :command:`zfs` are effective also.


Files
-----

A unique temporary directory is created within :file:`/var/tmp`. All
temporary files are created within this directory.


See Also
--------

:manpage:`ftjail(8)`, :manpage:`ftjail-check-freebsd-update(8)`,
:manpage:`freebsd-update(8)`, :manpage:`etcupdate(8)`
