删除一些我不再需要的服务器并删除已删除软件包的用户和组后,尝试安装软件包。去获取并安装一个新包,并得到以下错误。
user@localhost~$ sudo apt-get install any-package
... package installation output omitted for brevity ...
dpkg: unrecoverable fatal error, aborting:
syntax error: unknown user 'puppet' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)
所以 /usr/bin/dpkg-statoverride 有一个删除路径的选项,但是当我尝试在整个 apt-get 安装上下文之外运行它时,二进制文件会抛出同样的错误。
所以我只是添加了用户木偶,我可以再次下载包,但我试图从我的开发系统中删除任何无关的元素,所以就我而言,这不是一个解决方案,因为它有效.
据我所知,statoverride 告诉包管理器将某些东西安装到某个路径,并与 setuid 标志混淆,因此它可能会通过安装由一个共同拥有的程序来打开一堆安全漏洞未使用的用户和组。当用户被删除时,dpkg-statoverride 是否没有与系统的其余部分一起更新?有没有办法避免这种情况,这样我就不必 :adduser -> install -> deluser: 每次我想安装一个包?
你可以试试这个:
应该从 statoverride 中删除用户并允许您再次安装