На моем htpc-сервере, работающем под управлением Ubuntu, было установлено приложение, называемое mediatomb, несколько месяцев назад я удалил его и заменил на Plex. На выходных при опросе существующих пользователей на машине я заметил, что пользователь и группа mediatomb все еще существуют, поэтому я использовал команду
sudo deluser mediatomb
для удаления пользователя. Примерно через день я пошел устанавливать htop sudo apt-get install htop
, но обнаружил, что получаю ошибку: синтаксическая ошибка
: неизвестный пользователь 'mediatomb' в файле statoverride.
Я думал, что смогу открыть файл statoverride с помощью nano и отредактировать любые ссылки на mediatomb, но я не смог правильно открыть файл с помощью nano. Я запустил команду grep
grep 'mediatomb' /var/lib/dpkg/statoverride
, которая вернула в файл два места, которые больше не существуют в системе. Единственный способ, которым я могу сейчас обойти эту проблему, - это воссоздать медиатомбу пользователя, и тогда все работает нормально. Очевидно, что это не хорошее долгосрочное решение.
Я хотел бы знать, что такое файл statoverride и почему он сохраняет в нем пользователей, которые были удалены из системы? Я удаляю пользователей неправильным или устаревшим способом?
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
Вы можете получить фантазию с sed
, или вы можете просто открыть /var/lib/dpkg/statoverride
в вашем любимом текстовом редакторе и удалить ] только строки, содержащие элемент (ы), которые вызывали ошибку. Я обнаружил, что это задокументированная ошибка для Debian и Ubuntu,
Тем не менее, я только что исправил Мой вручную отредактировав любую запись, которая выдавала ошибку, и я с удовольствием загружаю пакеты снова. Надеюсь, что это поможет следующему человеку, который посетит этот номер 1 в результатах поиска Google для этой проблемы.
Хотя я не могу ответить на ваш вопрос, как спросили, я могу помочь вам с вашей дилеммой. Я столкнулся с той же самой проблемой, с которой вы столкнулись после использования «Учетных записей пользователей» для удаления пользователя «backuppc» - пользователя, которого я вручную настроил для резервного копирования. Ну, я удалил этот маршрут, но не пытался удалить пользователя, пока пару недель спустя (IE - сегодня). У меня не было никаких проблем, пока Менеджер обновлений не нашел и не попытался применить обновления; процесс не сможет прочитать
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:
После некоторых поисков я нашел решение.
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
Исправлено: 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
Извините, я не могу ответьте на ваш вопрос, но это был второй результат в Google, поэтому я хотел бы выложить решение здесь для людей. Мой ответ возник из http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html .
Я получаю следующую ошибку:
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)
Нижеприведенная команда решила мою проблему установки apt-get
sudo sed -i '/crontab/d' /var/lib/dpkg/statoverride
Вы можете изменить слово 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
Когда я установил DelugeD, он создал пользователя с именем debian-deluged. Позже я изменил конфигурацию Deluge для использования другого идентификатора пользователя и удалил автоматически созданного пользователя. Это привело к ошибке statoverride
при установке пакетного спидометра.
Я запустил sudo nano /var/lib/dpkg/statoverride
и вручную заменил автоматически созданного пользователя назначенным идентификатором пользователя, и ошибка была устранена.
У меня была похожая ошибка, и я исправил ее, сначала сделав резервную копию файла statoverride , а затем удалив все строки, содержащие слово postdrop .
Не забудьте добавить новую строку в конец файла statoverride .
Это потому, что вы, возможно, удалили пользователя, и теперь dpkg запрашивает /etc/passwd
для сравнения с файлом statoverride, он проверяет, что все записи файла statoverride находятся в passwd, и, если это не так, выдает предупреждение, что и происходит.
Это легко исправить, если вы переконфигурируете / переустановите соответствующий пакет (в вашем случае это был mediatomb
, это может быть что угодно, к счастью, Debian (на основе ОС Ubuntu)) использует то же имя пользователя, что и имя обычно), и он (повторно) создаст пользователя в файле passwd.
sudo apt-get --reinstall install package
или
sudo dpkg-reconfigure package
У меня возникла проблема с установкой mongo. Я пробовал разные решения, но единственное, что помогло, - это редактирование файла вручную.
sudo vim /var/lib/dpkg/statoverride
Итак, я удалил оттуда ссылки на mongodb и, наконец, смог установить mongo полностью без каких-либо препятствий. Произошла ошибка, указанная ниже.
dpkg: unrecoverable fatal error, aborting:
unknown user 'mongodb' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)
Надеюсь, это поможет кому-нибудь
При проблемах с установкой MongoDB, таких как неизвестный пользователь 'mongodb' в файле statoverride: откройте терминал, затем перейдите по адресу:
sudo vim /var/lib/dpkg/statoverride
Удалите:
mongodb mongodb 755 /var/log/mongodb
Затем переустановите mongodb.