当前位置: 首页 > news >正文

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:

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

发现其中有

update-passwd --verbose

这个命令。

因此,执行

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 命令会执行什么操作,使用:

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 命令修改:

vi /etc/passwd

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

http://www.lryc.cn/news/180418.html

相关文章:

  • XXL-JOB分布式任务调度
  • 加拿大人工智能数据搜索平台【Secoda】完成1400万美元A轮融资
  • less与sass
  • c-const修饰指针-day16
  • 已解决: Go Error: no Go files in /path/to/directory问题
  • 2022年6月和7月的工作经历
  • 【图像处理】SIFT角点特征提取原理
  • flutter开发实战-应用更新apk下载、安装apk、启动应用实现
  • DispatcherServlet初始化之Spring容器创建1.0
  • CSS的基础
  • mathtype如何嵌入到word中?详细mathtype安装步骤教程
  • 云安全之访问控制的常见攻击及防御
  • Java编程技巧:跨域
  • react create-react-app 配置less
  • 树的表示——孩子兄弟表示法
  • Windows11安装MySQL8.1
  • Linux编程——经典链表list_head
  • 基于51单片机NEC协议红外遥控发送接收仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
  • Jmeter分布式压力测试
  • Rust :mod.rs和lib.rs中use的作用
  • ISP图像信号处理——平场校正介绍以及C++实现
  • 【深入了解Java String类】
  • 基于SpringBoot的知识管理系统
  • Pytorch基础:Tensor的reshape方法
  • 【数据库——MySQL】(13)过程式对象程序设计——存储函数、错误处理以及事务管理
  • Spring Boot的魔法:构建高性能Java应用
  • 如何做好测试?(七)兼容性测试 (Compatibility Testing, CT)
  • 经典循环神经网络(一)RNN及其在歌词数据集上的应用
  • docker+mysql+flask+redis+vue3+uwsgi+docker部署
  • Spring boot接收zip包并获取其中excel文件的方法