Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Feb 2014 20:22:50 -0600
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Kai Gallasch <k@free.de>, freebsd-pkg@freebsd.org
Subject:   Re: pkg snapshot and pkg rollback functionality
Message-ID:  <530BFE7A.6010302@FreeBSD.org>
In-Reply-To: <95F734F1-21C5-4DAC-ADC2-AF730B115237@free.de>
References:  <95F734F1-21C5-4DAC-ADC2-AF730B115237@free.de>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--bHw0o7xBhD0q3O7geHETsbp3L34j29ODS
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 1/31/2014 4:52 AM, Kai Gallasch wrote:
> Hi.
>=20
> I am using pkg in combination with my own poudriere repos to install an=
d maintain a lot of FreeBSD servers and jails.
>=20
> When upgrading FreeBSD installations I often run into the following pro=
blem:
>=20
> After I did a "pkg upgrade" I find out the hard way, that upgraded appl=
ications are broken (software bug, config changed, incompatible dependenc=
ies, etc.) and I need to go back to the state, before the pkg upgrade.
> I normally get around this bis doing a "zfs snapshot" and a rollback af=
ter I broke something with pkg upgrade..
>=20
> What is your preferred method of rolling back a troublesome pkg upgrade=
?
>=20
> Wouldn't it be nice to have a "pkg snapshot" and "pkg rollback" functio=
nality in pkg itself?
>=20
> The upgrade cycle would then be:
>=20
> a) pkg snapshot --create --comment "before upgrade to php 5.3.38"
> b) pkg upgrade
> c) bang!! php trouble..
> d) pkg snapshot --rollback --last
>=20
> This could be implemented in a way to lock all packages in the local pa=
ckage cache of the upgraded system, that are connected to a certain exist=
ing pkg snapshot.
>=20
> -- example --
>=20
> # pkg clean
> The following package files will be deleted from the cache directory
> /var/cache/pkg:
>=20
> Package:                       Origin:              Reason:
> All/bash-4.2.45.txz            shells/bash          Superseded by bash-=
4.2.45_1
> All/pkg-1.2.1.txz              ports-mgmt/pkg       Superseded by pkg-1=
=2E2.5
> All/openssl-1.0.1_8.txz        security/openssl     Superseded by opens=
sl-1.0.1_9
> All/sqlite3-3.8.0.2.txz        databases/sqlite3    Superseded by sqlit=
e3-3.8.2
> All/p5-Socket6-0.25.txz        net/p5-Socket6       Superseded by p5-So=
cket6-0.25_1
>=20
> The following package files are locked and cannot be deleted from the c=
ache
> directory, because they belong to an existing snapshot. Please delete s=
napshot first!
>=20
> All/python27-2.7.6.txz         lang/python27        needed by snapshot =
$snapshot_uuid
> All/p5-DateTime-1.04.txz       devel/p5-DateTime    needed by snapshot =
$snapshot_uuid
>=20
> -- example --
>=20
> Other functions:
>=20
> - pkg snapshot --list
> - pkg snapshot --delete --$snapshot_uuid
>=20
>=20
> I think such a snapshot/rollback option for pkg would be very beneficia=
l, because it would give you the option to "roll back" your pkg to every =
former frozen state in an orderly manner. Even after you find out a week =
later that doing an upgrade was not such a splendig idea.
>=20
> What do you think?
>=20
> K.
>=20
>=20
> --
> GPG-Key: A593 E38B E968 4DBE 14D6  2115 7065 4D7C 4FB1 F588
> Key available from hkps://hkps.pool.sks-keyservers.net
>=20

I like the concept. You can do this with ZFS plugin currently.

https://github.com/freebsd/pkg-plugins/blob/master/zfssnap/README.md

Also, poudriere 3.1 (not yet released) has a feature that will allow you
to rollback to your previous set. It will keep N builds around for you.
So if an upgrade goes bad you can change your repo to point to one of
the older ones and run pkg upgrade -f to rollback.

I was just thinking the other day of having pkg keep backups of upgraded
packages. That would allow you to downgrade to a previous working set as
well.

--=20
Regards,
Bryan Drewery


--bHw0o7xBhD0q3O7geHETsbp3L34j29ODS
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTC/56AAoJEDXXcbtuRpfPkNAIANwC7xsOimi8N1lhAc9Jjr0N
s+VDBH6F3Q7SuT1oE13i1x4f0bTDiMUQQ7CHyFYprGDASnvlHA4ZTGe50uHjI/Ky
GdIZ6FIlnEWI5KiiWx81QnWcj9BGAuTvmgbJUxI8k8WlYTPIcdqvSPN3cY7P/s/r
ehD+bgzBfFb0qJUi1VDNDgbuQjm861ID+UwrABcrERGDq9mb2Qx0FNlR1a8+JtHT
IjMhWp/HrBQtJdDYeZEn8sWveysWEKBMsSBfvrSaa2rGVl4FSpCOmXOlEldMh28N
qLQmKdaw25DUxlWQhlgz6UGRSR4qVLQtKim5WILjFEgB8dtR0jwCvbIt6YJAys0=
=MlVh
-----END PGP SIGNATURE-----

--bHw0o7xBhD0q3O7geHETsbp3L34j29ODS--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?530BFE7A.6010302>