aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Boilleau <david_boilleau@gmx.fr>2024-11-08 15:10:24 +0100
committerLudovic Courtès <ludo@gnu.org>2024-11-14 15:41:22 +0100
commite62dc1ebd0c5afe3b227d1967cae6502589b9b84 (patch)
treee7a91ccf5354648ceb239558a1c192ebff3a13d3
parent8edd08116452bf6ecd3eff7a7f98f9b0991097df (diff)
downloadguix-e62dc1ebd0c5afe3b227d1967cae6502589b9b84.tar.gz
guix-e62dc1ebd0c5afe3b227d1967cae6502589b9b84.zip
guix-install.sh: Run the uninstall even if already partially done
Removing users, groups or Systemd units fails if they are already absent, causing the uninstall script to exit. The goal here is to make the uninstall always run entirely, whatever parts are already done. * etc/guix-install.sh (sys_delete_build_user): Test if users and groups exist before deleting them. (sys_delete_guix_daemon): Test if /etc/systemd/system/guix-daemon.service file exists before removing the matching Systemd unit. Change-Id: Ibffb1f1b39de675542fb8057af21ecaea1b53d4c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rwxr-xr-xetc/guix-install.sh22
1 files changed, 14 insertions, 8 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 7fb5ac63c5..f07b2741bb 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -451,11 +451,15 @@ sys_create_build_user()
sys_delete_build_user()
{
for i in $(seq -w 1 10); do
- userdel -f guixbuilder${i}
+ if id -u "guixbuilder${i}" &>/dev/null; then
+ userdel -f guixbuilder${i}
+ fi
done
_msg "${INF}delete group guixbuild"
- groupdel -f guixbuild
+ if getent group guixbuild &>/dev/null; then
+ groupdel -f guixbuild
+ fi
}
sys_enable_guix_daemon()
@@ -569,12 +573,14 @@ sys_delete_guix_daemon()
;;
systemd)
- _msg "${INF}disabling guix-daemon"
- systemctl disable guix-daemon
- _msg "${INF}stopping guix-daemon"
- systemctl stop guix-daemon
- _msg "${INF}removing guix-daemon"
- rm -f /etc/systemd/system/guix-daemon.service
+ if [ -f /etc/systemd/system/guix-daemon.service ]; then
+ _msg "${INF}disabling guix-daemon"
+ systemctl disable guix-daemon
+ _msg "${INF}stopping guix-daemon"
+ systemctl stop guix-daemon
+ _msg "${INF}removing guix-daemon"
+ rm -f /etc/systemd/system/guix-daemon.service
+ fi
if [ -f /etc/systemd/system/gnu-store.mount ]; then
_msg "${INF}disabling gnu-store.mount"