Lors de mon upgrade vers 12.3-RELEASE
, je n'ai pu mettre à jour aucune jail avec pour message d'erreur :
root@nocloud ~ $ iocage upgrade -r 12.3-RELEASE jail
etcupdate failed! Rolling back snapshot.
Je teste la création d'une nouvelle jail :
root@nocloud ~ $ iocage create -r 12.3-RELEASE -b -n jail
jail successfully created!
A priori ça ne vient pas de la basejail. Je tente une jail en 12.2 puis upgrade vers 12.3 :
root@nocloud ~ $ iocage create -r 12.2-RELEASE -b -n jail2
jail2 successfully created!
root@nocloud ~ $ iocage upgrade -r 12.3-RELEASE jail2
jail2 successfully upgraded from 12.2-RELEASE-p15 to 12.3-RELEASE-p4!
Please reboot the jail and inspect.
Au moins la stack iocage semble fonctionnelle… Il n'y avait rien de probant dans les logs /var/log/iocage.log
ou /usr/iocage/log/jail-console.log
.
Comme iocage est écrit en python :
root@nocloud ~ $ grep -ir etcupdate /usr/local/lib/python3.8/site-packages/iocage_*
/usr/local/lib/python3.8/site-packages/iocage_lib/ioc_upgrade.py: etcupdate_cmd = [
/usr/local/lib/python3.8/site-packages/iocage_lib/ioc_upgrade.py: "/usr/sbin/etcupdate", "-F", "-s", "/iocage_upgrade"
/usr/local/lib/python3.8/site-packages/iocage_lib/ioc_upgrade.py: etcupdate_cmd,
/usr/local/lib/python3.8/site-packages/iocage_lib/ioc_upgrade.py: msg = "etcupdate failed! Rolling back snapshot."
On voit que la commande exécutée est bien etcupdate
. Je teste dans la jail :
jail ~ ❯❯❯ etcupdate
Conflicts remain from previous update, aborting.
jail ~ ❯❯❯ etcupdate resolve
Resolving conflict in '/root/.cshrc':
Select: (p) postpone, (df) diff-full, (e) edit,
(h) help for more options: e
Je m'aperçois que ça concerne le cshrc du root /var/db/etcupdate/conflicts/root/.cshrc
et qui est daté de mon ancienne upgrade. Le conflit ne concerne rien qui doit être conservé :
jail ~ ❯❯❯ rm -f /var/db/etcupdate/conflicts/root/.cshrc
Je n'ai plus d'erreur avec etcupdate
. Je retente :
root@nocloud ~ $ iocage snapremove -n ioc_upgrade_2022-04-04 jail2
root@nocloud ~ $ iocage upgrade -r 12.3-RELEASE jail2
jail2 successfully upgraded from 12.2-RELEASE-p15 to 12.3-RELEASE-p4!
Please reboot the jail and inspect.
Remove the snapshot: ioc_upgrade_2022-04-04 if everything is OK
Plus qu'à supprimer partout, cleaner les snapshots et refaire l'upgrade :
root@nocloud ~ $ for j in $(iocage list -qh | awk '{ print $1 }'); do rm -rf /usr/iocage/jails/$j/root/var/db/etcupdate/conflicts/root; done
root@nocloud ~ $ for j in $(iocage list -qh | awk '{ print $1 }'); do iocage snapremove -n ioc_upgrade_2022-04-04 $j; done
root@nocloud ~ $ for j in $(iocage list -qh | awk '{ print $1 }'); do iocage upgrade -r 12.3-RELEASE $j ;done
:)
Commentaires