为什么“apt --reinstall”不能恢复丢失的文件?

为什么“apt --reinstall”不能恢复丢失的文件?

认为已/etc/skel/.profile被修改,我试图找到哪个包提供了这个文件:

$ dpkg -S  /etc/skel/.profile 
bash: /etc/skel/.profile
$ apt-file list bash | head
bash: /bin/bash
bash: /bin/rbash
bash: /etc/bash.bashrc
bash: /etc/skel/.bash_logout
bash: /etc/skel/.bashrc
bash: /etc/skel/.profile
bash: /usr/bin/bashbug
bash: /usr/bin/clear_console
bash: /usr/share/debianutils/shells.d/bash
bash: /usr/share/doc/bash/COMPAT.gz

因此,我移动了该文件并尝试:

$ sudo apt --reinstall install bash

然而,该文件/etc/skel/.profile并未重新创建。

  1. 为什么会这样?我在想,如果某些文件(包中的)被删除或损坏,我可以使用该--reinstall选项轻松恢复它们。
  2. 我怎样才能从它提供的包中恢复丢失的文件?

显然,$ sudo apt purge bash ; sudo apt install bash在这种特殊情况下这不是一个选择!

答案1

  1. 根据您的评论,强制重新安装:

    sudo apt install --reinstall -o dpkg::Options::="--force-confask,confnew,confmiss" bash

  2. 您可以获取源包,并从中获取 skel.profile。

    sudo apt-get 源 bash

该软件包将以 xz 压缩的 tar 文件形式放入您当前的目录中,提取 debian/skel.profile 并在 /etc/skel 中重命名为 .profile

相关内容