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 恢复正常。

相关推荐
迎風吹頭髮25 分钟前
Linux内核架构浅谈8-Linux内核与UNIX的传承:设计思想与特性差异
linux·运维·架构
黑马金牌编程1 小时前
Linux 服务器常见的性能调优
linux·运维·服务器·性能优化
jieyu11191 小时前
网络、主机安全扫描工具
linux·安全·系统安全
tianyuanwo1 小时前
Linux进程管理中的T状态问题分析与解决体系
linux·运维·进程管理·t状态
liuyao_xianhui2 小时前
Linux_基本指令1
linux·运维·服务器
守望时空332 小时前
Linux挂载NTFS分区指南
linux
shan~~3 小时前
linux达梦数据库操作
linux·数据库·chrome
liliangcsdn3 小时前
LLM时代基于unstructured解析非结构化pdf
linux·服务器·数据分析
Codigger官方4 小时前
Linux 基金会牵头成立 React 基金会:前端开源生态迎来里程碑式变革
linux·前端·react.js
武文斌774 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习