Ошибка не удалось открыть файл var lib pacman sync core db unrecognized archive format
Эта статья посвящена ошибкам, которые возникают из-за проблем со списком зеркал.
Ошибка pacman «The requested URL returned error: 404»
Для работы менеджера пакетов имеется кэш - в этом кэше собрана информация о существующих пакетах для установки, их версиях и ссылки на скачивание. Чтобы обновить (или скачать впервые) этот кэш, нужно выполнить команду:
После этого можно выполнять обновление системы или обновление пакета.
Если кэш устарел и вы пытаетесь установить пакет, версия которого обновилась и для которого в вашем локальном кэше старая ссылка, вы можете получить примерно следующую ошибку:
Для её исправления нужно выполнить приведённую выше команду, а затем повторить установку.
Но аналогичная проблема может возникнуть при запуске обновления системы - это странно, поскольку следующая команда начинает с обновления кэша, следовательно, кэш самый новый и ошибка «файл не найден» не должна возникать:
Эта команда привела к ошибке:
Многократное повторение команды ничего не меняет.
Причина в следующем: pacman скачивает кэш с некачественного зеркала, в котором содержится неверная информация. Для исправления, нужно выбрать другое зеркало, или переместить другое зеркало вверх списка, если вы используете несколько зеркал.
Начнём с того, что переключимся на новый список зеркал. Дело в том, что при установке пакета pacman-mirrorlist (в этом пакете содержится список зеркал), новый файл /etc/pacman.d/mirrorlist не заменяет существующий, а сохраняется с именем /etc/pacman.d/mirrorlist.pacnew. То есть даже если у вас последняя версия пакета pacman-mirrorlist, это не означает, что у вас актуальная версия файла /etc/pacman.d/mirrorlist. Проверте, существует ли файл /etc/pacman.d/mirrorlist.pacnew:
Если файл существует, то выполните следующие две команды (в противном случае пропустите их):
В моём случае проблемным зеркалом, вызвавшим описанную выше ошибку, стало следующее (не используйте его):
Arch Linux перестал обновляться
Если вы запускаете команду «sudo pacman -Syu» каждый день, то вы могли заметить, то в редкий день не бывает обновлений. Если вдруг для вашей системы на протяжении нескольких дней перестали приходить обновления, это может означать, что кэш пакетов скачивается с некачественного зеркала.
Для исправления - выполните точно такие же действия, как описаны для предыдущей ошибки. То есть нужно переключиться на другое зеркало.
ошибка: не удалось обновить core (не настроены сервера для репозитория)
Ещё одна возможная ошибка после того, как вы выполнили какие-либо работы со списком зеркал установочных пакетов:
Её причина в том, что в файле /etc/pacman.d/mirrorlist закомментированы все строки. Откройте этот файл:
Несколько признаков необходимости восстановления локальной базы данных pacman:
- Команда pacman -Q ничего не выводит, а pacman -Syu ошибочно сообщает, что система обновлена.
- Выводится список уже удовлетворённых зависимостей при попытке установить пакет с помощью pacman -S пакет .
Скорее всего, база данных pacman с установленными пакетами ( /var/lib/pacman/local ) была повреждена или удалена. Хотя это и серьёзная проблема, базу данных можно восстановить приведёнными ниже инструкциями.
Для начала убедитесь, что в системе присутствует лог-файл pacman:
Если же файл отсутствует, воспользоваться данным методом не получится. В таком случае попробуйте воспользоваться скриптом обнаружения пакетов от Xyne, а если он не поможет, скорее всего, придётся переустановить систему.
Создание списка пакетов для восстановления
Важно: Прежде чем продолжить, удалите пакеты для других архитектур, если они по какой-либо причине содержатся в кеше pacman или целевой директории пакетов makepkg.Установите пакет pacutils , чтобы получить утилиту paclog.
Создайте скрипт фильтрации логов и сделайте его исполняемым:
Запустите скрипт (опционально передав в качестве параметров дополнительные директории с пакетами):
Будут созданы два файла: files.list с файлами пакетов, до сих пор присутствующих в системе, и pkglist.orig с пакетами для загрузки. После выполнения следующей команды может проявиться несоответствие между файлами новой и старых версий пакета. Такие несоответствия должны быть исправлены вручную.
Команда, автоматически ограничивающая второй список так, чтобы в списке находились только доступные в репозитории пакеты:
Примечание: Если эта команда завершается с ошибкой failed to initialise alpm library , проверьте, существует ли файл /var/lib/pacman/local/ALPM_DB_VERSION . Если же он отсутствует, выполните pacman-db-upgrade от имени суперпользователя, после чего также запустив pacman -Sy и повторив предыдущую команду.Проверьте список на отсутствие важных пакетов из группы base и добавьте их:
Продолжите, когда содержание обеих файлов будет удовлетворительным, так как они используются для восстановления базы данных pacman ( /var/lib/pacman/local/ ).
Восстановление
Объявите в bash функцию восстановления:
Заполните базу синхронизации:
Начните генерировать базу данных, установив локально доступные пакеты из файла files.list :
Установите оставшиеся пакеты из файла pkglist :
Обновите локальную базу данных, чтобы пакеты, которые не требуются каким-либо другим пакетам, были помечены как установленные явно, а все остальные считались зависимостями. В будущем придётся быть более осторожным при удалении пакетов, но это лучшее решение из возможных, когда оригинальная база данных была утрачена.
Проверьте установленные пакеты на наличие повреждений:
При желании можно также выполнить поиск файлов, не принадлежащих ни одному пакету.
Както ты плохо о Манжаре отзываешся))
Ты же на антергосе, не?
Антергос не манжаро)
Надо на Федору скорее? ??
Зачем ты у меня спрашиваешь?) Используй то что нравится)
Таки использую. К чему за антергос спросил?))
К тому что моё замечание было адресовано в твой адрес))
dolphin, кстати, не зацепило
Там большой сток обнов для кед
номера версий меняются у всех прог в стеке, а реальные изменения не у всех
Видать уже все бухнули, один я опаздываю.
после ваших общажных тем, перешел в канал Али и не сразу одуплил, что это просто чай
это не просто чай, это крутой пуэр))
Чет оно на навоз похоже))
ага, чай курить неудобно
курить навоз- фу))))
Игорь, пробывал?)) Турецкий?
не, я табак только
Кстати, читал книгу "Мико", в не пишут, что китайцы и японцы с презрением смотрят на современный аля-липтон чай))) Типо у них оранж пеко считается фигней
Система управления пакетами в Arch и Manjaro
Система управления пакетами — управляет процессом установки, удаления, настройки зависимостей и обновления различных компонентов ПО. (q) ru.wikipedia. Список команд для Manjaro (pacman), и Ubuntu ( dpkg)
- -S – установка программ в archlinux;
- -Sw — скачать пакет но не устанавливать;
- -U — установить локальный пакет;
- -s – поиск пакета;
- -i – информация;
- -u – обновить пакеты;
- -y – обновить списки пакетов из репозиториев;
- -dd – игнорирование зависимостей;
- -g – запрос информации о группе;
- -l – вывод пакетов в виде списка;
- -o – вывод в файл;
- -Q – запрос к базе данных установленных пакетов;
- -F – поиск по файлам;
- -D – задание и изменение цели установки уже имеющегося пакета;
- -R — удалить пакет;
- -Rn — удалять резервные копии конфигурационных файлов;
- -Rs — удалять зависимости пакета;
Работа с пакетами
Установка:
Удаление (sn - удалить пакет со всеми настройками):
Удалить все неиспользуемые пакеты, найденные командой в скобках $()
Удаление пакета со всеми зависимостями, не используемыми другими установленными пакетами:Удаления пакета, который требуется другому пакету, без удаления зависимого пакета:
Удаление пакета, его зависимостей и всех пакетов, зависящих от целевого пакета:
Удалить все пакеты, отсеянные в скобках (link):
Искать пакеты в базе данных как по названиям, так и по описаниям:
Установка пакета без ввода подтверждения:
Вывод списка файлов пакета:
Подробная информация о пакете из репозитория, например sddm:
Поиск пакета в репозитории (без установки):
Обновление системы и установка списка пакетов (за одну операцию):
Обновление системы (--noconfirm без подтверждения):
Просмотр списка всех установленных пакетов: Очистка кэша: Подробная информация по уже установленным пакетам:
Вывести принадлежащие пакету файлы и пути
Наоборот, узнать, какому пакету принадлежит файл sddm:
Установить пакет из локального файла, а не из репозитория:
Разрешение проблем
Посмотреть лог обновлений пакмана с выборкой по "upgraded":
Просмотреть папку с кэшем обновлений:
Если pacman (yaourt) выдаёт оишбку: "Pacman используется в данный момент пожалуйста подождите", не будучи при этом где-либо запущен, то лечится это убиванием флага блокировки базы данных пакмана:
Чтобы игнорировать при обновлении какие-либо пакеты, следует перечислить их в пункте "IgnorePkg =" в конфиге пакмана:
Читайте также: