Я обновил Ubuntu с 17.04 по 17.10. Я столкнулся с двумя проблемами: -
1. Поскольку это обновление было произведено в журнале ошибок:
Не удалось установить «network-manager-openvpu». Subprocess установил пост-установочный скрипт, возвратил статус выхода 1 не смог установить «geoclue-2.0». Subprocess, сценарий установки возвратил статус выхода ошибки 1 Обновление было прервано. Ваша система может находиться в непригодном состоянии. Теперь будет выполнено восстановление (dpkg --config -a), но были ошибки во время процесса обновления1. По мере обновления были созданы журналы ошибок:
Не удалось установить «network-manager-openvpu». Subprocess установил послеустановочный скрипт, возвратил статус выхода 1 (! D4) [ ! d10]Приложение
Я сделал
sudo apt autoremove
, затем этот
sudo apt install --fix-missing
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
4 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up gdm3 (3.26.1-3ubuntu3) ...
addgroup: No GID is available in the range 100-999 (FIRST_SYS_GID - LAST_SYS_GID).
addgroup: The group `gdm' was not created.
dpkg: error processing package gdm3 (--configure):
subprocess installed post-installation script returned error exit status 1
Setting up geoclue-2.0 (2.4.7-1ubuntu1) ...
addgroup: No GID is available in the range 100-999 (FIRST_SYS_GID - LAST_SYS_GID).
addgroup: The group `geoclue' was not created.
dpkg: error processing package geoclue-2.0 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of empathy:
empathy depends on geoclue-2.0 (>= 2.0); however:
Package geoclue-2.0 is not configured yet.
dpkg: error processing package empathy (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates it's a follow-up error from a previous failure.
dpkg: dependency problems prevent configuration of ubuntu-desktop:
ubuntu-desktop depends on gdm3; however:
Package gdm3 is not configured yet.
dpkg: error processing package ubuntu-desktop (--configure):
dependency problems - leaving unconfigured
No apport report written because MaxReports has already been reached
Errors were encountered while processing:
gdm3
geoclue-2.0
empathy
ubuntu-desktop
E: Sub-process /usr/bin/dpkg returned an error code (1)
Команды в этом ответе могут привести к хаосу вашей системы. Сделайте полную резервную копию системы с помощью предпочтительного метода. Подтвердить / проверить эту резервную копию. Защитите свои резервные копии, чтобы следующие шаги не могли нанести им вред. Дополнительные сведения о резервных копиях см. В Ubuntu Community Wiki - BackupYourSystem. Я бы порекомендовал Clonezilla для однократного резервного копирования os и пользовательских данных. Но при переходе резервных копий я использую Borg Backup.
Запуск getent group | egrep \:[1-9][0-9][0-9]\: отобразит группы в диапазоне 100-999. Из этого списка обратите внимание на минимум 10 нежелательных групп, связанных с гостевыми аккаунтами. У них не должно быть ни одного пользователя, включенного в группу, а также не должны быть программами, которые в настоящее время установлены. Следующий блок кода показывает, что четвертое поле содержит пользователей в этой группе. Из этих немногих только самбашаре есть пользователь. Проблема в том, что только «гостевые» группы.
saned:x:122:
uuidd:x:123:
sambashare:x:124:jon
ssh:x:125:
geoclue:x:126:
guest-262uVu:x:127:
guest-qAD7pX:x:128:
guest-H1HJgy:x:129:
guest-fbfgab:x:130:
guest-LdeNZx:x:131:
guest-jIHtqC:x:132:
guest-w7GINW:x:133:
В следующих командах замените <NEWGID> на группу для хранения любых остаточных файлов. Вы можете либо использовать существующую группу, либо новую группу. Также замените <OLDGID> группой, которую нужно удалить. Выполняйте команды один раз для каждой группы, которую нужно удалить. Если вы не хотите, чтобы какой-либо из файлов из старых групп запускал потенциально очень вредную команду find / -group <OLDGID> -exec rm {} \;. Если вам все равно, кто может получить файлы удаленных групп, вы можете просто запустить delgroup --only-if-empty <OLDGID>.
find / -group <OLDGID> -exec rm {} \;
find / -group <OLDGID> -exec chgrp -h <NEWGID> {} \;
delgroup --only-if-empty <OLDGID>
# example using random groups
find / -group 200 -exec chgrp -h 2000 {} \;
delgroup --only-if-empty 200
Запустить sudo dpkg --configure -a до завершить настройку распакованных пакетов.
Сценарий bash, охватывающий шаги 2-4. Откройте текстовый редактор, скопируйте и запустите следующий блок кода. Сохраните файл как guest.sh. В терминале перейдите к месту сохранения guest.sh. запустите chmod +x guest.sh, чтобы сделать исполняемый файл. Затем запустите ./guest.sh.
#!/bin/bash
TEMP=$(mktemp --tmpdir)
getent group | grep guest- | cut --delimiter=: -f 3 > "$TEMP"
NGID=$(head -n1 "$TEMP")
GIDS=$(grep -v "$NGID" "$TEMP" | tr '\n' ' ')
for i in $GIDS
do
find / -group "$i" -exec chgrp -h "$NGID" {} \;
delgroup --only-if-empty "$i"
done
rm "$TEMP"
sudo dpkg --configure -a
Команды в этом ответе могут привести к хаосу вашей системы. Сделайте полную резервную копию системы с помощью предпочтительного метода. Подтвердить / проверить эту резервную копию. Защитите свои резервные копии, чтобы следующие шаги не могли нанести им вред. Дополнительные сведения о резервных копиях см. В Ubuntu Community Wiki - BackupYourSystem. Я бы порекомендовал Clonezilla для однократного резервного копирования os и пользовательских данных. Но при переходе резервных копий я использую Borg Backup.
Запуск getent group | egrep \:[1-9][0-9][0-9]\: отобразит группы в диапазоне 100-999. Из этого списка обратите внимание на минимум 10 нежелательных групп, связанных с гостевыми аккаунтами. У них не должно быть ни одного пользователя, включенного в группу, а также не должны быть программами, которые в настоящее время установлены. Следующий блок кода показывает, что четвертое поле содержит пользователей в этой группе. Из этих немногих только самбашаре есть пользователь. Проблема в том, что только «гостевые» группы.
saned:x:122:
uuidd:x:123:
sambashare:x:124:jon
ssh:x:125:
geoclue:x:126:
guest-262uVu:x:127:
guest-qAD7pX:x:128:
guest-H1HJgy:x:129:
guest-fbfgab:x:130:
guest-LdeNZx:x:131:
guest-jIHtqC:x:132:
guest-w7GINW:x:133:
В следующих командах замените <NEWGID> на группу для хранения любых остаточных файлов. Вы можете либо использовать существующую группу, либо новую группу. Также замените <OLDGID> группой, которую нужно удалить. Выполняйте команды один раз для каждой группы, которую нужно удалить. Если вы не хотите, чтобы какой-либо из файлов из старых групп запускал потенциально очень вредную команду find / -group <OLDGID> -exec rm {} \;. Если вам все равно, кто может получить файлы удаленных групп, вы можете просто запустить delgroup --only-if-empty <OLDGID>.
find / -group <OLDGID> -exec rm {} \;
find / -group <OLDGID> -exec chgrp -h <NEWGID> {} \;
delgroup --only-if-empty <OLDGID>
# example using random groups
find / -group 200 -exec chgrp -h 2000 {} \;
delgroup --only-if-empty 200
Запустить sudo dpkg --configure -a до завершить настройку распакованных пакетов.
Сценарий bash, охватывающий шаги 2-4. Откройте текстовый редактор, скопируйте и запустите следующий блок кода. Сохраните файл как guest.sh. В терминале перейдите к месту сохранения guest.sh. запустите chmod +x guest.sh, чтобы сделать исполняемый файл. Затем запустите ./guest.sh.
#!/bin/bash
TEMP=$(mktemp --tmpdir)
getent group | grep guest- | cut --delimiter=: -f 3 > "$TEMP"
NGID=$(head -n1 "$TEMP")
GIDS=$(grep -v "$NGID" "$TEMP" | tr '\n' ' ')
for i in $GIDS
do
find / -group "$i" -exec chgrp -h "$NGID" {} \;
delgroup --only-if-empty "$i"
done
rm "$TEMP"
sudo dpkg --configure -a