Невозможно «apt-get dist-upgrade» из-за ошибки базы данных appstreamcli

20

Я создал USB-флешку с постоянным Ubuntu 16.04 (выпускная версия). Я попробовал несколько способов, используя Startup Disk Creator и MultiSystem, но я получил тот же конечный результат.

Когда я загружаюсь в USB и делаю 'apt-get update', все хорошо. Когда я пытаюсь «apt-get dist-upgrade», я получаю:

** (appstreamcli: 2761): КРИТИЧЕСКИЙ **: Ошибка при удалении старой базы данных. Не удалось обновить кэш AppStream.

Единственное упоминание об этом сообщении об ошибке, которое я могу найти, - это https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1561472, но, похоже, оно исправлено, по крайней мере, исправлено к моменту выпуска версии Ubuntu. 16,04.

В сторону: я хочу протестировать Unity8, которая включает в себя установку программного обеспечения. У меня нет запасного компьютера, поэтому я подумал, что постоянный USB поможет.

Любой берущий?

Bernmeister
источник
2
Помогает rm -rf /var/lib/apt/lists /var/cache/apt; apt update; apt clean?
Олат
Это случилось со мной один раз с непостоянным Live USB. Для меня запуска sudo rm -rf /var/lib/apt/listsбыло достаточно, чтобы apt updateснова заработала и последующая установка работала, хотя и с той же ошибкой о том, что на «CD-ROM» нет файла Release.
mwfearnley
1
Не могли бы вы открыть новый вопрос, если у вас есть новый или дополнительный вопрос? Если вы ставите трудно связанные вопросы на существующие вопросы, вы расширяете их кругозор, что затрудняет их ответ. Кроме того, он, вероятно, лишает законной силы существующие ответы. Я позволил себе удалить следующий вопрос. Спасибо.
Дэвид Фёрстер,
2
У меня точно такая же ошибка при выполнении sudo apt-get update, и решения здесь не помогло: я попытался удалить /var/lib/apt/listsи /var/cache/aptи это не решило проблему. Разрешения для /var/cache/app-info/xapian/defaultуже были установлены правильно. Что помогло это cd /var/cache/app-info/xapian; sudo mv default default_old; sudo mv default_old default. Это объясняется здесь: bugs.launchpad.net/ubuntu/+source/appstream/+bug/1601971 (комментарий № 11).
fiktor

Ответы:

29

Это также случилось со мной с использованием 16.04.1 живого постоянного USB-накопителя Ubuntu.

Решение uncledave сначала не сработало, но, как и предполагалось, изменение прав стало окончательным решением.

Тогда я нашел ответ № 11 от Даниэля Гимпелевича за ошибку 1601971 Следующие команды помогли мне исправитьapt-get update

sudo chmod -R a+rX,u+w /var/cache/app-info/xapian/default

Как я предположил, что 755 - правильная маска? Разница между

ls -ld /var/cache/app-info/xapian
drwxr-xr-x 1 root root 4096 Nov 19 20:35 /var/cache/app-info/xapian/

а также

ls -ld /var/cache/app-info/xapian/default
drw-r--r-- 2 root root 4096 Jul 19 20:54 /var/cache/app-info/xapian/default

После этого apt-get обновление прошло нормально.

sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB]      
Fetched 190 kB in 0s (312 kB/s)                                                
Reading package lists... Done

Примечание1. Обновление постоянного постоянного USB-накопителя таким образом не рекомендуется, так как это приведет к проблемам, если будет установлено / обновлено слишком много пакетов.

Примечание2 Лучше установить Ubuntu непосредственно на USB-накопитель, если вы хотите использовать его в качестве загрузочного «Швейцарского армейского ножа».

linux64kb
источник
Качество этого ответа отличное. Так держать :)
ThatGuy
// Я могу подтвердить, что это работает на 16.04.3 LTS на USB-накопителе в реальном времени на Dell XPS.
Натан Басанезе
эта работа для меня .. в WSL тоже .. спасибо за информацию ..
Буддика Чатуранга
2

Поиск в Google привел меня к этой ссылке: на github

Я пробовал эту команду, и она работает для меня:

chmod 777 /var/cache/app-info/xapian/default -R

uncledave
источник
6
Пожалуйста, не рекомендуйте 0777aka «пожалуйста, взломайте мою систему и уничтожьте мои данные» без видимой причины! Нет почти никакой причины делать это, потому что этого можно избежать с помощью более разумных изменений, таких как смена владельца (группы). Смотрите ответ linux64kb для справки. -1
Дэвид Фёрстер
//, @uncledave, тоже 0755работает? Вы достигли ~ 20 000 человек, кстати.
Натан Басанезе
1
@NathanBasanese 755 работает наверняка
linux64kb
1

На моем постоянном живом USB с 16.04.1, только что набрал

sudo -i

Тогда как root сделал

sudo apt-get update И все было хорошо. затем

exit

И вернемся к моему первоначальному пути ubuntu @ ubuntu.

susansdad
источник
0

В моей системе (на основе Ubuntu Xenial) это был начальный макет Perms:

drwxr-xr-x 2 root root 4096 Sep 28 12:32 /var/cache/app-info/xapian/default/

Обратите внимание, что у группы не было доступа «w». Исправление было

chmod g+w /var/cache/app-info/xapian/default

так что никаких опасностей здесь (как в c0m3h4ckm3 :))

terebinT
источник
-1

Я не знаю, как правильно решить эту проблему, но apt-get dist-upgradeу меня работает двойной вызов, хотя я могу воспроизвести его на установленной Ubuntu (при первом вызове будет ошибка, но второй вызов работает).

Defman
источник
Пробовал это - это "исправило" это, но затем, когда я попытался повторить процесс, получил ту же ошибку. Так что нет банана. Предложение Олате выше помогло, но потом привело к другой ошибке ... см. Комментарий выше.
Бернмейстер