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>