Ubuntu `apt` 报错 “Errors were encountered while processing: base-passwd“ 的解决方法

Ubuntu apt 更新时出现报错:

复制代码
Setting up base-passwd (3.5.52build1) ...
Changing home-directory of irc from /var/run/ircd to /run/ircd
1 changes have been made, rewriting files
Writing passwd-file to /etc/passwd
Error making backupfile /etc/passwd.org: Invalid cross-device link
dpkg: error processing package base-passwd (--configure):
 installed base-passwd package post-installation script subprocess returned error exit status 4
Errors were encountered while processing:
 base-passwd
E: Sub-process /usr/bin/dpkg returned an error code (1)

由于是 postinst hook 阶段出现问题,想到需要检查这个 hook:

sh 复制代码
apt download base-passwd
dpkg-deb -xv base-passwd_*.deb base-passwd_extracted/
dpkg-deb -e base-passwd_*.deb base-passwd_extracted/DEBIAN
cat base-passwd_extracted/DEBIAN/postinst

发现其中有

sh 复制代码
update-passwd --verbose

这个命令。

因此,执行

sh 复制代码
sudo update-passwd --verbose

命令输出:

复制代码
Changing home-directory of irc from /var/run/ircd to /run/ircd
1 changes have been made, rewriting files
Writing passwd-file to /etc/passwd
Error making backupfile /etc/passwd.org: Invalid cross-device link

这就是产生错误的原因。

要知道 update-passwd 命令会执行什么操作,使用:

sh 复制代码
sudo update-passwd --verbose --dry-run

命令输出:

复制代码
Reading passwd from /usr/share/base-passwd/passwd.master
Reading group from /usr/share/base-passwd/group.master
Reading passwd from /etc/passwd
Reading shadow from /etc/shadow
Reading group from /etc/group
Changing home-directory of irc from /var/run/ircd to /run/ircd
Would commit 1 changes

由此可见,该命令执行失败的操作是

复制代码
Changing home-directory of irc from /var/run/ircd to /run/ircd

因此,我手动使用 vi 命令修改:

sh 复制代码
vi /etc/passwd

根据上面的提示,找到 irc,将对应的 /var/run/ircd 改为 /run/ircd。修改后 apt 恢复正常。

相关推荐
_Emma_7 分钟前
【Linux media】Linux Media Driver Framework
linux·服务器·视频
A_QXBlms20 分钟前
企业微信客户管理自动化:利用API同步客户标签与画像
运维·自动化·企业微信
如来神掌十八式23 分钟前
nginx基础知识
运维·nginx
网络点点滴27 分钟前
创建一个简单的web服务器
运维·服务器·前端
萝卜小白33 分钟前
算法实习学习记录-day01
linux·服务器
私人珍藏库37 分钟前
【Android】Operit AI v1.10.0+11 豆包ai手机开源版 自动化手机
运维·自动化
浮槎来1 小时前
光伏组件的PID学习
运维·学习·硬件工程·光伏
热爱专研AI的学妹1 小时前
DataEyes API:一站式大模型聚合网关,600 + 模型统一调用与负载均衡实战方案
运维·负载均衡
cyber_两只龙宝1 小时前
【Oracle】Oracle之SQL中的单行函数
linux·运维·数据库·sql·云原生·oracle
成都被卷死的程序员1 小时前
RustDesk 自建远程控制服务器部署全记录(含错误排查与最终方案)
运维·服务器