Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Jan 2014 11:52:41 +0100
From:      Kai Gallasch <k@free.de>
To:        freebsd-pkg@freebsd.org
Subject:   pkg snapshot and pkg rollback functionality
Message-ID:  <95F734F1-21C5-4DAC-ADC2-AF730B115237@free.de>

next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--Apple-Mail-42-541501050
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=us-ascii

Hi.

I am using pkg in combination with my own poudriere repos to install and =
maintain a lot of FreeBSD servers and jails.

When upgrading FreeBSD installations I often run into the following =
problem:

After I did a "pkg upgrade" I find out the hard way, that upgraded =
applications are broken (software bug, config changed, incompatible =
dependencies, 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 =
after I broke something with pkg upgrade..

What is your preferred method of rolling back a troublesome pkg upgrade?

Wouldn't it be nice to have a "pkg snapshot" and "pkg rollback" =
functionality in pkg itself?

The upgrade cycle would then be:

a) pkg snapshot --create --comment "before upgrade to php 5.3.38"
b) pkg upgrade
c) bang!! php trouble..
d) pkg snapshot --rollback --last

This could be implemented in a way to lock all packages in the local =
package cache of the upgraded system, that are connected to a certain =
existing pkg snapshot.

-- example --

# pkg clean
The following package files will be deleted from the cache directory
/var/cache/pkg:

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.2.5
All/openssl-1.0.1_8.txz        security/openssl     Superseded by =
openssl-1.0.1_9
All/sqlite3-3.8.0.2.txz        databases/sqlite3    Superseded by =
sqlite3-3.8.2
All/p5-Socket6-0.25.txz        net/p5-Socket6       Superseded by =
p5-Socket6-0.25_1

The following package files are locked and cannot be deleted from the =
cache
directory, because they belong to an existing snapshot. Please delete =
snapshot first!

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

-- example --

Other functions:

- pkg snapshot --list
- pkg snapshot --delete --$snapshot_uuid


I think such a snapshot/rollback option for pkg would be very =
beneficial, 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.

What do you think?

K.


--
GPG-Key: A593 E38B E968 4DBE 14D6  2115 7065 4D7C 4FB1 F588
Key available from hkps://hkps.pool.sks-keyservers.net

--Apple-Mail-42-541501050
content-type: application/pgp-signature; x-mac-type=70674453;
	name=PGP.sig
content-description: Signierter Teil der Nachricht
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCgAGBQJS64B5AAoJEHBlTXxPsfWIZPsQAKSuJxE6YuO+jEH9VO/bChbT
oH5tkJUdgPs4ioZuDnbzloQRKdiNaCoffXSFF0Ks67zqtcWQAOVv2fpMlWLGdt/6
kCulA5MHiiuqa7E3BVHvg9Yhhf/p55GmyAr9IfNbC0moofko12nc9w9AS3VSeBC4
5qwavHER28ZkYhcMeF4U+hYCPHHSYEGHXA1ZuXWZjp9eawTO6jtDEFORbNQmX2EB
BVckWIhVH1AJeDty1Q1mPAdGQkwxuhArbnQ4NvbLPMlOb0ibLqAsO5gANc2GSk7V
gEGuz5F+vEp1qGERMVOaV8xF0LG4gKuhGDkwuqqMRb3k6sS5xEeq1KJ6pm4VSAbY
iNwKjb4Sm7bbei1pjRuvr2mGhKaOcsQNI6NOBkIt2MX8Fow9TjmvhmKOObqc7VXW
n6sSaAUavKo9rrpTlhrXwGbHKoVjclazrHbWchmygJq2rTRVasIyf/NyYpdqIFZX
Y/GneXP/GEcgVhDKpBLQoSfDjxS9s1K9ZFL+rDPAAoUzOFkYXPEAkqYpowJw8BFs
0fuqYagDhpd5couWbyE42pORRUan8U8WegvhywKAUyjZSAoo2BdNZ3puAepPMvX2
hYzklElnD4OylR/vBD5C4ZCqysFxCsaDw6nQSXZwkJ6E5w2DsJ/8G6VtiiadafQg
m8+IE7pvkzKp0HZuyOuR
=DLUu
-----END PGP SIGNATURE-----

--Apple-Mail-42-541501050--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?95F734F1-21C5-4DAC-ADC2-AF730B115237>