Hello community,
here is the log from the commit of package transactional-update for
openSUSE:Factory checked in at 2018-05-16 11:41:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transactional-update (Old)
and /work/SRC/openSUSE:Factory/.transactional-update.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transactional-update"
Wed May 16 11:41:58 2018 rev:29 rq:607522 version:2.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/transactional-update/transactional-update.changes
2018-05-03 12:33:12.342520493 +0200
+++
/work/SRC/openSUSE:Factory/.transactional-update.new/transactional-update.changes
2018-05-16 11:43:50.359394645 +0200
@@ -1,0 +2,13 @@
+Mon May 14 16:16:08 UTC 2018 - [email protected]
+
+- Update to version 2.3
+ - Reformat help text / synopsis
+ - More detailled output (use --quiet for less output)
+ - Log all error messages into log file
+ - Avoid potential lock file race condition on self update
+ - Accept package names with whitespace
+ - Don't wait for user input during self-update
+ - Fix broken error message output when creating new snapshot without reboot
+ - Fix erroneous mounting of stale grub mounts
+
+-------------------------------------------------------------------
Old:
----
transactional-update-2.2.tar.bz2
New:
----
transactional-update-2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ transactional-update.spec ++++++
--- /var/tmp/diff_new_pack.fm9lBL/_old 2018-05-16 11:43:50.991371641 +0200
+++ /var/tmp/diff_new_pack.fm9lBL/_new 2018-05-16 11:43:50.995371496 +0200
@@ -17,7 +17,7 @@
Name: transactional-update
-Version: 2.2
+Version: 2.3
Release: 0
Summary: Transactional Updates with btrfs and snapshots
License: GPL-2.0-or-later
++++++ transactional-update-2.2.tar.bz2 -> transactional-update-2.3.tar.bz2
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/transactional-update-2.2/NEWS
new/transactional-update-2.3/NEWS
--- old/transactional-update-2.2/NEWS 2018-05-02 10:30:45.000000000 +0200
+++ new/transactional-update-2.3/NEWS 2018-05-14 18:12:56.000000000 +0200
@@ -2,6 +2,16 @@
Copyright (C) 2016, 2017, 2018 Thorsten Kukuk
+Version 2.3
+* Reformat help text / synopsis
+* More detailled output (use --quiet for less output)
+* Log all error messages into log file
+* Avoid potential lock file race condition on self update
+* Accept package names with whitespace
+* Don't wait for user input during self-update
+* Fix broken error message output when creating new snapshot without reboot
+* Fix erroneous mounting of stale grub mounts
+
Version 2.2
* Fix security issue in self update
* Create dirs in /var more reliably by sorting the list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/transactional-update-2.2/configure
new/transactional-update-2.3/configure
--- old/transactional-update-2.2/configure 2018-05-02 10:37:54.000000000
+0200
+++ new/transactional-update-2.3/configure 2018-05-14 18:14:16.000000000
+0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for transactional-update 2.2.
+# Generated by GNU Autoconf 2.69 for transactional-update 2.3.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -576,8 +576,8 @@
# Identity of this package.
PACKAGE_NAME='transactional-update'
PACKAGE_TARNAME='transactional-update'
-PACKAGE_VERSION='2.2'
-PACKAGE_STRING='transactional-update 2.2'
+PACKAGE_VERSION='2.3'
+PACKAGE_STRING='transactional-update 2.3'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1261,7 +1261,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures transactional-update 2.2 to adapt to many kinds of
systems.
+\`configure' configures transactional-update 2.3 to adapt to many kinds of
systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1328,7 +1328,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of transactional-update 2.2:";;
+ short | recursive ) echo "Configuration of transactional-update 2.3:";;
esac
cat <<\_ACEOF
@@ -1438,7 +1438,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-transactional-update configure 2.2
+transactional-update configure 2.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1531,7 +1531,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by transactional-update $as_me 2.2, which was
+It was created by transactional-update $as_me 2.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2394,7 +2394,7 @@
# Define the identity of the package.
PACKAGE='transactional-update'
- VERSION='2.2'
+ VERSION='2.3'
cat >>confdefs.h <<_ACEOF
@@ -5171,7 +5171,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by transactional-update $as_me 2.2, which was
+This file was extended by transactional-update $as_me 2.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5228,7 +5228,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //;
s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-transactional-update config.status 2.2
+transactional-update config.status 2.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/transactional-update-2.2/configure.ac
new/transactional-update-2.3/configure.ac
--- old/transactional-update-2.2/configure.ac 2018-05-02 10:31:13.000000000
+0200
+++ new/transactional-update-2.3/configure.ac 2018-05-14 18:13:05.000000000
+0200
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(transactional-update, 2.2)
+AC_INIT(transactional-update, 2.3)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([sbin/transactional-update.in])
AC_PREFIX_DEFAULT(/usr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/doc/transactional-update.xml
new/transactional-update-2.3/doc/transactional-update.xml
--- old/transactional-update-2.2/doc/transactional-update.xml 2018-04-30
13:48:03.000000000 +0200
+++ new/transactional-update-2.3/doc/transactional-update.xml 2018-05-04
13:45:50.000000000 +0200
@@ -10,11 +10,6 @@
<surname>Kukuk</surname>
<email>[email protected]</email>
</author>
- <author>
- <firstname>Ignaz</firstname>
- <surname>Forster</surname>
- <email>[email protected]</email>
- </author>
</authorgroup>
<releaseinfo>Version 0.1, 15. December 2017</releaseinfo>
<abstract>
@@ -34,21 +29,21 @@
<emphasis remap='B'>transactional-update</emphasis>
is an application that allows to apply intrusive updates to a running
system in an <emphasis>atomic</emphasis> way without influencing the
- running system, taking the system down for a longer period or blocking
- the boot process. It is not a package manager - while implemented for
+ running system, taking the system down for a longer period or blocks
+ the boot process. It is not a package manager, while implemented for
zypper with RPMs, it can be changed to use other package managers
- and package formats. The idea and reason for this is being able to
- continue using your existing packages and tool chain to deliver
+ and package formats. The idea and reason for this is, that you can
+ continue to use your existing packages and tool chain to deliver
and apply updates.
</para>
<para>
- To achieve this, <emphasis remap='B'>transactional-update</emphasis>
- every update will create a new snapshot with
+ To archive this, <emphasis remap='B'>transactional-update</emphasis>
+ creates for every update a new snapshot with
<emphasis>btrfs</emphasis> and updates this to the latest version of
the product. Since snapshots contain only the difference between two
- versions this is very space efficient as updates are usually very
- small. This also means there is no limit to two bootable root
- partitions as there can be any number of parallel snapshots.
+ versions and thus are mostly very small, this is very space efficient.
+ Which also means you can have more parallel installations than just
+ two bootable root partitions.
</para>
</section>
@@ -86,7 +81,7 @@
<para>
if the upgrade fails or if the newer software
version is not compatible with your infrastructure, you can
- quickly restore the situation as it was before the upgrade.
+ quickly restore the situation as it was before the upgrade.
</para>
</listitem>
</itemizedlist>
@@ -335,7 +330,7 @@
</chapter>
<chapter id="tu-setup">
- <title>Setup of system</title>
+ <title> Setup of system </title>
<para>
Read-only root filesystem or Read-Write filesystem? Requirements for
RPMs, what is allowed and what not. Config files in /etc with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/transactional-update-2.2/man/transactional-update.8
new/transactional-update-2.3/man/transactional-update.8
--- old/transactional-update-2.2/man/transactional-update.8 2018-04-17
16:40:32.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.8 2018-05-09
16:49:05.000000000 +0200
@@ -1,13 +1,13 @@
'\" t
.\" Title: transactional-update
.\" Author: Thorsten Kukuk <[email protected]>
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 04/17/2018
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 05/09/2018
.\" Manual: transactional-update
.\" Source: transactional-update
.\" Language: English
.\"
-.TH "TRANSACTIONAL\-UPDAT" "8" "04/17/2018" "transactional-update"
"transactional-update"
+.TH "TRANSACTIONAL\-UPDAT" "8" "05/09/2018" "transactional-update"
"transactional-update"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -31,15 +31,9 @@
transactional-update, transactional-update.service, transactional-update.timer
\- Apply updates to the system in an atomic way via transactional updates\&.
.SH "SYNOPSIS"
.HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [\-\-help] [\-\-version]
+\fBtransactional\-update\fR [\fIoptions\fR...] [\fIgeneral\-command\fR...]
[\fIpackage\-command\fR\ [\fIcommand\-argument\fR...]]
.HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [\-\-no\-selfupdate] [cleanup] [up | dup | patch |
bootloader | initrd] [kdump] [reboot]
-.HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [\-\-no\-selfupdate] [cleanup] [reboot] pkg
install | remove | update <RPM>\&.\&.\&.<RPM>
-.HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR [\-\-no\-selfupdate] migration
-.HP \w'\fBtransactional\-update\fR\ 'u
-\fBtransactional\-update\fR rollback [number]
+\fBtransactional\-update\fR [\fIoptions\fR] \fIindividual\-command\fR
.PP
transactional\-update\&.service
.PP
@@ -62,7 +56,11 @@
/etc/systemd/system/transactional\-update\&.timer\&.d/local\&.conf\&. See
\fBsystemd.unit\fR(5)
for more informations\&.
-.SH "OPTIONS"
+.SH "COMMANDS"
+.SS "General Commands"
+.PP
+General commands can be used together in any combination; additionally they
can be extended with one
+\fBPackage Command\fR\&.
.PP
\fBcleanup\fR
.RS 4
@@ -72,13 +70,6 @@
\fBsnapper\fR(8)\&.
.RE
.PP
-\fBdup\fR
-.RS 4
-If new updates are available, a new snapshot is created and
-\fBzypper dup \-\-no\-allow\-vendor\-change\fR
-is used to update the snapshot\&. Afterwards, the snapshot is activated and
will be used as the new root filesystem during next boot\&.
-.RE
-.PP
\fBgrub\&.cfg\fR
.RS 4
\fBgrub2-mkconfig\fR(8)
@@ -102,9 +93,49 @@
A new initrd for kdump is created in a snapshot\&.
.RE
.PP
-\fBmigration\fR
+\fBreboot\fR
.RS 4
-On systems which are registered against the SUSE Customer Center (SCC) or SMT,
a migration to a new version of the installed products can be made with this
option\&. This is done in an interactive mode\&.
+If a new snapshot with updates was created, the system should be rebooted\&.
This option will trigger the necessary reboot\&. If the
+\fBrebootmgrd\fR(8)
+is running,
+\fBtransactional\-update\fR
+will tell the daemon to reboot the system according to the configured
policies\&. Else
+\fBsystemctl reboot\fR
+is called\&.
+.RE
+.PP
+\fBshell\fR
+.RS 4
+After all actions are done, before the snapshot with the changes is unmounted
and switched to read\-only, a shell is started in the new snapshot as chroot
environment for testing and debugging\&.
+.RE
+.SS "Package Commands"
+.PP
+Only one package command can be used at the same time\&. Note that when
combining non\-interactive package commands with
+\fBGeneral Commands\fR
+those will only be executed if the package command updated any packages\&.
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBNon-interactive Package Commands\fR
+.RS 4
+.PP
+Non\-interactive Package Commands will require no user interaction\&.
+.PP
+\fBdup\fR
+.RS 4
+If new updates are available, a new snapshot is created and
+\fBzypper dup \-\-no\-allow\-vendor\-change\fR
+is used to update the snapshot\&. Afterwards, the snapshot is activated and
will be used as the new root filesystem during next boot\&.
+.RE
+.PP
+\fBup\fR
+.RS 4
+If new updates are available, a new snapshot is created and
+\fBzypper up\fR
+is used to update the snapshot\&. Afterwards, the snapshot is activated and
will be used as the new root filesystem during next boot\&.
.RE
.PP
\fBpatch\fR
@@ -113,6 +144,22 @@
\fBzypper patch\fR
is used to update the snapshot\&. Afterwards, the snapshot is activated and
will be used as the new root filesystem during next boot\&.
.RE
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBInteractive Package Commands\fR
+.RS 4
+.PP
+Interactive Package Commands may require user interaction to solve conflicts
or make decisions\&.
+.PP
+\fBmigration\fR
+.RS 4
+On systems which are registered against the SUSE Customer Center (SCC) or SMT,
a migration to a new version of the installed products can be made with this
option\&. This is done in an interactive mode\&.
+.RE
.PP
\fBpkg install\fR \fI<RPM> \&.\&.\&. <RPM>\fR
.RS 4
@@ -128,42 +175,28 @@
.RS 4
Packages installed as RPMs can be updated\&.
.RE
-.PP
-\fBreboot\fR
-.RS 4
-If a new snapshot with updates was created, the system should be rebooted\&.
This option will trigger the necessary reboot\&. If the
-\fBrebootmgrd\fR(8)
-is running,
-\fBtransactional\-update\fR
-will tell the daemon to reboot the system according to the configured
policies\&. Else
-\fBsystemctl reboot\fR
-is called\&.
.RE
+.SS "Individual Commands"
.PP
\fBrollback\fR [\fInumber\fR]
.RS 4
Sets the default subvolume\&. On systems with read\-write filesystem,
-\fBsnapper\fR(8)\fB rollback\fR
+\fBsnapper\fR(8)
+\fB rollback\fR
is called\&. On a read\-only filesystem, without argument, the current system
is made the new default root filesystem\&. Else the snapshot with
\fBnumber\fR
is made the new default root filesystem\&. On a read\-only filesystem, no
additional snapshots are created\&.
.RE
+.SH "OPTIONS"
.PP
-\fBshell\fR
-.RS 4
-After all actions are done, before the snapshot with the changes is unmounted
and switched to read\-only, a shell is started in the new snapshot as chroot
environment for testing and debugging\&.
-.RE
-.PP
-\fBup\fR
+\fB\-\-no\-selfupdate\fR
.RS 4
-If new updates are available, a new snapshot is created and
-\fBzypper up\fR
-is used to update the snapshot\&. Afterwards, the snapshot is activated and
will be used as the new root filesystem during next boot\&.
+Skip checking for newer transactional\-update versions\&.
.RE
.PP
-\fB\-\-no\-selfupdate\fR
+\fB\-\-quiet\fR
.RS 4
-Skip checking for newer transactional\-update versions\&.
+Don\*(Aqt print warnings and informational messages to stdout\&.
.RE
.PP
\fB\-\-help\fR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.8.html
new/transactional-update-2.3/man/transactional-update.8.html
--- old/transactional-update-2.2/man/transactional-update.8.html
2018-04-17 16:40:32.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.8.html
2018-05-09 16:49:06.000000000 +0200
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update</title><meta name="generator"
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
+<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update</title><meta name="generator"
content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
@@ -15,8 +15,10 @@
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
- </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
1.28</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.8"></a><div class="titlepage"></div><div
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update,
transactional-update.service, transactional-update.timer — Apply updates to the
system in an atomic way via transactional
- updates.</p></div><div class="refsynopsisdiv"><a
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--help] [--version]</p></div><div
class="cmdsynopsis"><p><code class="command">transactional-update</code>
[--no-selfupdate] [cleanup] [ up | dup | patch | bootloader |
initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--no-selfupdate] [cleanup]
[reboot] pkg install | remove | update <RPM>...<RPM>
</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--no-selfupdate] migration
</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> rollback
[number]</p></div><p>transactional-update.service</p><p>transactional-update.timer</p></div><div
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a
class="headerlink" title="Permalink to this headline"
href="#DESCRIPTION">¶</a></h2><p><span
class="command"><strong>transactional-update</strong></span> updates the system
+ </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
2.2</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.8"></a><div class="titlepage"></div><div
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update,
transactional-update.service, transactional-update.timer — Apply updates to the
system in an atomic way via transactional
+ updates.</p></div><div class="refsynopsisdiv"><a
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [<em
class="replaceable"><code>options</code></em>...] [<em
class="replaceable"><code>general-command</code></em>...] [<em
class="replaceable"><code>package-command</code></em>
+ [<em class="replaceable"><code>command-argument</code></em>...]
+ ]</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [<em
class="replaceable"><code>options</code></em>] <em
class="replaceable"><code>individual-command</code></em>
</p></div><p>transactional-update.service</p><p>transactional-update.timer</p></div><div
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a
class="headerlink" title="Permalink to this headline"
href="#DESCRIPTION">¶</a></h2><p><span
class="command"><strong>transactional-update</strong></span> updates the system
in a transactional way, which means: it is atomic, so either the patches are
fully applied or nothing is changed. The update does not influence your
running system and it can be rolled back. To activate the changes, the system
@@ -36,18 +38,16 @@
/etc/systemd/system/transactional-update.timer.d/local.conf. See
<a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html"><span
class="citerefentry"><span
class="refentrytitle">systemd.unit</span>(5)</span></a>
for more informations.
-</p></div><div class="refsect1"><a name="options"></a><h2
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline"
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl
class="variablelist"><dt id="cleanup"><span class="term"><code
class="option">cleanup</code></span><a class="headerlink" title="Permalink to
this term" href="#cleanup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>If the current root filesystem is
identical to the active root
+</p></div><div class="refsect1"><a name="commands"></a><h2
id="COMMANDS">COMMANDS<a class="headerlink" title="Permalink to this headline"
href="#COMMANDS">¶</a></h2><div class="refsect2"><a
name="general_commands"></a><h3 id="General Commands">General Commands<a
class="headerlink" title="Permalink to this headline"
href="#General%20Commands">¶</a></h3><p>
+ General commands can be used together in any combination; additionally
+ they can be extended with one <code class="option">Package Command</code>.
+</p><div class="variablelist"><dl class="variablelist"><dt id="cleanup"><span
class="term"><code class="option">cleanup</code></span><a class="headerlink"
title="Permalink to this term" href="#cleanup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>If the current root filesystem is
identical to the active root
filesystem (means after a reboot, before
<span class="command"><strong>transactional-update</strong></span>
creates a new snapshot with
updates), all old snapshots without a cleanup algorithm get a cleanup
algorithm set. This is to make sure, that old snapshots will be deleted
by snapper. See the section about cleanup algorithms in
<a href="http://snapper.io/manpages/snapper.html"><span
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
- </p></dd><dt id="dup"><span class="term"><code
class="option">dup</code></span><a class="headerlink" title="Permalink to this
term" href="#dup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper dup
--no-allow-vendor-change</strong></span> is used to
- update the snapshot. Afterwards, the snapshot is activated and will be
- used as the new root filesystem during next boot.
</p></dd><dt id="grub.cfg"><span class="term"><code
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to
this term" href="#grub.cfg">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
<a href="https://www.linux.org/docs/man8/grub2-mkconfig.html"><span
class="citerefentry"><span
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
is called to create a new /boot/grub2/grub.cfg
@@ -59,15 +59,46 @@
A new initrd is created in a snapshot.
</p></dd><dt id="kdump"><span class="term"><code
class="option">kdump</code></span><a class="headerlink" title="Permalink to
this term" href="#kdump">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
A new initrd for kdump is created in a snapshot.
- </p></dd><dt id="migration"><span class="term"><code
class="option">migration</code></span><a class="headerlink" title="Permalink to
this term" href="#migration">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- On systems which are registered against the SUSE Customer Center (SCC)
- or SMT, a migration to a new version of the installed products can be
- made with this option. This is done in an interactive mode.
+ </p></dd><dt id="reboot"><span class="term"><code
class="option">reboot</code></span><a class="headerlink" title="Permalink to
this term" href="#reboot">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If a new snapshot with updates was created, the system should be
+ rebooted. This option will trigger the necessary reboot. If the
+ <a href="rebootmgrd.8.html"><span class="citerefentry"><span
class="refentrytitle">rebootmgrd</span>(8)</span></a>
+ is running, <span
class="command"><strong>transactional-update</strong></span> will tell the
+ daemon to reboot the system according to the configured policies. Else
+ <span class="command"><strong>systemctl reboot</strong></span> is
called.
+ </p></dd><dt id="shell"><span class="term"><code
class="option">shell</code></span><a class="headerlink" title="Permalink to
this term" href="#shell">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ After all actions are done, before the snapshot with the changes is
+ unmounted and switched to read-only, a shell is started in the new
+ snapshot as chroot environment for testing and debugging.
+ </p></dd></dl></div></div><div class="refsect2"><a
name="pkg_commands"></a><h3 id="Package Commands">Package Commands<a
class="headerlink" title="Permalink to this headline"
href="#Package%20Commands">¶</a></h3><p>
+ Only one package command can be used at the same time. Note that when
+ combining non-interactive package commands with
+ <code class="option">General Commands</code> those will only be executed if
the package
+ command updated any packages.
+</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive
Package Commands</h4><p>
+ Non-interactive Package Commands will require no user interaction.
+</p><div class="variablelist"><dl class="variablelist"><dt id="dup"><span
class="term"><code class="option">dup</code></span><a class="headerlink"
title="Permalink to this term" href="#dup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If new updates are available, a new snapshot is created and
+ <span class="command"><strong>zypper dup
--no-allow-vendor-change</strong></span> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
+ </p></dd><dt id="up"><span class="term"><code
class="option">up</code></span><a class="headerlink" title="Permalink to this
term" href="#up">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If new updates are available, a new snapshot is created and
+ <span class="command"><strong>zypper up</strong></span> is used to
update the snapshot.
+ Afterwards, the snapshot is activated and will be used as the new root
+ filesystem during next boot.
</p></dd><dt id="patch"><span class="term"><code
class="option">patch</code></span><a class="headerlink" title="Permalink to
this term" href="#patch">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
If new updates are available, a new snapshot is created and
<span class="command"><strong>zypper patch</strong></span> is used to
update the snapshot.
Afterwards, the snapshot is activated and will be used as the new root
filesystem during next boot.
+ </p></dd></dl></div></div><div class="refsect3"><a
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><p>
+ Interactive Package Commands may require user interaction to solve conflicts
+ or make decisions.
+</p><div class="variablelist"><dl class="variablelist"><dt
id="migration"><span class="term"><code
class="option">migration</code></span><a class="headerlink" title="Permalink to
this term" href="#migration">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ On systems which are registered against the SUSE Customer Center (SCC)
+ or SMT, a migration to a new version of the installed products can be
+ made with this option. This is done in an interactive mode.
</p></dd><dt id="pkg install <RPM> ... <RPM>"><span
class="term"><code class="option">pkg install</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20install%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
A PTF or other packages in RPM format can be installed in the system.
</p></dd><dt id="pkg remove <RPM> ... <RPM>"><span
class="term"><code class="option">pkg remove</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20remove%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
@@ -75,14 +106,7 @@
the system.
</p></dd><dt id="pkg update <RPM> ... <RPM>"><span
class="term"><code class="option">pkg update</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20update%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
Packages installed as RPMs can be updated.
- </p></dd><dt id="reboot"><span class="term"><code
class="option">reboot</code></span><a class="headerlink" title="Permalink to
this term" href="#reboot">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If a new snapshot with updates was created, the system should be
- rebooted. This option will trigger the necessary reboot. If the
- <a href="rebootmgrd.8.html"><span class="citerefentry"><span
class="refentrytitle">rebootmgrd</span>(8)</span></a>
- is running, <span
class="command"><strong>transactional-update</strong></span> will tell the
- daemon to reboot the system according to the configured policies. Else
- <span class="command"><strong>systemctl reboot</strong></span> is
called.
- </p></dd><dt id="rollback
+ </p></dd></dl></div></div></div><div class="refsect2"><a
name="individual_commands"></a><h3 id="Individual Commands">Individual
Commands<a class="headerlink" title="Permalink to this headline"
href="#Individual%20Commands">¶</a></h3><div class="variablelist"><dl
class="variablelist"><dt id="rollback
number"><span class="term"><code class="option">rollback</code>
[<span class="optional"><em
class="replaceable"><code>number</code></em></span>]</span><a
class="headerlink" title="Permalink to this term"
href="#rollback%0A%20%20%20%20number">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
Sets the default subvolume. On systems with read-write filesystem,
@@ -92,16 +116,7 @@
filesystem. Else the snapshot with <code class="option">number</code>
is made the
new default root filesystem. On a read-only filesystem, no additional
snapshots are created.
- </p></dd><dt id="shell"><span class="term"><code
class="option">shell</code></span><a class="headerlink" title="Permalink to
this term" href="#shell">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- After all actions are done, before the snapshot with the changes is
- unmounted and switched to read-only, a shell is started in the new
- snapshot as chroot environment for testing and debugging.
- </p></dd><dt id="up"><span class="term"><code
class="option">up</code></span><a class="headerlink" title="Permalink to this
term" href="#up">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper up</strong></span> is used to
update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
- </p></dd><dt id="--no-selfupdate"><span class="term"><code
class="option">--no-selfupdate</code></span><a class="headerlink"
title="Permalink to this term" href="#--no-selfupdate">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Skip checking for newer
transactional-update versions.</p></dd><dt id="--help"><span class="term"><code
class="option">--help</code></span><a class="headerlink" title="Permalink to
this term" href="#--help">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Display help and exit</p></dd><dt
id="--version"><span class="term"><code
class="option">--version</code></span><a class="headerlink" title="Permalink to
this term" href="#--version">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Output version information and
exit</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2
id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this
headline" href="#IMPORTANT">¶</a></h2><p>
+ </p></dd></dl></div></div></div><div class="refsect1"><a
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink"
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div
class="variablelist"><dl class="variablelist"><dt id="--no-selfupdate"><span
class="term"><code class="option">--no-selfupdate</code></span><a
class="headerlink" title="Permalink to this term"
href="#--no-selfupdate">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Skip checking for newer
transactional-update versions.</p></dd><dt id="--quiet"><span
class="term"><code class="option">--quiet</code></span><a class="headerlink"
title="Permalink to this term" href="#--quiet">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Don't print warnings and informational
messages to stdout.</p></dd><dt id="--help"><span class="term"><code
class="option">--help</code></span><a class="headerlink" title="Permalink to
this term" href="#--help">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Display help and exit</p></dd><dt
id="--version"><span class="term"><code
class="option">--version</code></span><a class="headerlink" title="Permalink to
this term" href="#--version">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Output version information and
exit</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2
id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this
headline" href="#IMPORTANT">¶</a></h2><p>
Only RPMs, which are fully part of the snapshot of the root filesystem, can
be updated. If RPMs contains files outside of the snapshot, the update
itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.8.xml
new/transactional-update-2.3/man/transactional-update.8.xml
--- old/transactional-update-2.2/man/transactional-update.8.xml 2018-04-17
16:36:35.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.8.xml 2018-05-09
15:59:44.000000000 +0200
@@ -55,45 +55,16 @@
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>transactional-update</command>
- <arg choice='opt'>--help</arg>
- <arg choice='opt'>--version</arg>
+ <arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
+ <arg choice='opt'
rep='repeat'><replaceable>general-command</replaceable></arg>
+ <arg choice='opt'><replaceable>package-command</replaceable>
+ <arg choice='opt'
rep='repeat'><replaceable>command-argument</replaceable></arg>
+ </arg>
</cmdsynopsis>
<cmdsynopsis>
<command>transactional-update</command>
- <arg choice='opt'>--no-selfupdate</arg>
- <arg choice='opt'>cleanup</arg>
- <group choice='opt'>
- <arg choice='plain'>up</arg>
- <arg choice='plain'>dup</arg>
- <arg choice='plain'>patch</arg>
- <arg choice='plain'>bootloader</arg>
- <arg choice='plain'>initrd</arg>
- </group>
- <arg choice='opt'>kdump</arg>
- <arg choice='opt'>reboot</arg>
- </cmdsynopsis>
- <cmdsynopsis>
- <command>transactional-update</command>
- <arg choice='opt'>--no-selfupdate</arg>
- <arg choice='opt'>cleanup</arg>
- <arg choice='opt'>reboot</arg>
- <arg choice='plain'>pkg</arg>
- <group choice='plain'>
- <arg choice='plain'>install</arg>
- <arg choice='plain'>remove</arg>
- <arg choice='plain'>update</arg>
- </group>
- <arg choice='plain'><RPM>...<RPM></arg>
- </cmdsynopsis>
- <cmdsynopsis>
- <command>transactional-update</command>
- <arg choice='opt'>--no-selfupdate</arg>
- <arg choice='plain'>migration</arg>
- </cmdsynopsis>
- <cmdsynopsis>
- <command>transactional-update</command>
- <arg choice='plain'>rollback</arg>
- <arg choice='opt'>number</arg>
+ <arg choice='opt'><replaceable>options</replaceable></arg>
+ <arg choice='plain'><replaceable>individual-command</replaceable></arg>
</cmdsynopsis>
<para><filename>transactional-update.service</filename></para>
<para><filename>transactional-update.timer</filename></para>
@@ -126,7 +97,12 @@
</para>
</refsect1>
-<refsect1 id='options'><title>OPTIONS</title>
+<refsect1 id='commands'><title>COMMANDS</title>
+<refsect2 id='general_commands'><title>General Commands</title>
+<para>
+ General commands can be used together in any combination; additionally
+ they can be extended with one <option>Package Command</option>.
+</para>
<variablelist remap='TP'>
<varlistentry>
<term><option>cleanup</option></term>
@@ -142,17 +118,6 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><option>dup</option></term>
- <listitem>
- <para>
- If new updates are available, a new snapshot is created and
- <command>zypper dup --no-allow-vendor-change</command> is used to
- update the snapshot. Afterwards, the snapshot is activated and will be
- used as the new root filesystem during next boot.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
<term><option>grub.cfg</option></term>
<listitem>
<para>
@@ -189,12 +154,61 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><option>migration</option></term>
+ <term><option>reboot</option></term>
<listitem>
<para>
- On systems which are registered against the SUSE Customer Center (SCC)
- or SMT, a migration to a new version of the installed products can be
- made with this option. This is done in an interactive mode.
+ If a new snapshot with updates was created, the system should be
+ rebooted. This option will trigger the necessary reboot. If the
+
<citerefentry><refentrytitle>rebootmgrd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ is running, <command>transactional-update</command> will tell the
+ daemon to reboot the system according to the configured policies. Else
+ <command>systemctl reboot</command> is called.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>shell</option></term>
+ <listitem>
+ <para>
+ After all actions are done, before the snapshot with the changes is
+ unmounted and switched to read-only, a shell is started in the new
+ snapshot as chroot environment for testing and debugging.
+ </para>
+ </listitem>
+ </varlistentry>
+</variablelist>
+</refsect2>
+<refsect2 id='pkg_commands'><title>Package Commands</title>
+<para>
+ Only one package command can be used at the same time. Note that when
+ combining non-interactive package commands with
+ <option>General Commands</option> those will only be executed if the package
+ command updated any packages.
+</para>
+<refsect3 id='ni_pkg_commands'><title>Non-interactive Package Commands</title>
+<para>
+ Non-interactive Package Commands will require no user interaction.
+</para>
+<variablelist>
+ <varlistentry>
+ <term><option>dup</option></term>
+ <listitem>
+ <para>
+ If new updates are available, a new snapshot is created and
+ <command>zypper dup --no-allow-vendor-change</command> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>up</option></term>
+ <listitem>
+ <para>
+ If new updates are available, a new snapshot is created and
+ <command>zypper up</command> is used to update the snapshot.
+ Afterwards, the snapshot is activated and will be used as the new root
+ filesystem during next boot.
</para>
</listitem>
</varlistentry>
@@ -209,6 +223,24 @@
</para>
</listitem>
</varlistentry>
+</variablelist>
+</refsect3>
+<refsect3 id='i_pkg_commands'><title>Interactive Package Commands</title>
+<para>
+ Interactive Package Commands may require user interaction to solve conflicts
+ or make decisions.
+</para>
+<variablelist>
+ <varlistentry>
+ <term><option>migration</option></term>
+ <listitem>
+ <para>
+ On systems which are registered against the SUSE Customer Center (SCC)
+ or SMT, a migration to a new version of the installed products can be
+ made with this option. This is done in an interactive mode.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><option>pkg install</option> <replaceable><RPM> ...
<RPM></replaceable></term>
<listitem>
@@ -234,19 +266,11 @@
</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term><option>reboot</option></term>
- <listitem>
- <para>
- If a new snapshot with updates was created, the system should be
- rebooted. This option will trigger the necessary reboot. If the
-
<citerefentry><refentrytitle>rebootmgrd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- is running, <command>transactional-update</command> will tell the
- daemon to reboot the system according to the configured policies. Else
- <command>systemctl reboot</command> is called.
- </para>
- </listitem>
- </varlistentry>
+</variablelist>
+</refsect3>
+</refsect2>
+<refsect2 id='individual_commands'><title>Individual Commands</title>
+<variablelist>
<varlistentry>
<term><option>rollback</option>
<optional><replaceable>number</replaceable></optional></term>
@@ -263,31 +287,21 @@
</para>
</listitem>
</varlistentry>
+</variablelist>
+</refsect2>
+</refsect1>
+<refsect1 id='options'><title>OPTIONS</title>
+<variablelist>
<varlistentry>
- <term><option>shell</option></term>
- <listitem>
- <para>
- After all actions are done, before the snapshot with the changes is
- unmounted and switched to read-only, a shell is started in the new
- snapshot as chroot environment for testing and debugging.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>up</option></term>
+ <term><option>--no-selfupdate</option></term>
<listitem>
- <para>
- If new updates are available, a new snapshot is created and
- <command>zypper up</command> is used to update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
- </para>
+ <para>Skip checking for newer transactional-update versions.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--no-selfupdate</option></term>
+ <term><option>--quiet</option></term>
<listitem>
- <para>Skip checking for newer transactional-update versions.</para>
+ <para>Don't print warnings and informational messages to stdout.</para>
</listitem>
</varlistentry>
<varlistentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.conf.5
new/transactional-update-2.3/man/transactional-update.conf.5
--- old/transactional-update-2.2/man/transactional-update.conf.5
2018-04-09 13:34:09.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.conf.5
2018-05-07 13:36:13.000000000 +0200
@@ -1,13 +1,13 @@
'\" t
.\" Title: transactional-update.conf
.\" Author: Ignaz Forster <[email protected]>
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 04/09/2018
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 05/07/2018
.\" Manual: transactional-update.conf
.\" Source: transactional-update
.\" Language: English
.\"
-.TH "TRANSACTIONAL\-UPDAT" "5" "04/09/2018" "transactional-update"
"transactional-update.conf"
+.TH "TRANSACTIONAL\-UPDAT" "5" "05/07/2018" "transactional-update"
"transactional-update.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -31,7 +31,7 @@
transactional-update.conf \- transactional\-update configuration file
.SH "SYNOPSIS"
.PP
-/usr/etc/transactional\-update\&.conf
+/etc/transactional\-update\&.conf
.SH "DESCRIPTION"
.PP
This configuration file controls and defines the behaviour of
@@ -43,7 +43,7 @@
PARAMETER=value\&.
.PP
A reference file (also used for reading the default values) can be found in
-/usr/usr/etc/transactional\-update\&.conf\&.
+/usr/etc/transactional\-update\&.conf\&.
.SH "OPTIONS"
.PP
The following options are available in the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.conf.5.html
new/transactional-update-2.3/man/transactional-update.conf.5.html
--- old/transactional-update-2.2/man/transactional-update.conf.5.html
2018-04-09 13:34:09.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.conf.5.html
2018-05-07 13:36:14.000000000 +0200
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update.conf</title><meta name="generator"
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
+<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update.conf</title><meta name="generator"
content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
@@ -15,11 +15,11 @@
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
- </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
1.28</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.conf.5"></a><div class="titlepage"></div><div
class="refnamediv"><h2>Name</h2><p>transactional-update.conf —
transactional-update configuration file</p></div><div
class="refsynopsisdiv"><h2>Synopsis</h2><p>/usr/etc/transactional-update.conf</p></div><div
class="refsect1"><a name="id-1.5"></a><h2 id="Description">Description<a
class="headerlink" title="Permalink to this headline"
href="#Description">¶</a></h2><p>This configuration file controls and defines
the behaviour of
+ </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
2.2</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.conf.5"></a><div class="titlepage"></div><div
class="refnamediv"><h2>Name</h2><p>transactional-update.conf —
transactional-update configuration file</p></div><div
class="refsynopsisdiv"><h2>Synopsis</h2><p>/etc/transactional-update.conf</p></div><div
class="refsect1"><a name="id-1.5"></a><h2 id="Description">Description<a
class="headerlink" title="Permalink to this headline"
href="#Description">¶</a></h2><p>This configuration file controls and defines
the behaviour of
<a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" href="transactional-update.8.html"><span
class="citerefentry"><span
class="refentrytitle">transactional-update</span>(8)</span></a>.</p><p>The
transactional-update.conf file uses shell
style assignments, e.g. <code class="code">PARAMETER=value</code>.</p><p>A
reference file (also used for reading the default values) can be
found in
- /usr/usr/etc/transactional-update.conf.</p></div><div class="refsect1"><a
name="id-1.6"></a><h2 id="Options">Options<a class="headerlink"
title="Permalink to this headline" href="#Options">¶</a></h2><p>The following
options are available in the
+ /usr/etc/transactional-update.conf.</p></div><div class="refsect1"><a
name="id-1.6"></a><h2 id="Options">Options<a class="headerlink"
title="Permalink to this headline" href="#Options">¶</a></h2><p>The following
options are available in the
"<code class="literal">transactional-update</code>" section:
</p><div class="variablelist"><dl class="variablelist"><dt
id="REBOOT_METHOD"><span class="term"><code
class="varname">REBOOT_METHOD</code></span><a class="headerlink"
title="Permalink to this term" href="#REBOOT_METHOD">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Specify the reboot method to
use.</p><div class="variablelist"><dl class="variablelist"><dt id="auto"><span
class="term">"<code class="literal">auto</code>"</span><a class="headerlink"
title="Permalink to this term" href="#auto">¶</a></dt><dd><p>
Uses "<code class="literal">rebootmgr</code>" if available
and active;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.index.html
new/transactional-update-2.3/man/transactional-update.index.html
--- old/transactional-update-2.2/man/transactional-update.index.html
2018-04-17 16:40:32.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.index.html
2018-05-09 16:49:06.000000000 +0200
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update.index</title><meta name="generator"
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
+<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update.index</title><meta name="generator"
content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
@@ -15,4 +15,4 @@
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
- </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
1.28</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.index"></a><div class="titlepage"></div><div
class="refnamediv"><h2>Name</h2><p>transactional-update.index — List all
manpages from the transactional-update project</p></div><div
class="refsect1"><a name="id-1.4"></a><h2 id="T">T<a class="headerlink"
title="Permalink to this headline" href="#T">¶</a></h2><p><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" href="transactional-update.8.html"><span
class="citerefentry"><span
class="refentrytitle">transactional-update</span>(8)</span></a> -- Apply
updates to the system in an atomic way via transactional updates.<br><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.conf.5.html"><span class="citerefentry"><span
class="refentrytitle">transactional-update.conf</span>(5)</span></a> --
transactional-update configuration file<br><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.service.8.html"><span class="citerefentry"><span
class="refentrytitle">transactional-update.service</span>(8)</span></a> --
Apply updates to the system in an atomic way via transactional updates.<br><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.timer.8.html"><span class="citerefentry"><span
class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply
updates to the system in an atomic way via transactional
updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a
name="counts"></a>This index contains 4 entries, referring to 2 individual
manual pages.</p></div></div></body></html>
+ </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
2.2</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.index"></a><div class="titlepage"></div><div
class="refnamediv"><h2>Name</h2><p>transactional-update.index — List all
manpages from the transactional-update project</p></div><div
class="refsect1"><a name="id-1.4"></a><h2 id="T">T<a class="headerlink"
title="Permalink to this headline" href="#T">¶</a></h2><p><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" href="transactional-update.8.html"><span
class="citerefentry"><span
class="refentrytitle">transactional-update</span>(8)</span></a> -- Apply
updates to the system in an atomic way via transactional updates.<br><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.conf.5.html"><span class="citerefentry"><span
class="refentrytitle">transactional-update.conf</span>(5)</span></a> --
transactional-update configuration file<br><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.service.8.html"><span class="citerefentry"><span
class="refentrytitle">transactional-update.service</span>(8)</span></a> --
Apply updates to the system in an atomic way via transactional updates.<br><a
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.timer.8.html"><span class="citerefentry"><span
class="refentrytitle">transactional-update.timer</span>(8)</span></a> -- Apply
updates to the system in an atomic way via transactional
updates.<br></p></div><div class="refsect1"><a name="id-1.5"></a><p><a
name="counts"></a>This index contains 4 entries, referring to 2 individual
manual pages.</p></div></div></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.service.8.html
new/transactional-update-2.3/man/transactional-update.service.8.html
--- old/transactional-update-2.2/man/transactional-update.service.8.html
2018-04-17 16:40:32.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.service.8.html
2018-05-09 16:49:06.000000000 +0200
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update</title><meta name="generator"
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
+<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update</title><meta name="generator"
content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
@@ -15,8 +15,10 @@
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
- </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
1.28</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.8"></a><div class="titlepage"></div><div
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update,
transactional-update.service, transactional-update.timer — Apply updates to the
system in an atomic way via transactional
- updates.</p></div><div class="refsynopsisdiv"><a
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--help] [--version]</p></div><div
class="cmdsynopsis"><p><code class="command">transactional-update</code>
[--no-selfupdate] [cleanup] [ up | dup | patch | bootloader |
initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--no-selfupdate] [cleanup]
[reboot] pkg install | remove | update <RPM>...<RPM>
</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--no-selfupdate] migration
</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> rollback
[number]</p></div><p>transactional-update.service</p><p>transactional-update.timer</p></div><div
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a
class="headerlink" title="Permalink to this headline"
href="#DESCRIPTION">¶</a></h2><p><span
class="command"><strong>transactional-update</strong></span> updates the system
+ </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
2.2</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.8"></a><div class="titlepage"></div><div
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update,
transactional-update.service, transactional-update.timer — Apply updates to the
system in an atomic way via transactional
+ updates.</p></div><div class="refsynopsisdiv"><a
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [<em
class="replaceable"><code>options</code></em>...] [<em
class="replaceable"><code>general-command</code></em>...] [<em
class="replaceable"><code>package-command</code></em>
+ [<em class="replaceable"><code>command-argument</code></em>...]
+ ]</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [<em
class="replaceable"><code>options</code></em>] <em
class="replaceable"><code>individual-command</code></em>
</p></div><p>transactional-update.service</p><p>transactional-update.timer</p></div><div
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a
class="headerlink" title="Permalink to this headline"
href="#DESCRIPTION">¶</a></h2><p><span
class="command"><strong>transactional-update</strong></span> updates the system
in a transactional way, which means: it is atomic, so either the patches are
fully applied or nothing is changed. The update does not influence your
running system and it can be rolled back. To activate the changes, the system
@@ -36,18 +38,16 @@
/etc/systemd/system/transactional-update.timer.d/local.conf. See
<a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html"><span
class="citerefentry"><span
class="refentrytitle">systemd.unit</span>(5)</span></a>
for more informations.
-</p></div><div class="refsect1"><a name="options"></a><h2
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline"
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl
class="variablelist"><dt id="cleanup"><span class="term"><code
class="option">cleanup</code></span><a class="headerlink" title="Permalink to
this term" href="#cleanup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>If the current root filesystem is
identical to the active root
+</p></div><div class="refsect1"><a name="commands"></a><h2
id="COMMANDS">COMMANDS<a class="headerlink" title="Permalink to this headline"
href="#COMMANDS">¶</a></h2><div class="refsect2"><a
name="general_commands"></a><h3 id="General Commands">General Commands<a
class="headerlink" title="Permalink to this headline"
href="#General%20Commands">¶</a></h3><p>
+ General commands can be used together in any combination; additionally
+ they can be extended with one <code class="option">Package Command</code>.
+</p><div class="variablelist"><dl class="variablelist"><dt id="cleanup"><span
class="term"><code class="option">cleanup</code></span><a class="headerlink"
title="Permalink to this term" href="#cleanup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>If the current root filesystem is
identical to the active root
filesystem (means after a reboot, before
<span class="command"><strong>transactional-update</strong></span>
creates a new snapshot with
updates), all old snapshots without a cleanup algorithm get a cleanup
algorithm set. This is to make sure, that old snapshots will be deleted
by snapper. See the section about cleanup algorithms in
<a href="http://snapper.io/manpages/snapper.html"><span
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
- </p></dd><dt id="dup"><span class="term"><code
class="option">dup</code></span><a class="headerlink" title="Permalink to this
term" href="#dup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper dup
--no-allow-vendor-change</strong></span> is used to
- update the snapshot. Afterwards, the snapshot is activated and will be
- used as the new root filesystem during next boot.
</p></dd><dt id="grub.cfg"><span class="term"><code
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to
this term" href="#grub.cfg">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
<a href="https://www.linux.org/docs/man8/grub2-mkconfig.html"><span
class="citerefentry"><span
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
is called to create a new /boot/grub2/grub.cfg
@@ -59,15 +59,46 @@
A new initrd is created in a snapshot.
</p></dd><dt id="kdump"><span class="term"><code
class="option">kdump</code></span><a class="headerlink" title="Permalink to
this term" href="#kdump">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
A new initrd for kdump is created in a snapshot.
- </p></dd><dt id="migration"><span class="term"><code
class="option">migration</code></span><a class="headerlink" title="Permalink to
this term" href="#migration">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- On systems which are registered against the SUSE Customer Center (SCC)
- or SMT, a migration to a new version of the installed products can be
- made with this option. This is done in an interactive mode.
+ </p></dd><dt id="reboot"><span class="term"><code
class="option">reboot</code></span><a class="headerlink" title="Permalink to
this term" href="#reboot">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If a new snapshot with updates was created, the system should be
+ rebooted. This option will trigger the necessary reboot. If the
+ <a href="rebootmgrd.8.html"><span class="citerefentry"><span
class="refentrytitle">rebootmgrd</span>(8)</span></a>
+ is running, <span
class="command"><strong>transactional-update</strong></span> will tell the
+ daemon to reboot the system according to the configured policies. Else
+ <span class="command"><strong>systemctl reboot</strong></span> is
called.
+ </p></dd><dt id="shell"><span class="term"><code
class="option">shell</code></span><a class="headerlink" title="Permalink to
this term" href="#shell">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ After all actions are done, before the snapshot with the changes is
+ unmounted and switched to read-only, a shell is started in the new
+ snapshot as chroot environment for testing and debugging.
+ </p></dd></dl></div></div><div class="refsect2"><a
name="pkg_commands"></a><h3 id="Package Commands">Package Commands<a
class="headerlink" title="Permalink to this headline"
href="#Package%20Commands">¶</a></h3><p>
+ Only one package command can be used at the same time. Note that when
+ combining non-interactive package commands with
+ <code class="option">General Commands</code> those will only be executed if
the package
+ command updated any packages.
+</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive
Package Commands</h4><p>
+ Non-interactive Package Commands will require no user interaction.
+</p><div class="variablelist"><dl class="variablelist"><dt id="dup"><span
class="term"><code class="option">dup</code></span><a class="headerlink"
title="Permalink to this term" href="#dup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If new updates are available, a new snapshot is created and
+ <span class="command"><strong>zypper dup
--no-allow-vendor-change</strong></span> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
+ </p></dd><dt id="up"><span class="term"><code
class="option">up</code></span><a class="headerlink" title="Permalink to this
term" href="#up">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If new updates are available, a new snapshot is created and
+ <span class="command"><strong>zypper up</strong></span> is used to
update the snapshot.
+ Afterwards, the snapshot is activated and will be used as the new root
+ filesystem during next boot.
</p></dd><dt id="patch"><span class="term"><code
class="option">patch</code></span><a class="headerlink" title="Permalink to
this term" href="#patch">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
If new updates are available, a new snapshot is created and
<span class="command"><strong>zypper patch</strong></span> is used to
update the snapshot.
Afterwards, the snapshot is activated and will be used as the new root
filesystem during next boot.
+ </p></dd></dl></div></div><div class="refsect3"><a
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><p>
+ Interactive Package Commands may require user interaction to solve conflicts
+ or make decisions.
+</p><div class="variablelist"><dl class="variablelist"><dt
id="migration"><span class="term"><code
class="option">migration</code></span><a class="headerlink" title="Permalink to
this term" href="#migration">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ On systems which are registered against the SUSE Customer Center (SCC)
+ or SMT, a migration to a new version of the installed products can be
+ made with this option. This is done in an interactive mode.
</p></dd><dt id="pkg install <RPM> ... <RPM>"><span
class="term"><code class="option">pkg install</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20install%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
A PTF or other packages in RPM format can be installed in the system.
</p></dd><dt id="pkg remove <RPM> ... <RPM>"><span
class="term"><code class="option">pkg remove</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20remove%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
@@ -75,14 +106,7 @@
the system.
</p></dd><dt id="pkg update <RPM> ... <RPM>"><span
class="term"><code class="option">pkg update</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20update%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
Packages installed as RPMs can be updated.
- </p></dd><dt id="reboot"><span class="term"><code
class="option">reboot</code></span><a class="headerlink" title="Permalink to
this term" href="#reboot">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If a new snapshot with updates was created, the system should be
- rebooted. This option will trigger the necessary reboot. If the
- <a href="rebootmgrd.8.html"><span class="citerefentry"><span
class="refentrytitle">rebootmgrd</span>(8)</span></a>
- is running, <span
class="command"><strong>transactional-update</strong></span> will tell the
- daemon to reboot the system according to the configured policies. Else
- <span class="command"><strong>systemctl reboot</strong></span> is
called.
- </p></dd><dt id="rollback
+ </p></dd></dl></div></div></div><div class="refsect2"><a
name="individual_commands"></a><h3 id="Individual Commands">Individual
Commands<a class="headerlink" title="Permalink to this headline"
href="#Individual%20Commands">¶</a></h3><div class="variablelist"><dl
class="variablelist"><dt id="rollback
number"><span class="term"><code class="option">rollback</code>
[<span class="optional"><em
class="replaceable"><code>number</code></em></span>]</span><a
class="headerlink" title="Permalink to this term"
href="#rollback%0A%20%20%20%20number">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
Sets the default subvolume. On systems with read-write filesystem,
@@ -92,16 +116,7 @@
filesystem. Else the snapshot with <code class="option">number</code>
is made the
new default root filesystem. On a read-only filesystem, no additional
snapshots are created.
- </p></dd><dt id="shell"><span class="term"><code
class="option">shell</code></span><a class="headerlink" title="Permalink to
this term" href="#shell">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- After all actions are done, before the snapshot with the changes is
- unmounted and switched to read-only, a shell is started in the new
- snapshot as chroot environment for testing and debugging.
- </p></dd><dt id="up"><span class="term"><code
class="option">up</code></span><a class="headerlink" title="Permalink to this
term" href="#up">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper up</strong></span> is used to
update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
- </p></dd><dt id="--no-selfupdate"><span class="term"><code
class="option">--no-selfupdate</code></span><a class="headerlink"
title="Permalink to this term" href="#--no-selfupdate">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Skip checking for newer
transactional-update versions.</p></dd><dt id="--help"><span class="term"><code
class="option">--help</code></span><a class="headerlink" title="Permalink to
this term" href="#--help">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Display help and exit</p></dd><dt
id="--version"><span class="term"><code
class="option">--version</code></span><a class="headerlink" title="Permalink to
this term" href="#--version">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Output version information and
exit</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2
id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this
headline" href="#IMPORTANT">¶</a></h2><p>
+ </p></dd></dl></div></div></div><div class="refsect1"><a
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink"
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div
class="variablelist"><dl class="variablelist"><dt id="--no-selfupdate"><span
class="term"><code class="option">--no-selfupdate</code></span><a
class="headerlink" title="Permalink to this term"
href="#--no-selfupdate">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Skip checking for newer
transactional-update versions.</p></dd><dt id="--quiet"><span
class="term"><code class="option">--quiet</code></span><a class="headerlink"
title="Permalink to this term" href="#--quiet">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Don't print warnings and informational
messages to stdout.</p></dd><dt id="--help"><span class="term"><code
class="option">--help</code></span><a class="headerlink" title="Permalink to
this term" href="#--help">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Display help and exit</p></dd><dt
id="--version"><span class="term"><code
class="option">--version</code></span><a class="headerlink" title="Permalink to
this term" href="#--version">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Output version information and
exit</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2
id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this
headline" href="#IMPORTANT">¶</a></h2><p>
Only RPMs, which are fully part of the snapshot of the root filesystem, can
be updated. If RPMs contains files outside of the snapshot, the update
itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/man/transactional-update.timer.8.html
new/transactional-update-2.3/man/transactional-update.timer.8.html
--- old/transactional-update-2.2/man/transactional-update.timer.8.html
2018-04-17 16:40:32.000000000 +0200
+++ new/transactional-update-2.3/man/transactional-update.timer.8.html
2018-05-09 16:49:06.000000000 +0200
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update</title><meta name="generator"
content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
+<html><head><meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"><title>transactional-update</title><meta name="generator"
content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white"
text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common">
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
@@ -15,8 +15,10 @@
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
- </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
1.28</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.8"></a><div class="titlepage"></div><div
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update,
transactional-update.service, transactional-update.timer — Apply updates to the
system in an atomic way via transactional
- updates.</p></div><div class="refsynopsisdiv"><a
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--help] [--version]</p></div><div
class="cmdsynopsis"><p><code class="command">transactional-update</code>
[--no-selfupdate] [cleanup] [ up | dup | patch | bootloader |
initrd ] [kdump] [reboot]</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--no-selfupdate] [cleanup]
[reboot] pkg install | remove | update <RPM>...<RPM>
</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [--no-selfupdate] migration
</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> rollback
[number]</p></div><p>transactional-update.service</p><p>transactional-update.timer</p></div><div
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a
class="headerlink" title="Permalink to this headline"
href="#DESCRIPTION">¶</a></h2><p><span
class="command"><strong>transactional-update</strong></span> updates the system
+ </style><a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="transactional-update.index.html">Index </a><span
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common" style="float:right">transactional-update
2.2</span><hr xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><div class="refentry"><a
name="transactional-update.8"></a><div class="titlepage"></div><div
class="refnamediv"><a name="name"></a><h2>Name</h2><p>transactional-update,
transactional-update.service, transactional-update.timer — Apply updates to the
system in an atomic way via transactional
+ updates.</p></div><div class="refsynopsisdiv"><a
name="synopsis"></a><h2>Synopsis</h2><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [<em
class="replaceable"><code>options</code></em>...] [<em
class="replaceable"><code>general-command</code></em>...] [<em
class="replaceable"><code>package-command</code></em>
+ [<em class="replaceable"><code>command-argument</code></em>...]
+ ]</p></div><div class="cmdsynopsis"><p><code
class="command">transactional-update</code> [<em
class="replaceable"><code>options</code></em>] <em
class="replaceable"><code>individual-command</code></em>
</p></div><p>transactional-update.service</p><p>transactional-update.timer</p></div><div
class="refsect1"><a name="description"></a><h2 id="DESCRIPTION">DESCRIPTION<a
class="headerlink" title="Permalink to this headline"
href="#DESCRIPTION">¶</a></h2><p><span
class="command"><strong>transactional-update</strong></span> updates the system
in a transactional way, which means: it is atomic, so either the patches are
fully applied or nothing is changed. The update does not influence your
running system and it can be rolled back. To activate the changes, the system
@@ -36,18 +38,16 @@
/etc/systemd/system/transactional-update.timer.d/local.conf. See
<a xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"
href="https://www.freedesktop.org/software/systemd/man/systemd.unit.html"><span
class="citerefentry"><span
class="refentrytitle">systemd.unit</span>(5)</span></a>
for more informations.
-</p></div><div class="refsect1"><a name="options"></a><h2
id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline"
href="#OPTIONS">¶</a></h2><div class="variablelist"><dl
class="variablelist"><dt id="cleanup"><span class="term"><code
class="option">cleanup</code></span><a class="headerlink" title="Permalink to
this term" href="#cleanup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>If the current root filesystem is
identical to the active root
+</p></div><div class="refsect1"><a name="commands"></a><h2
id="COMMANDS">COMMANDS<a class="headerlink" title="Permalink to this headline"
href="#COMMANDS">¶</a></h2><div class="refsect2"><a
name="general_commands"></a><h3 id="General Commands">General Commands<a
class="headerlink" title="Permalink to this headline"
href="#General%20Commands">¶</a></h3><p>
+ General commands can be used together in any combination; additionally
+ they can be extended with one <code class="option">Package Command</code>.
+</p><div class="variablelist"><dl class="variablelist"><dt id="cleanup"><span
class="term"><code class="option">cleanup</code></span><a class="headerlink"
title="Permalink to this term" href="#cleanup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>If the current root filesystem is
identical to the active root
filesystem (means after a reboot, before
<span class="command"><strong>transactional-update</strong></span>
creates a new snapshot with
updates), all old snapshots without a cleanup algorithm get a cleanup
algorithm set. This is to make sure, that old snapshots will be deleted
by snapper. See the section about cleanup algorithms in
<a href="http://snapper.io/manpages/snapper.html"><span
class="citerefentry"><span class="refentrytitle">snapper</span>(8)</span></a>.
- </p></dd><dt id="dup"><span class="term"><code
class="option">dup</code></span><a class="headerlink" title="Permalink to this
term" href="#dup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper dup
--no-allow-vendor-change</strong></span> is used to
- update the snapshot. Afterwards, the snapshot is activated and will be
- used as the new root filesystem during next boot.
</p></dd><dt id="grub.cfg"><span class="term"><code
class="option">grub.cfg</code></span><a class="headerlink" title="Permalink to
this term" href="#grub.cfg">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
<a href="https://www.linux.org/docs/man8/grub2-mkconfig.html"><span
class="citerefentry"><span
class="refentrytitle">grub2-mkconfig</span>(8)</span></a>
is called to create a new /boot/grub2/grub.cfg
@@ -59,15 +59,46 @@
A new initrd is created in a snapshot.
</p></dd><dt id="kdump"><span class="term"><code
class="option">kdump</code></span><a class="headerlink" title="Permalink to
this term" href="#kdump">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
A new initrd for kdump is created in a snapshot.
- </p></dd><dt id="migration"><span class="term"><code
class="option">migration</code></span><a class="headerlink" title="Permalink to
this term" href="#migration">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- On systems which are registered against the SUSE Customer Center (SCC)
- or SMT, a migration to a new version of the installed products can be
- made with this option. This is done in an interactive mode.
+ </p></dd><dt id="reboot"><span class="term"><code
class="option">reboot</code></span><a class="headerlink" title="Permalink to
this term" href="#reboot">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If a new snapshot with updates was created, the system should be
+ rebooted. This option will trigger the necessary reboot. If the
+ <a href="rebootmgrd.8.html"><span class="citerefentry"><span
class="refentrytitle">rebootmgrd</span>(8)</span></a>
+ is running, <span
class="command"><strong>transactional-update</strong></span> will tell the
+ daemon to reboot the system according to the configured policies. Else
+ <span class="command"><strong>systemctl reboot</strong></span> is
called.
+ </p></dd><dt id="shell"><span class="term"><code
class="option">shell</code></span><a class="headerlink" title="Permalink to
this term" href="#shell">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ After all actions are done, before the snapshot with the changes is
+ unmounted and switched to read-only, a shell is started in the new
+ snapshot as chroot environment for testing and debugging.
+ </p></dd></dl></div></div><div class="refsect2"><a
name="pkg_commands"></a><h3 id="Package Commands">Package Commands<a
class="headerlink" title="Permalink to this headline"
href="#Package%20Commands">¶</a></h3><p>
+ Only one package command can be used at the same time. Note that when
+ combining non-interactive package commands with
+ <code class="option">General Commands</code> those will only be executed if
the package
+ command updated any packages.
+</p><div class="refsect3"><a name="ni_pkg_commands"></a><h4>Non-interactive
Package Commands</h4><p>
+ Non-interactive Package Commands will require no user interaction.
+</p><div class="variablelist"><dl class="variablelist"><dt id="dup"><span
class="term"><code class="option">dup</code></span><a class="headerlink"
title="Permalink to this term" href="#dup">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If new updates are available, a new snapshot is created and
+ <span class="command"><strong>zypper dup
--no-allow-vendor-change</strong></span> is used to
+ update the snapshot. Afterwards, the snapshot is activated and will be
+ used as the new root filesystem during next boot.
+ </p></dd><dt id="up"><span class="term"><code
class="option">up</code></span><a class="headerlink" title="Permalink to this
term" href="#up">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ If new updates are available, a new snapshot is created and
+ <span class="command"><strong>zypper up</strong></span> is used to
update the snapshot.
+ Afterwards, the snapshot is activated and will be used as the new root
+ filesystem during next boot.
</p></dd><dt id="patch"><span class="term"><code
class="option">patch</code></span><a class="headerlink" title="Permalink to
this term" href="#patch">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
If new updates are available, a new snapshot is created and
<span class="command"><strong>zypper patch</strong></span> is used to
update the snapshot.
Afterwards, the snapshot is activated and will be used as the new root
filesystem during next boot.
+ </p></dd></dl></div></div><div class="refsect3"><a
name="i_pkg_commands"></a><h4>Interactive Package Commands</h4><p>
+ Interactive Package Commands may require user interaction to solve conflicts
+ or make decisions.
+</p><div class="variablelist"><dl class="variablelist"><dt
id="migration"><span class="term"><code
class="option">migration</code></span><a class="headerlink" title="Permalink to
this term" href="#migration">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
+ On systems which are registered against the SUSE Customer Center (SCC)
+ or SMT, a migration to a new version of the installed products can be
+ made with this option. This is done in an interactive mode.
</p></dd><dt id="pkg install <RPM> ... <RPM>"><span
class="term"><code class="option">pkg install</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20install%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
A PTF or other packages in RPM format can be installed in the system.
</p></dd><dt id="pkg remove <RPM> ... <RPM>"><span
class="term"><code class="option">pkg remove</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20remove%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
@@ -75,14 +106,7 @@
the system.
</p></dd><dt id="pkg update <RPM> ... <RPM>"><span
class="term"><code class="option">pkg update</code> <em
class="replaceable"><code><RPM> ... <RPM></code></em></span><a
class="headerlink" title="Permalink to this term"
href="#pkg%20update%20<RPM>%20...%20<RPM>">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
Packages installed as RPMs can be updated.
- </p></dd><dt id="reboot"><span class="term"><code
class="option">reboot</code></span><a class="headerlink" title="Permalink to
this term" href="#reboot">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If a new snapshot with updates was created, the system should be
- rebooted. This option will trigger the necessary reboot. If the
- <a href="rebootmgrd.8.html"><span class="citerefentry"><span
class="refentrytitle">rebootmgrd</span>(8)</span></a>
- is running, <span
class="command"><strong>transactional-update</strong></span> will tell the
- daemon to reboot the system according to the configured policies. Else
- <span class="command"><strong>systemctl reboot</strong></span> is
called.
- </p></dd><dt id="rollback
+ </p></dd></dl></div></div></div><div class="refsect2"><a
name="individual_commands"></a><h3 id="Individual Commands">Individual
Commands<a class="headerlink" title="Permalink to this headline"
href="#Individual%20Commands">¶</a></h3><div class="variablelist"><dl
class="variablelist"><dt id="rollback
number"><span class="term"><code class="option">rollback</code>
[<span class="optional"><em
class="replaceable"><code>number</code></em></span>]</span><a
class="headerlink" title="Permalink to this term"
href="#rollback%0A%20%20%20%20number">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
Sets the default subvolume. On systems with read-write filesystem,
@@ -92,16 +116,7 @@
filesystem. Else the snapshot with <code class="option">number</code>
is made the
new default root filesystem. On a read-only filesystem, no additional
snapshots are created.
- </p></dd><dt id="shell"><span class="term"><code
class="option">shell</code></span><a class="headerlink" title="Permalink to
this term" href="#shell">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- After all actions are done, before the snapshot with the changes is
- unmounted and switched to read-only, a shell is started in the new
- snapshot as chroot environment for testing and debugging.
- </p></dd><dt id="up"><span class="term"><code
class="option">up</code></span><a class="headerlink" title="Permalink to this
term" href="#up">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>
- If new updates are available, a new snapshot is created and
- <span class="command"><strong>zypper up</strong></span> is used to
update the snapshot.
- Afterwards, the snapshot is activated and will be used as the new root
- filesystem during next boot.
- </p></dd><dt id="--no-selfupdate"><span class="term"><code
class="option">--no-selfupdate</code></span><a class="headerlink"
title="Permalink to this term" href="#--no-selfupdate">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Skip checking for newer
transactional-update versions.</p></dd><dt id="--help"><span class="term"><code
class="option">--help</code></span><a class="headerlink" title="Permalink to
this term" href="#--help">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Display help and exit</p></dd><dt
id="--version"><span class="term"><code
class="option">--version</code></span><a class="headerlink" title="Permalink to
this term" href="#--version">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Output version information and
exit</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2
id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this
headline" href="#IMPORTANT">¶</a></h2><p>
+ </p></dd></dl></div></div></div><div class="refsect1"><a
name="options"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink"
title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div
class="variablelist"><dl class="variablelist"><dt id="--no-selfupdate"><span
class="term"><code class="option">--no-selfupdate</code></span><a
class="headerlink" title="Permalink to this term"
href="#--no-selfupdate">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Skip checking for newer
transactional-update versions.</p></dd><dt id="--quiet"><span
class="term"><code class="option">--quiet</code></span><a class="headerlink"
title="Permalink to this term" href="#--quiet">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Don't print warnings and informational
messages to stdout.</p></dd><dt id="--help"><span class="term"><code
class="option">--help</code></span><a class="headerlink" title="Permalink to
this term" href="#--help">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Display help and exit</p></dd><dt
id="--version"><span class="term"><code
class="option">--version</code></span><a class="headerlink" title="Permalink to
this term" href="#--version">¶</a></dt><dd
xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
xmlns:exsl="http://exslt.org/common"><p>Output version information and
exit</p></dd></dl></div></div><div class="refsect1"><a name="important"></a><h2
id="IMPORTANT">IMPORTANT<a class="headerlink" title="Permalink to this
headline" href="#IMPORTANT">¶</a></h2><p>
Only RPMs, which are fully part of the snapshot of the root filesystem, can
be updated. If RPMs contains files outside of the snapshot, the update
itself can break or can break the system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/transactional-update-2.2/sbin/transactional-update.in
new/transactional-update-2.3/sbin/transactional-update.in
--- old/transactional-update-2.2/sbin/transactional-update.in 2018-04-30
13:53:13.000000000 +0200
+++ new/transactional-update-2.3/sbin/transactional-update.in 2018-05-14
18:05:00.000000000 +0200
@@ -22,9 +22,10 @@
DIR_TO_MOUNT="dev opt var/log"
EXITCODE=0
+VERBOSITY=2
ZYPPER_ARG=""
ZYPPER_NONINTERACTIVE="-y --auto-agree-with-product-licenses"
-ZYPPER_ARG_PKGS=""
+ZYPPER_ARG_PKGS=()
REWRITE_BOOTLOADER=0
REWRITE_GRUB_CFG=0
REWRITE_INITRD=0
@@ -62,48 +63,84 @@
. ${CONFFILE}
fi
+# Log stderr to log file
+exec 4>&2 2> >(tee -a "${LOGFILE}")
+
self_update() {
if [ ${DO_SELF_UPDATE} == 0 ]; then
return
fi
- echo "Checking for newer version."
- if zypper info transactional-update | grep -q '^Status *: out-of-date';
then
- echo "New version found - updating..."
+ log_info "Checking for newer version."
+ if zypper --non-interactive info transactional-update | grep -q '^Status
*: out-of-date'; then
+ log_info "New version found - updating..."
TA_UPDATE_TMPFILE="`mktemp -d /tmp/transactional-update.XXXXXXXXXX`"
if [ $? -ne 0 ]; then
- quit 1;
+ log_error "ERROR: Couldn't create temporary directory for
self-update."
+ quit 1
fi
export TA_UPDATE_TMPFILE
cd "${TA_UPDATE_TMPFILE}"
- zypper --pkg-cache-dir "${TA_UPDATE_TMPFILE}" download
transactional-update
- find . -name transactional-update*.rpm -exec rpm2cpio {} \; | cpio
-idmv >/dev/null
- rm -f "${LOCKFILE}"
+ zypper --non-interactive --pkg-cache-dir "${TA_UPDATE_TMPFILE}"
download transactional-update
+ find . -name transactional-update*.rpm -exec rpm2cpio {} \; | cpio
-idmv 2>/dev/null
+ if [ $? -ne 0 ]; then
+ log_error "ERROR: Couldn't extract the update."
+ quit 1
+ fi
exec "${TA_UPDATE_TMPFILE}/usr/sbin/transactional-update" "$@"
fi
}
usage() {
- echo "Usage: transactional-update --help|--version"
- echo " transactional-update [--no-selfupdate]
[cleanup][up|dup|patch|initrd][kdump][reboot]"
- echo " transactional-update [--no-selfupdate] [cleanup] [reboot] pkg
install|remove|update PKG1..PKGN"
- echo " transactional-update [--no-selfupdate] migration"
- echo " transactional-update [--no-selfupdate] register -p <product>
[-r <registration code>]"
- echo " transactional-update rollback [number]"
+ echo "Syntax: transactional-update [options] [general-command...]
[package-command]"
+ echo " transactional-update [options] individual-command"
+ echo ""
+ echo "Applies modifications to the system to a new snapshot without
touching"
+ echo "the running system."
+ echo ""
+ echo "General Commands:"
+ echo "cleanup Mark removable snapshots"
+ echo "grub.cfg Regenerate grub.cfg"
+ echo "bootloader Reinstall the bootloader"
+ echo "initrd Regenerate initrd"
+ echo "kdump Regenerate kdump initrd"
+ echo "reboot Reboot after update"
+ echo "shell Open rw shell in snapshot before exiting"
+ echo ""
+ echo "Package Commands:"
+ echo "dup Call 'zypper dup --no-allow-vendor-change'"
+ echo "up Call 'zypper up'"
+ echo "patch Call 'zypper patch'"
+ echo "migration Updates systems registered via SCC / SMT"
+ echo "pkg install ... Install individual packages"
+ echo "pkg remove ... Remove individual packages"
+ echo "pkg update ... Updates individual packages"
+ echo ""
+ echo "Individual Commands:"
+ echo "rollback <number> Set given snapshot as default snapshot"
+ echo ""
+ echo "Options:"
+ echo "--no-selfupdate Skip checking for newer version"
+ echo "--quiet Don't print warnings and infos to stdout"
+ echo "--help Display this help and exit"
+ echo "--version Display version and exit"
exit $1
}
print_version() {
echo "transactional-update @VERSION@"
- exit 0;
+ exit 0
}
log_info() {
echo `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE}
+ if [ ${VERBOSITY} -ge 2 ]; then
+ echo "$@"
+ fi
}
log_error() {
- echo `date "+%Y-%m-%d %H:%M "` "$@" >> ${LOGFILE}
+ echo `date "+%Y-%m-%d %H:%M"` "$@" >> ${LOGFILE}
echo "$@" 1>&2
}
@@ -320,7 +357,7 @@
if [ $# -eq 0 ]; then
break;
else
- ZYPPER_ARG_PKGS="${ZYPPER_ARG_PKGS} $1";
+ ZYPPER_ARG_PKGS+=("$1");
shift
fi
done
@@ -378,6 +415,10 @@
DO_SELF_UPDATE=0
shift
;;
+ --quiet)
+ VERBOSITY=1
+ shift
+ ;;
register)
DO_REGISTRATION=1
shift
@@ -411,19 +452,20 @@
done
if [ $# -ne 0 ]; then
- usage 1;
+ usage 1
fi
+# Check if this is a self-updated transactional-update; if it isn't lock and
+# check for update
if [ -z "${TA_UPDATE_TMPFILE}" ]; then
- self_update "${ORIG_ARGS[@]}"
-else
- trap 'rm -rf "${TA_UPDATE_TMPFILE}" && unset TA_UPDATE_TMPFILE' EXIT
-fi
-
-bashlock "/var/run/transactional-update.pid"
-if [ $? -ne 0 ]; then
- echo "Couldn't get lock, is another instance already running?"
- exit 1;
+ bashlock "/var/run/transactional-update.pid"
+ if [ $? -ne 0 ]; then
+ echo "Couldn't get lock, is another instance already running?"
+ exit 1
+ fi
+ self_update "${ORIG_ARGS[@]}"
+else # Set exit handler to clean up artifacts of the self-update
+ trap 'rm -f "$LOCKFILE" && rm -rf "${TA_UPDATE_TMPFILE}" && unset
TA_UPDATE_TMPFILE' EXIT
fi
# Load old state file
@@ -474,18 +516,18 @@
NEED_REBOOT_WARNING=0
fi
- echo "Rollback to snapshot ${ROLLBACK_SNAPSHOT}..."
+ log_info "Rollback to snapshot ${ROLLBACK_SNAPSHOT}..."
if [ ${RO_ROOT} == "true" ]; then
BTRFS_ID=`btrfs subvolume list / |grep
/.snapshots/${ROLLBACK_SNAPSHOT}/snapshot | awk '{print $2}'`
if [ -z $BTRFS_ID ]; then
log_error "ERROR: couldn't determine btrfs subvolume ID"
- exit 1
+ quit 1
else
btrfs subvolume set-default $BTRFS_ID /.snapshots
if [ $? -ne 0 ]; then
log_error "ERROR: btrfs set-default $BTRFS_ID failed!"
- exit 1
+ quit 1
fi
# Create the trigger to re-register the system as new version after
next
# reboot.
@@ -500,7 +542,7 @@
if [ ${NEED_REBOOT_WARNING} -eq 1 ]; then
echo "Please reboot to finish rollback!"
fi
- exit 0;
+ exit 0
fi
#
@@ -577,8 +619,8 @@
# If the current snapshot and the default snapshot differ
# there have been changes that we are now discarding.
if [ "${DEFAULT_SNAPSHOT_ID}" -ne "${CURRENT_SNAPSHOT_ID}" ]; then
- log_error: "WARNING: Default snapshot differs from current snapshot."
- log_error: "WARNING: Any changes within the previous snapshot will be
discarded!"
+ log_info "WARNING: Default snapshot differs from current snapshot."
+ log_info "WARNING: Any changes within the previous snapshot will be
discarded!"
fi
# Check if there are updates at all. Don't check if we do
@@ -590,7 +632,7 @@
fi
TMPFILE=`mktemp /tmp/transactional-update.XXXXXXXXXX`
- zypper --xml ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} --dry-run
${ZYPPER_ARG_PKGS} > ${TMPFILE}
+ zypper --xml ${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} --dry-run
"${ZYPPER_ARG_PKGS[@]}" > ${TMPFILE}
if [ $? -ne 0 ]; then
LOG_MESSAGES=`awk -v RS='<' -v FS='>' '{if ($1 ~
/^(message|description)/) print $2}' ${TMPFILE} | perl -MHTML::Entities -pe
'decode_entities($_);'`
log_error "ERROR: Zypper failed with the following message(s):"
@@ -627,7 +669,7 @@
BACKUP_SNAPSHOT_ID=`snapper --no-dbus create -p -t pre -c number -u
"important=yes" -d "RO-Clone of #${CURRENT_SNAPSHOT_ID}"`
if [ $? -ne 0 ]; then
log_error "ERROR: snapper create failed!"
- exit 1
+ quit 1
fi
fi
@@ -635,15 +677,15 @@
btrfs property set ${BACKUP_SNAPSHOT_DIR} ro false
if [ $? -ne 0 ]; then
log_error "ERROR: changing ${BACKUP_SNAPSHOT_DIR} to read-write failed!"
- quit 1;
+ quit 1
fi
# Copy the contents of /etc into the backup snapshot
log_info "Copying /etc state into backup snapshot"
- rsync --archive --xattrs --acls --quiet --delete-excluded /etc
${BACKUP_SNAPSHOT_DIR}
+ rsync --archive --xattrs --acls --quiet /etc ${BACKUP_SNAPSHOT_DIR}
if [ $? -ne 0 ]; then
log_error "ERROR: copying of /etc into backup snapshot failed!"
- quit 1;
+ quit 1
fi
# Create the working snapshot
@@ -663,7 +705,7 @@
btrfs property set ${SNAPSHOT_DIR} ro false
if [ $? -ne 0 ]; then
log_error "ERROR: changing ${SNAPSHOT_DIR} to read-write failed!"
- quit 1;
+ quit 1
fi
# Remember all snapshots we create for update. If transactional-update is
@@ -677,7 +719,7 @@
touch ${SNAPSHOT_DIR}/var/tmp/update_snapshot.test
if [ $? -ne 0 ]; then
log_error "ERROR: System installation is too old!"
- quit 1;
+ quit 1
fi
rm -f ${SNAPSHOT_DIR}/var/tmp/update_snapshot.test
else
@@ -686,7 +728,7 @@
touch ${SNAPSHOT_DIR}/var/update_snapshot.test
if [ $? -ne 0 ]; then
log_error "ERROR: System installation is broken!"
- quit 1;
+ quit 1
fi
rm -f ${SNAPSHOT_DIR}/var/update_snapshot.test
fi
@@ -699,19 +741,18 @@
# Check which directories in /boot/grub2 need to be mounted,
# otherwise grub2 will not boot after a version update.
- DIR_TO_MOUNT="${DIR_TO_MOUNT} $(awk '$2 ~ /\/boot\/grub2\// { print $2 }'
/proc/mounts)"
-
+ DIR_TO_MOUNT="${DIR_TO_MOUNT} $(awk '$2 ~ /^\/boot\/grub2\// { print $2 }'
/proc/mounts)"
# Mount everything we need:
mount -t proc none ${SNAPSHOT_DIR}/proc
if [ $? -ne 0 ]; then
log_error "ERROR: mount of proc failed!"
- quit 1;
+ quit 1
fi
mount -t sysfs sys ${SNAPSHOT_DIR}/sys
if [ $? -ne 0 ]; then
log_error "ERROR: mount of sys failed!"
- quit 1;
+ quit 1
fi
if [ -x /usr/sbin/selinuxenabled ]; then
/usr/sbin/selinuxenabled
@@ -719,7 +760,7 @@
mount -t selinuxfs selinux ${SNAPSHOT_DIR}/sys/fs/selinux
if [ $? -ne 0 ]; then
log_error "ERROR: mount of sys failed!"
- quit 1;
+ quit 1
fi
fi
fi
@@ -730,16 +771,16 @@
mount -o bind /$directory ${SNAPSHOT_DIR}/$directory
if [ $? -ne 0 ]; then
log_error "ERROR: mount of $directory failed!"
- quit 1;
+ quit 1
fi
done
# Copy the contents of /etc
log_info "Copying /etc state into snapshot"
- rsync --archive --xattrs --acls --quiet --delete-excluded /etc
${SNAPSHOT_DIR}
+ rsync --archive --xattrs --acls --quiet /etc ${SNAPSHOT_DIR}
if [ $? -ne 0 ]; then
log_error "ERROR: copying of /etc into snapshot failed!"
- quit 1;
+ quit 1
fi
# If we have a seperate /var, create some directories which we
@@ -779,12 +820,14 @@
if [ -n "${ZYPPER_ARG}" ]; then
log_info "Calling zypper ${ZYPPER_ARG}"
+ # All transactional-update zypper commands except migration and pkg
if [ -n "${ZYPPER_NONINTERACTIVE}" ]; then
- env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR}
${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} ${ZYPPER_ARG_PKGS} |& tee -a ${LOGFILE}
+ env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR}
${ZYPPER_ARG} ${ZYPPER_NONINTERACTIVE} "${ZYPPER_ARG_PKGS[@]}" |& tee -a
${LOGFILE}
RETVAL=${PIPESTATUS[0]}
else
+ # transactional-update migration
if [ ${DO_MIGRATION} -eq 1 ]; then
- chroot ${MOUNT_DIR} env DISABLE_RESTART_ON_UPDATE=yes zypper
${ZYPPER_ARG} ${ZYPPER_ARG_PKGS}
+ chroot ${MOUNT_DIR} env DISABLE_RESTART_ON_UPDATE=yes zypper
${ZYPPER_ARG} "${ZYPPER_ARG_PKGS[@]}"
RETVAL=$?
# Reset registration until reboot. Needed in both cases,
# whether an error occured or whether we had success.
@@ -794,8 +837,9 @@
# reboot.
check_registration_on_next_reboot
fi
+ # transactional-update pkg
else
- env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR}
${ZYPPER_ARG} ${ZYPPER_ARG_PKGS}
+ env DISABLE_RESTART_ON_UPDATE=yes zypper -R ${MOUNT_DIR}
${ZYPPER_ARG} "${ZYPPER_ARG_PKGS[@]}"
RETVAL=$?
fi
fi
@@ -850,7 +894,7 @@
if [ ${RUN_SHELL} -eq 1 ]; then
echo "Opening chroot in snapshot ${SNAPSHOT_ID}, continue with 'exit'"
- env PS1="transactional update # " chroot ${MOUNT_DIR} bash
+ env PS1="transactional update # " chroot ${MOUNT_DIR} bash 2>&4
fi
# Unset variable
@@ -933,6 +977,8 @@
if [ ${EXITCODE} -ne 0 ]; then
quit ${EXITCODE}
+ elif [ $REBOOT_AFTERWARDS -eq 0 ]; then
+ echo "Please reboot your machine to activate the changes and avoid data
loss."
fi
fi
@@ -957,10 +1003,8 @@
reboot_autodetect
;;
esac
- echo "The system couldn't be rebooted using method '{$REBOOT_METHOD}'.
Please reboot the system"
+ echo "The system couldn't be rebooted using method '${REBOOT_METHOD}'.
Please reboot the system"
echo "manually."
- elif [ $PACKAGE_UPDATES -gt 1 ]; then
- echo "Please reboot your machine to activate the changes and avoid data
loss"
fi
fi