我在运行 ubuntu 服务器的 htpc 上安装了一个名为 mediatomb 的应用程序,几个月前我卸载了它并用 Plex 安装替换了它。在周末查询机器上现有用户时,我注意到 mediatomb 用户和组仍然存在,所以我使用了命令
sudo deluser mediatomb
Run Code Online (Sandbox Code Playgroud)
删除用户。一天左右后,我去安装了 htop,sudo apt-get install htop
但我发现我收到了一个错误:
语法错误:statoverride 文件中存在未知用户“mediatomb”。
我以为我只能使用 nano 打开 statoverride 文件并编辑出对 mediatomb 的任何引用,但我无法使用 nano 正确打开文件。我运行了一个 grep 命令
grep 'mediatomb' /var/lib/dpkg/statoverride
它返回文件中不再存在于系统上的两个位置。我现在能够解决这个问题的唯一方法是重新创建用户 mediatomb,然后一切正常。显然,这不是一个好的长期解决方案。
我想知道的是,statoverride 文件是什么,为什么它会保留已从系统中删除的用户?我是否以错误或不推荐的方式删除用户?
bla*_*cat 74
我知道这个问题有点老了,但现在已经遇到过两次了。一次拥有puppet
,一次拥有virtualbox
。它再次出现,我找到了一些有效的方法。这是serverfault.com上的一个变体。
而不是依赖于dpkg-statoverride --remove /path/to/offending/file.ext
哪个,抛出错误
dpkg: unrecoverable fatal error, aborting:
syntax error: unknown group offendinggroup in statoverride file
Run Code Online (Sandbox Code Playgroud)
您可以喜欢sed
,或者您可以简单地/var/lib/dpkg/statoverride
在您喜欢的文本编辑器中打开并仅删除包含导致错误的项目的行。我发现这是一个记录在案的错误,对于 Debian 和 Ubuntu,
也就是说,我只是通过手动编辑掉任何引发错误的条目来修复我的,并且我很高兴再次下载软件包。希望这可以帮助下一个访问此问题的第 1 个 Google 搜索结果的人。
Hal*_*all 16
虽然我不能回答你的问题,但我可以帮助你解决你的困境。在使用“用户帐户”删除用户“backuppc”后,我遇到了与您完全相同的问题 - 我手动为备份配置的用户。好吧,我取消了这条路线,但直到几周后(即今天)才尝试删除用户。在 Update Manager 找到并尝试应用更新之前,我没有遇到任何问题;该过程将无法读取
dpkg: unrecoverable fatal error, aborting:
syntax error: unknown user 'backuppc' in statoverride file
W: Waited for dpkg --assert-multi-arch but it wasn't there - dpkgGo (10: No child processes)
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install. Trying to recover:
Run Code Online (Sandbox Code Playgroud)
经过一番搜索,我找到了解决方案。
x@y ~ $ cat /var/lib/dpkg/statoverride
root postdrop 2555 /usr/sbin/postdrop
root postdrop 2555 /usr/sbin/postqueue
root mlocate 2755 /usr/bin/mlocate
postfix postdrop 2710 /var/spool/postfix/public
backuppc www-data 4750 /usr/lib/backuppc/cgi-bin/index.cgi
root ssl-cert 710 /etc/ssl/private
root crontab 2755 /usr/bin/crontab
Run Code Online (Sandbox Code Playgroud)
通过运行修复:sudo sed -i '/backuppc/d' /var/lib/dpkg/statoverride
x@y ~ $ sudo sed -i '/backuppc/d' /var/lib/dpkg/statoverride; cat /var/lib/dpkg/statoverride
[sudo] password for x:
root postdrop 2555 /usr/sbin/postdrop
root postdrop 2555 /usr/sbin/postqueue
root mlocate 2755 /usr/bin/mlocate
postfix postdrop 2710 /var/spool/postfix/public
root ssl-cert 710 /etc/ssl/private
root crontab 2755 /usr/bin/crontab
Run Code Online (Sandbox Code Playgroud)
抱歉,我无法回答你的问题,但这是谷歌的第二个结果,所以我想在这里为人们提供一个解决方案。我的回答来自http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html。
小智 6
我收到以下错误:
dpkg: unrecoverable fatal error, aborting:
syntax error: unknown group "crontab" in statoverride file,
E: Sub-process /usr/bin/dpkg returned an error code (2)
dpkg: unrecoverable fatal error, aborting:
unknown group 'messagebus' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud)
下面的命令解决了我的 apt-get 安装问题
sudo sed -i '/crontab/d' /var/lib/dpkg/statoverride
Run Code Online (Sandbox Code Playgroud)
您可以更改 crontab 单词但保留 '/d' 直到您可以成功安装任何 apt-get 而没有任何语法错误。
root@localhost:~# sudo sed -i '/messagebus/d' /var/lib/dpkg/statoverride
root@localhost:~# apt-get install wifite
Reading package lists... Done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
68950 次 |
最近记录: |