You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 16.04服务器apt升级systemd失败:用户/组已存在

解决Ubuntu 16.04升级systemd时用户/组已存在的终止问题

我之前也踩过这个坑!在Ubuntu 16.04服务器上执行apt update && apt upgrade升级systemd时,确实会因为预定义的systemd相关用户、组已存在,导致升级流程直接卡壳终止。结合你提到的之前迁移过系统用户UID的背景,下面是亲测有效的解决流程:

第一步:确认冲突的用户和组

先明确到底是哪些systemd相关的用户/组引发了冲突,执行以下命令查看:

# 查看含systemd的系统用户
cat /etc/passwd | grep systemd
# 查看含systemd的系统组
cat /etc/group | grep systemd

通常冲突的是systemd-journalsystemd-networksystemd-resolve这类默认用户组。

第二步:删除冲突的用户和组

注意要先删除用户,再删除对应的组(替换成你实际查到的用户名/组名):

# 删除用户并清理其主目录、邮件池
userdel -r systemd-journal
userdel -r systemd-network
# 删除对应的系统组
groupdel systemd-journal
groupdel systemd-network

小提示:如果删除时提示“用户正在使用”,可以先重启服务器,或者用pkill -u 用户名杀掉相关进程后再执行删除操作。

第三步:重新执行系统升级

删除完成后,重新运行升级命令:

apt update && apt upgrade

这时候systemd相关包就能正常完成安装,包管理器会自动重新创建符合要求的用户和组,不会再因为“已存在”的问题终止流程。

问题根源说明

你之前为了适配程序需求,把系统用户迁移到了非100段UID范围,而Ubuntu 16.04的systemd包在安装时,会尝试创建固定UID/GID的专属用户组。如果这些用户组已经在你的迁移操作中被创建(或残留),apt的后置安装脚本就会触发报错终止。删除后让包管理器重新创建,就能匹配systemd所需的标准UID/GID配置。

内容的提问来源于stack exchange,提问作者BenK

火山引擎 最新活动