Вопрос или проблема
Я выполнил paru -Syu
, затем sudo pacman -Syu
несколько раз с тем же результатом.
Я получаю эту ошибку:
Общий установленный размер: 3034.55 MiB
Размер нетто обновления: 49.01 MiB
:: Продолжить установку? [Y/n]
(222/222) проверка ключей в ключевом хранилище [------------------------------] 100%
(222/222) проверка целостности пакета [------------------------------] 100%
:: Файл /var/cache/pacman/pkg/plasma5-themes-sweet-full-git-r390.48a9050-1-x86_64.pkg.tar.zst повреждён (невалидный или повреждённый пакет (контрольная сумма)).
Хотите удалить его? [Y/n]
ошибка: не удалось зафиксировать транзакцию (невалидный или повреждённый пакет)
Произошли ошибки, пакеты не были обновлены.
Когда мне предложили удалить файл, я ответил ‘Да’, и затем появляется сообщение об ошибке.
Я успешно выполнил sudo pacman-key --refresh-keys
, затем sudo pacman -Syyu
, но получил тот же результат.
Когда я зашёл в /var/cache/pacman/pkg/
, я нашёл несколько plasma5-themes-sweet-full-git-r3*
, как и ожидалось, но последний был r389
, никаких следов r390
, никаких частичных загрузок, ничего.
От отчаяния я выполнил sudo rm
на всех этих файлах, они были удалены, но ничего не исправили. Это было немного глупо, но я не думаю, что это вредно.
Я на самом деле не знаю, как справиться с тем, что программа жалуется на файл, которого нет, может быть, какой-то кэш для сброса…
Любая помощь была бы оценена, спасибо за ваше время.
Ответ или решение
Проблема с обновлением pacman
, указывающая на файл с ошибкой в кеш-памяти, может быть вызвана несколькими факторами. Давайте подробно разберём возможные шаги для её решения.
1. Понимание проблемы
Вы получили сообщение об ошибке, которое указывает на то, что файл /var/cache/pacman/pkg/plasma5-themes-sweet-full-git-r390.48a9050-1-x86_64.pkg.tar.zst
повреждён или недействителен. При этом система предлагает удалить его, что вы и сделали, но это не решило проблему. Это может указывать на то, что информация о пакете r390
осталась в локальной базе данных, несмотря на отсутствие самого файла.
2. Удаление терков из кеша
Хотя вы уже удалили файлы, связанные с plasma5-themes-sweet-full-git, важно полностью очистить кеш и убедиться, что все ссылки на ненужные или повреждённые файлы удалены. Для этого выполните следующие команды:
sudo pacman -Scc
Эта команда очистит весь кеш пакетов. В процессе вас спросят, хотите ли вы удалить кешированные пакеты. Подтвердите удаление всех кешированных пакетов.
3. Обновление баз данных
После очистки кэша стоит обновить базы данных. Используйте следующую команду:
sudo pacman -Sy
Это обновит базу данных пакетов и обеспечит получение актуальной информации о доступных пакетах.
4. Переустановка повреждённых пакетов
Теперь, когда кеш очищен и базы данных обновлены, вы можете попытаться переустановить проблемный пакет. Убедитесь, что вы синхронизируете пакеты с удалёнными репозиториями:
sudo pacman -S plasma5-themes-sweet-full-git
Эта команда установит пакет заново и загрузит его с сервера.
5. Проверка состояния системных ключей
Вы уже выполнили команду для обновления ключей:
sudo pacman-key --refresh-keys
Это хороший шаг, так как обеспечивает получение актуальных ключей для подписи пакетов. Если вы всё равно сталкиваетесь с ошибками, то стоит проверить конфигурацию репозиториев в /etc/pacman.conf
, чтобы убедиться, что все нужные репозитории подключены и активны.
6. Использование альтернативных зеркал
Если проблема сохраняется, возможно, что она связана с конкретным зеркалом, с которого вы пытаетесь загрузить пакеты. Чтобы изменить зеркало, отредактируйте файл /etc/pacman.d/mirrorlist
и переместите вверх более быстрые и стабильные зеркала. После изменения зеркал обновите базу данных:
sudo pacman -Syy
Заключение
Итак, процесс обновления pacman
при наличии «призрачного» кеш-файла включает в себя очистку кеша, обновление баз данных, а также, при необходимости, переустановку проблемного пакета и смену зеркал. Следование данным шагам должно решить вашу проблему. Если вы всё ещё сталкиваетесь с трудностями, рассмотрите возможность поиска помощи на специализированных форумах, таких как Arch Linux Forums или Reddit.