重新安装所有 Debian 软件包

ale*_*der 28 debian apt package-management

我错误地杀死了在后台运行的 dpkg 进程,我想重新安装所有软件包以确保一切正常。

首先,我尝试获取所有软件包的列表并重新安装它们

dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log
apt-get install --reinstall $(cat list.log)
Run Code Online (Sandbox Code Playgroud)

但是有这样的消息:

E: Couldn't configure pre-depend debconf:i386 for console-setup:i386, probably a dependency cycle.
Run Code Online (Sandbox Code Playgroud)

我试过了apt-get -f install,没有成功。

作为最后的手段,我重新安装了所有校验和失败的程序:

dpkg -l | grep ^ii | awk '{ print $2 }' | xargs debsums -s -a
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能重新安装所有内容?

编辑:问题解决。问题是别的(见评论)。我知道这是 Debian 需要避免的事情。

Mar*_*lla 14

试试这个,记住,我并没有测试它:

dpkg --get-selections > selections
sudo dpkg --clear-selections
sudo dpkg --set-selections < selections
sudo apt-get --reinstall dselect-upgrade
Run Code Online (Sandbox Code Playgroud)

资料来源:

  • 尽管填充了选择文件,但没有重新安装任何东西: pi@prodpi ~ $ sudo apt-get --reinstall dselect-upgrade 读取软件包列表...完成 构建依赖树 读取状态信息...完成 0 升级, 0 新安装,0 删除,0 未升级。任何的想法? (2认同)

goe*_*tzc 11

使用 Aptitude 时,有一种简单快捷的方法:

sudo aptitude reinstall '~i'

这将重新安装所有当前安装的软件包。

  • 额外问题:如何让它跳过无法重新获取的包,而不是在单个包不再可用时拒绝执行任何操作? (4认同)
  • 这也适用于最新 Debian 版本上的“apt”。 (4认同)
  • @user149408 - 我找不到自动执行此操作的方法,但是如果上面的 aptitude 命令失败并显示一堆“找不到下载版本的源...”,那么您只需将该包名称附加到命令,否定。例如,如果 aptitude 找不到 `plocate`,您可以运行:`aptitude reinstall '~i !plocate'`。 (2认同)

小智 5

以防万一,请尝试重新安装每个软件包

for i in $(cat list.log); do apt-get install --reinstall "$i"; done
Run Code Online (Sandbox Code Playgroud)

您可能还希望对所有问题选项添加“是”答案。