Ошибка keyring при обновлении Omarchy: как исправить
Обновление Omarchy прерывается из-за недействительной подписи PGP? Обновите пакет archlinux-keyring и выполните ручную переустановку ключей pacman для устранения ошибки.
Почему обновление Omarchy завершается ошибкой keyring
Если обновление Omarchy прерывается с ошибкой invalid or corrupted package (PGP signature), это означает проблему с keyring, а не повреждение загруженного файла. Ваша версия archlinux-keyring устарела по сравнению с ключами подписи, которые Arch использует в настоящее время, поэтому pacman отклоняет пакет, так как не может подтвердить его подлинность с помощью доверенного ключа. Обновите keyring, а затем повторите попытку обновления.
В этом нет ничего специфичного для Omarchy. Это стандартная ошибка Arch, с которой часто сталкиваются пользователи, для которых Omarchy стала первым знакомством с дистрибутивом Arch.
Перед выполнением команд обратите внимание на область применения. Omarchy — это десктопная среда на базе Arch с графической оболочкой Hyprland, поэтому все инструкции ниже относятся к локальному компьютеру. Это руководство не предназначено для установки Omarchy на VPS. Ваш сервер работает под управлением другой ОС, а в последнем разделе указаны ссылки на соответствующую документацию.
Минимальное исправление
Две команды, затем обновление:
sudo pacman -Sy
sudo pacman -S archlinux-keyring
omarchy updatesudo pacman -S archlinux-keyring выводит ==> Appending keys from archlinux.gpg..., а затем более медленный проход ==> Locally signing trusted keys in keyring.... Эти строки означают, что новые ключи разработчиков были добавлены в вашу связку ключей. Обновление, которое завершилось ошибкой минуту назад, теперь выполняется до конца.
Эта последовательность описана пользователями в тикете Omarchy 4608; именно этот отчет привел к тому, что обновление связки ключей было встроено в сам процесс обновления.
pacman -Sy сам по себе заслуживает предупреждения. Он загружает свежую базу данных пакетов, не обновляя уже установленные пакеты. Установка произвольного ПО в таком состоянии приводит к частичному обновлению, а частичные обновления ломают системы Arch, так как свежесобранный пакет ожидает версии библиотек, указанные в новой базе данных, в то время как у вас остаются старые версии. archlinux-keyring является допустимым исключением: он доставляет ключи, а не скомпилированные бинарные файлы, и вы выполняете его непосредственно перед полным обновлением.
omarchy update — это команда Omarchy 4. Omarchy 4, под кодовым названием Quattro, была выпущена в августе 2026 года и является текущей серией по состоянию на сентябрь 2026 года. Скрипт, стоящий за этой командой, — omarchy-update, который можно запустить и напрямую. Отдавайте предпочтение любому из этих вариантов, а не простому pacman -Syu, так как установщик Omarchy сначала создает снимок файловой системы и выполняет миграции, которые синхронизируют вашу конфигурацию с новым релизом. Ручной pacman -Syu пропускает оба этих этапа.
Что делает omarchy update keyring
Omarchy 4 выполняет этап работы с keyring отдельно:
omarchy update keyringОн управляет двумя отдельными keyring. Он всегда запускает sudo pacman -Sy --noconfirm archlinux-keyring, и причина, по которой он переустанавливает их, а не сравнивает версии, указана в скрипте: содержимое этого keyring может измениться без изменения версии пакета. Он также загружает и локально подписывает ключ подписи Omarchy, если этот ключ отсутствует:
sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571Два keyring используются, так как ваша машина устанавливает пакеты из двух источников. archlinux-keyring — это собственный пакет Arch из репозитория core, он содержит ключи разработчиков Arch и доверенных пользователей. omarchy-keyring — сторонний компонент. Он поступает из репозитория [omarchy], который Omarchy добавляет в /etc/pacman.conf (для стабильного канала это Server = https://pkgs.omarchy.org/stable/$arch), и содержит ключ, которым подписывается каждый пакет omarchy-*. Omarchy 4 поставляет SigLevel = Required DatabaseOptional, поэтому пакет, подпись которого не проверяется доверенным ключом, отклоняется независимо от того, из какого репозитория он был получен.
Почему неизвестное доверие — это ключевая проблема, а не проблема загрузки
Ошибка выглядит следующим образом. Имя пакета и подписавший его субъект меняются от машины к машине. Последние две строки остаются неизменными.
error: archlinux-keyring: signature from "Christian Hesse <eworm@archlinux.org>" is unknown trust
:: File /var/cache/pacman/pkg/archlinux-keyring-20230704-1-any.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
error: failed to commit transaction (invalid or corrupted package (PGP signature))Прочитайте unknown trust буквально. gpg проанализировал подпись и установил, что она сформирована корректно. Однако он не смог связать ключ, стоящий за этой подписью, с ключом, которому доверяет ваша машина. После этого pacman помечает пакет как поврежденный, поскольку с точки зрения pacman результат проверки для неподтвержденного пакета и для поврежденного файла идентичен.
Доверенные ключи хранятся в /etc/pacman.d/gnupg. Этот каталог является локальной копией и никогда не обновляется в режиме реального времени во время выполнения обновления. Он наполняется из файлов ключей, которые пакет archlinux-keyring устанавливает в /usr/share/pacman/keyrings. Arch добавляет ключи разработчиков и отзывает их по собственному графику, поэтому на машине, которая не использовалась несколько месяцев, хранится список ключей, созданный раньше, чем разработчик, подписавший сегодняшний пакет, получил свои полномочия. Связанное сообщение signature from ... is marginal trust имеет ту же причину: ключи присутствуют, но локальные подписи, которые связывают их с вашей собственной связкой ключей, отсутствуют.
Полное восстановление при повреждении самой связки ключей
Иногда sudo pacman -S archlinux-keyring завершается с той самой ошибкой, которую вы пытаетесь исправить, или sudo pacman-key --list-keys не возвращает полезных данных. В этом случае связка ключей повреждена, а не просто устарела, и её необходимо пересоздать.
sudo mv /etc/pacman.d/gnupg /etc/pacman.d/gnupg.broken
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -Sy archlinux-keyring
sudo pacman-key --populate archlinuxПереместите старую директорию вместо её удаления. Если при пересоздании возникнут проблемы, вы сможете вернуть её обратно, а связка ключей, которую можно восстановить, стоит тех нескольких килобайт, которые она занимает.
Порядок действий имеет значение. --init создает пустую связку ключей с новым локальным ключом подписи, а пустая связка ключей никому не доверяет, поэтому любая загрузка в этот момент не пройдет проверку. --populate archlinux заполняет её из /usr/share/pacman/keyrings/archlinux.gpg — файла, который уже находится на вашем диске из пакета, установленного несколько месяцев назад. Эти ключи могут быть старыми, но их достаточно для проверки загрузки актуального пакета связки ключей, что и делает четвертая строка. Последняя строка загружает обновленные файлы ключей, полученные в результате этой загрузки.
Теперь восстановите ключ Omarchy. Удаление /etc/pacman.d/gnupg привело к потере локальной подписи, которая делала его доверенным, поэтому каждый пакет omarchy-* будет выдавать ошибку unknown trust, пока ключ не будет возвращен:
sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571Последняя команда должна вывести строку pub для этого отпечатка. Строка keyserver receive failed вместо этого означает, что ваша сеть не может связаться с keys.openpgp.org через порт 443, поэтому исправьте это перед повторной попыткой. В Omarchy 4 вы можете выполнить omarchy update keyring вместо первых двух команд, так как она выполняет именно эту пару действий. Завершите работу командой omarchy update.
Если связка ключей актуальна, а обновление всё равно завершается ошибкой
Неверно настроены системные часы. Ключи и подписи содержат временные метки, которые gpg сверяет с системным временем. Если часы сильно отстают, корректная подпись выглядит так, будто она была создана до появления самого ключа, поэтому пакет отклоняется. Выполните timedatectl и проверьте значение System clock synchronized: yes. Эта проблема часто встречается на ноутбуках с разряженной батарейкой CMOS, а также на серверах по другим причинам, описанным в почему часы на VPS спешат или отстают и как поддерживать их синхронизацию.
Повреждён один из кэшированных файлов. Загрузка, прерванная из-за нестабильного зеркала, приводит к появлению той же строки invalid or corrupted package, и никакие манипуляции со связкой ключей здесь не помогут. Определить причину можно по имени пакета, на котором происходит сбой. Если ошибка возникает постоянно на одном и том же пакете, удалите этот файл из /var/cache/pacman/pkg/ и запустите обновление снова. Команда sudo pacman -Sc удаляет кэшированные версии пакетов, которые больше не установлены в системе.
Ошибка в yay, а не в pacman. При сборке из AUR исходный архив проверяется с помощью makepkg, которая считывает вашу пользовательскую связку ключей в ~/.gnupg. Она не использует связку ключей pacman. Сообщение об ошибке выглядит как ==> ERROR: One or more PGP signatures could not be verified! и обычно сопровождается gpg: Can't check signature: No public key. Импортируйте ключ от имени обычного пользователя с помощью gpg --recv-keys <key-id> без использования sudo. Команда sudo pacman-key --recv-keys не поможет, так как она записывает данные в /etc/pacman.d/gnupg — каталог, который makepkg не проверяет.
Не используйте pacman-key --refresh-keys. Эта команда опрашивает сервер ключей для каждого имеющегося у вас ключа, поэтому она работает медленно и завершается ошибкой, если сервер перегружен. Она также не может добавить ключ, которого изначально не было в вашей связке, что и является основной проблемой. Обновление archlinux-keyring — это рекомендуемый и поддерживаемый способ решения.
Если обновление прервалось на середине
Изучите /tmp/omarchy-update.log. Именно туда omarchy-update записывает свои логи, а первая реальная ошибка к моменту завершения работы обычно скрывается за индикаторами выполнения.
Если состояние системы стало хуже, чем до начала процесса, используйте снапшот. Omarchy создает его перед обновлением на системах, где доступен snapper, поэтому вы можете перезагрузить компьютер и выбрать снапшот, сделанный до обновления, в загрузочном меню. Исправьте связку ключей (keyring) из этого заведомо рабочего состояния, а затем повторите обновление.
Ваш сервер — это не ваш рабочий стол
Omarchy — это десктопная среда, а сервер, к которому вы подключаетесь по SSH, требует иного подхода и других решений. Для сервера нужен дистрибутив с длительным сроком поддержки и без графической оболочки, что подробно описано в выборе подходящей ОС для вашего VPS. Первой задачей на таком сервере является защита SSH с помощью ключей и настройки безопасной конфигурации sshd, а второй — создание регулярного регламента обслуживания, чтобы пакеты никогда не устаревали так, как в этом keyring. Если в Omarchy вам нравятся встроенные сокращения для инструментов разработки, то эти инструменты работают и на сервере: в запуске агента разработки на VPS описана настройка, а в поддержании работы Claude Code в сессии tmux — то, как сохранить процесс активным после закрытия ноутбука и завершения работы.
FAQ
Безопасно ли запускать sudo pacman -Sy до установки archlinux-keyring?
Это безопасно только в данном конкретном случае, при условии, что сразу после этого вы установите связку ключей, а затем выполните полное обновление системы. -Sy обновляет базу данных пакетов, в то время как установленные пакеты остаются старыми. Установка обычного ПО в таком состоянии приводит к частичному обновлению, из-за чего бинарный файл может оказаться скомпонован с версией библиотеки, которой у вас нет. archlinux-keyring содержит данные, а не исполняемый код, поэтому это стандартное исключение. Не останавливайтесь после pacman -Sy и не оставляйте систему в таком состоянии.
Почему я всё ещё получаю ошибки связки ключей, если Omarchy обновляет её автоматически?
Средство обновления обновляет archlinux-keyring перед обновлением пакетов, поэтому ошибка обычно означает, что вы не использовали этот инструмент. Запуск pacman -Syu или yay вручную пропускает этот шаг. Другие случаи включают повреждение локальной связки ключей (а не просто её устаревание), когда сам пакет связки ключей не проходит проверку, или использование старого релиза Omarchy, выпущенного до появления этого шага. Полная пересборка с помощью pacman-key --init и pacman-key --populate archlinux решает проблему повреждения.
Что такое omarchy-keyring и это то же самое, что archlinux-keyring?
Это разные пакеты из разных источников. archlinux-keyring — это пакет Arch из репозитория core, он содержит ключи разработчиков Arch и доверенных пользователей. omarchy-keyring — сторонний пакет. Он поступает из репозитория [omarchy] по адресу pkgs.omarchy.org, который Omarchy добавляет в вашу конфигурацию pacman. Он содержит ключ с отпечатком 40DFB630FF42BCFFB047046CF0134EE680CAC571, которым подписаны пакеты omarchy-*. Omarchy требует наличия действительной подписи из обоих наборов, поэтому отсутствие любого из них блокирует обновление.
Стоит ли запускать pacman-key --refresh-keys для исправления ошибки подписи?
Нет. Эта команда опрашивает сервер ключей по поводу каждого ключа в вашей связке, что работает медленно и завершается ошибкой, если сервер недоступен. Она не может импортировать ключ, которого никогда не было в вашей связке. Отсутствующий ключ доставляется вместе с пакетом archlinux-keyring, поэтому последовательность sudo pacman -Sy и sudo pacman -S archlinux-keyring является более быстрой и официально поддерживаемой.
Могу ли я установить Omarchy на свой VPS, чтобы обе машины были одинаковыми?
Omarchy — это рабочее окружение Hyprland, созданное для компьютера с экраном, графическим процессором и клавиатурой. На VPS вы не получите графического интерфейса, но при этом вам придётся поддерживать в актуальном состоянии большой набор десктопных пакетов. Используйте серверный дистрибутив на VPS, оставьте Omarchy на ноутбуке и примите тот факт, что на этих двух машинах будут разные наборы пакетов и разные команды для обновления.