APT-CLONE(8)                                                     APT-CLONE(8)

NAME
       apt-clone  -  ZFS  integrated APT package handling utility -- command-
       line interface

SYNOPSIS
       apt-clone [-hltsyv] [-a=clone-name] [-r=clone-name]
                 [-b=bootmenu-count] [-k=clone-count] [-x=http-proxy]
                 apt-cmd pkg1 pkg2...

DESCRIPTION
       apt-clone is the command-line tool for handling packages, and  may  be
       considered  the  user's "front-end" to the apt-get(8). It manages GRUB
       menu and ZFS 'syspool' filesystems. Two upgrade methods supported:  1)
       safe  upgrades via cloning a currently active filesystem and later ch-
       rooting into it to  perform  actual  upgrade  operation;  2)  in-place
       (live)  upgrades  by checkpointing a currently active filesystem prior
       to any upgrade modifications done by apt-get utility. The live upgrad-
       ing,  as the name implies, happens in-place on the running system, and
       without reboot. Unless the safe -s option is explicitly specified, the
       system  will automatically detect whether the upgrade will require re-
       boot, and if so, it will clone the active filesystem and  safely  per-
       form  the  software upgrade within this ZFS clone. A user then has two
       options: reboot into the new  (upgraded)  system  folder  or  continue
       working  (and possibly activate the upgrade and reboot into it later).

       Nexenta clone name format is 'syspool/rootfs-nmu-###',  where  ###  is
       zeroes  started  decimal  number (i.e. 'slot') precaculated during up-
       grade.

       Safe upgrade is done in specially prepared chroot environment  and  do
       not disturbs running services. Upgrade checkpointing is ZFS clone cre-
       ated prior to upgrade modifications to the active root filesystem.

       The default behavior (i.e. when no  command  line  options  given)  of
       apt-clone utility is this: 1) detect set of packages which needs to be
       upgraded; 2) verify if dpkg(8) or apt-get(8) needs to be upgraded, and
       upgrade  them  unconditionally;  3)  calculate free space which is re-
       quired by the upgrade and compare with what is available in  ZFS  pool
       named  'syspool'; 4) verify if at least one of the core packages (i.e.
       'sunwcakr', 'sunwkvm', 'sunwcsr', 'sunwckr',  'sunwcnetr',  'sunwcsu',
       'sunwcsd'  or 'sunwcsl') requires upgrade, and if so, than enable safe
       upgrade option by using specially prepared chroot environment. See  -s
       option  for  details;  5) if no core packages requires upgrade, do up-
       grade checkpointing which is simply ZFS clone created prior to upgrade
       modifications done by apt-get(8) utility; 6) run apt-get(8) for all or
       only provided set of packages.

       If the -h, or --help option is given, other options will be disregard-
       ed.

OPTIONS
       apt-cmd
              One of the apt-get commands: upgrade, dist-upgrade, install,
              remove or autoremove.

       -l     List  upgraded  clones; ZFS clones for system pool 'syspool' as
              they listed in GRUB menu.

       -i     Initiate application rollback checkpoint; ZFS clone which could
              be used to rollback folowing modifications made by human or
              application.

       -a clone-name
              Activate given ZFS clone name; GRUB menu default  will  set  to
              given clone name.

       -r clone-name
              Rollback/Destroy  upgrade  changes  for  ZFS  clone  name; only
              non-active and non-default ZFS clone could be rolled back.  Up-
              grade  rollback  means  destroy  of clone which is no longer in
              use, such as failed upgrade or custom checkpoint.

       -b bootmenu-count
              Maximum number of GRUB's boot menu entries to  keep;  retention
              policy, default is 16.

       -k clone-count
              Maximum  number  of cloned ZFS root filesystems to keep; reten-
              tion policy, default is 32.

       -x http-proxy
              Remote repository HTTP proxy server; See  apt-get(8)  for  more
              details.

       -t     Dry-run.  Perform simulated upgrade; do not change data on sys-
              tem volume. Upgrade checkpoint will not be created.

       -s     Safe upgrade in cloned ZFS root filesystem; using chroot  envi-
              ronment, do not disturbs currently running system and services,
              requires reboot, could be used to force upgrade in chroot envi-
              ronment for normal (i.e. non-core) packages. The default behav-
              ior is to create checkpoint for non-core packages or  use  safe
              upgrade option for core packages. It is not possible to disable
              safe upgrade if one of core packages detected in calculated de-
              pendencies.

       -y     Do not ask any questions, assume Yes to all questions.

       -v     Verbose output.

       -h     Show a short usage summary.

FILES
       /etc/apt/sources.list
              Locations to fetch packages from.

       /boot/grub/menu.lst
              GRUB configuration file.

SEE ALSO
       apt-get(8),    apt-cache(8),    apt-cdrom(8),   dpkg(8),   dselect(8),
       sources.list(5), apt.conf(5), apt-config(8),  apt-secure(8),  The  APT
       User's  guide  in /usr/share/doc/apt-doc/, apt_preferences(5), the APT
       Howto.

DIAGNOSTICS
       apt-clone returns '0' on normal operation, decimal '1' on error.

AUTHOR
       APT was written by the APT team  <apt@packages.debian.org>.  apt-clone
       utility  written  and maintained by Nexenta team <nexenta-devel@nexen-
       ta.org>.

AUTHORS
       Jason Gunthorpe, APT team.

Linux                           3 January 2008                   APT-CLONE(8)