Loading
при попытке обновления получаем стандартную ошибку ключей.
1.1. Обычно достаточно этого: (все делаю от рута)
pacman-mirrors --fasttrack
rm -R /etc/pacman.d/gnupg
nano /etc/pacman.d/gnupg/gpg.conf (содержание файла ниже в п.1.2.)
pacman-key --init
pacman-key --populate archlinux manjaro
pacman-key --refresh-keys
pacman -Sc
cp -r /var/lib/pacman/sync/ /sync
rm -R /var/lib/pacman/sync/
pacman -Syyu
1.2. если на шаге
pacman-key —refresh-keys
возникает ошибка, то необходимо подправить или создать конфиг /etc/pacman.d/gnupg/gpg.conf
из предлагаемых по ссылке серверов sks-keyservers.net/overview-of-pools.php (в текущее время ссылка не рабочая, найду аналог — исправлю: из архива archive.is/TDOUP или прямо из исходников с гитхаба github.com/Sicaine/sks-keyserver-git/blob/master/overview-of-pools.php ) выбрать те, которые не требуют ipv6 и https (арч вики рекомендует keyserver hkp://keyserver.ubuntu.com )
в моем случае конфиг такой
no-greeting
no-permission-warning
lock-never
keyserver-options timeout=10
keyserver-options import-clean
keyserver-options no-self-sigs-only
keyserver hkp://keyserver.ubuntu.com
keyserver hkp://pool.sks-keyservers.net
keyserver hkp://pool.sks-keyservers.net:80
keyserver hkps://hkps.pool.sks-keyservers.net:443
keyserver hkp://ipv4.pool.sks-keyservers.net:11371
и заново повторить команду pacman-key —refresh-keys и далее по списку
2. если вышеприведенные команды не привели к успеху
отключаем проверку ключей в /etc/pacman.conf
раздел [options]
SigLevel = Never
Пробуем
pacman -Syyu
получаем «Unrecognized archive format» Error
на любом зеркале, например яндекс, выбираем самые новые файлы и устанавливаем их
pacman -U https://mirror.yandex.ru/mirrors/manjaro/pool/overlay/manjaro-keyring-20200603-1-any.pkg.tar.zst
pacman -U https://mirror.yandex.ru/mirrors/manjaro/pool/sync/archlinux-keyring-20200820-1-any.pkg.tar.zst
rm -f /var/lib/pacman/sync/*
pacman -Sy
pacman -Syu
дальше можно снова включить проверку ключей.
3.Если все работает удаляем директорию /synс эту резервную копию сделали в п.1.
Today, I deployed a new Arch Linux Container in my Proxmox VE server. When I tried to update the Arch Linux container using «pacman -Syyu
» command, I encountered with this error — «error: keyring is not writable. error: required key missing from keyring».
Here is the complete output:
[root@archlinuxct ~]# pacman -Syyu :: Synchronizing package databases... core 155.6 KiB 199 KiB/s 00:01 [########################################################] 100% extra 1742.4 KiB 3.22 MiB/s 00:01 [########################################################] 100% community 7.3 MiB 3.40 MiB/s 00:02 [########################################################] 100% :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Packages (69) acl-2.3.1-3 archlinux-keyring-20230225-1 audit-3.0.9-2 bash-5.1.016-3 brotli-1.0.9-10 bzip2-1.0.8-5 ca-certificates-mozilla-3.88.1-1 cryptsetup-2.6.1-1 curl-7.88.1-3 dbus-1.14.6-1 device-mapper-2.03.19-1 e2fsprogs-1.47.0-1 file-5.44-3 filesystem-2023.01.31-1 findutils-4.9.0-2 gawk-5.2.1-1 gcc-libs-12.2.1-2 glib2-2.74.5-1 glibc-2.37-2 gnutls-3.8.0-1 gpgme-1.18.0-2 grep-3.8-3 gzip-1.12-2 hwdata-0.367-1 iana-etc-20230105-1 icu-72.1-2 iproute2-6.2.0-2 iptables-1:1.8.9-1 iputils-20221126-1 krb5-1.20.1-1 less-1:608-2 libarchive-3.6.2-2 libcap-2.67-1 libedit-20210910_3.1-2 libelf-0.188-3 libgcrypt-1.10.1-2 libgpg-error-1.46-2 libksba-1.6.3-1 libldap-2.6.4-1 libnftnl-1.2.4-1 libnghttp2-1.52.0-1 libnl-3.7.0-3 libpcap-1.10.3-1 libpsl-0.21.2-1 libsasl-2.1.28-4 libsysprof-capture-3.46.0-4 libtirpc-1.3.3-2 libxcrypt-4.4.33-1 linux-api-headers-6.1.9-1 mpfr-4.2.0-3 nano-7.2-1 ncurses-6.4-1 openssh-9.2p1-1 openssl-3.0.8-1 pacman-mirrorlist-20230226-1 pciutils-3.9.0-2 pcre2-10.42-2 psmisc-23.6-1 readline-8.2.001-2 sed-4.9-2 shadow-4.13-2 sqlite-3.41.0-1 systemd-253-1 systemd-libs-253-1 systemd-sysvcompat-253-1 tzdata-2022g-2 xz-5.4.1-1 zlib-1:1.2.13-2 zstd-1.5.4-1 Total Installed Size: 415.55 MiB Net Upgrade Size: 2.57 MiB :: Proceed with installation? [Y/n] y (69/69) checking keys in keyring [########################################################] 100% warning: Public keyring not found; have you run 'pacman-key --init'? downloading required keys... error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: keyring is not writable error: required key missing from keyring error: failed to commit transaction (unexpected error) Errors occurred, no packages were upgraded. [root@archlinuxct ~]#
I tried to install archlinux-keyring package to solve the issue:
# pacman -S archlinux-keyring
But, no luck! I encountered with the same error. After a couple Google searches, I fixed the «error: required key missing from keyring» issue as shown below.
Run the following commands as root
user to fix «error: required key missing from keyring
« in Arch Linux and its variants like EndeavourOS and Manjaro Linux.
First, remove or reset all the keys installed in your system by removing the /etc/pacman.d/gnupg
directory as root
user:
# rm -r /etc/pacman.d/gnupg/
Next, run pacman-key --init
followed by pacman-key --populate
command to initialize the pacman keyring and re-add the default keys.
# pacman-key --init # pacman-key --populate archlinux # pacman-key --populate archlinux32
Please note that if you don’t use 32 bit system, you can skip the «pacman-key --populate archlinux32
» command.
Next, run the following command to manually update the keys.
# pacman-key --refresh-keys
While doing --refresh-keys
, your local key will also be looked up on the remote keyserver, and you will receive a message about it not being found. This is nothing to be concerned about. This will take several minutes to complete, so please be patient!
And then clean the package cache using command:
# pacman -Sc
Finally, update the software repository list and upgrade your Arch Linux by running the following command:
# pacman -Syyu
Now you will be able to upgrade your Arch Linux system without any issues. Hope this helps.
Reference Link:
- Arch Linux Forum
sk
Senthilkumar Palani (aka SK) is the Founder and Editor in chief of OSTechNix. He is a Linux/Unix enthusiast and FOSS supporter. He lives in Tamilnadu, India.
Вопрос на рассмотрении
Вы сообщаете, что не можете использовать Pacman, как ожидалось, из-за следующей ошибки:
Как указал пользователь GAD3R, существуют известные исправления этой ошибки. Однако вы сообщаете, что они не работают. Причина этого в том, что управление ключами было испорчено. Вы не успели обновить систему или у вас есть что-то, вызывающее эту проблему.
Исправление брелоков
В этом ответе я буду ссылаться на несколько сообщений. Вам следует прочитать их полностью, прежде чем вносить какие-либо исправления. ссылка на пост от GAD3R действительно работает, просто вам могут понадобиться дополнительные шаги. Одна серия шагов, которые необходимо предпринять, описана здесь на форумах Manjaro. Вот еще одно возможное решение, которое я нашел на форумах Manjaro.
Первая попытка
Если это не сработает, вам может понадобиться более сложное решение.
Починка брелоков
По словам пользователя Chrysostomus на форумах Manjaro, вы должны быть в состоянии решить проблему с помощью этих команд.
sudo rm -r /etc/pacman.d/gnupg
sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring
sudo pacman-key —init
sudo pacman-key —populate archlinux manjaro
sudo pacman-key —refresh-keys
sudo pacman -Sc
Затем попытайтесь запустить обновление. Chrysostomus сообщает, что если это не сработает, ваши пакеты могут быть повреждены. Чтобы исправить это, вам может понадобиться выполнить чистую установку с Manjaro ISO.
Альтернативное решение
Вот другой способ потенциального решения проблемы от пользователя stephane
sudo pacman-mirrors
sudo pacman -Syy
sudo pacman -S archlinux-keyring manjaro-keyring
sudo pacman-key —init
sudo pacman-key —populate archlinux manjaro
sudo pacman-key —refresh-keys
sudo pacman -Syu
Опять же, ваша проблема может заключаться в устаревших зеркалах, неактуальных или поврежденных пакетах. Вы можете попытаться решить эту проблему, убедившись, что ваш список зеркал полностью обновлен, прежде чем устанавливать Manjaro из последнего обновления.
Заключение
Вам необходимо обновить зеркала и брелоки. Возможно, вам придется удалить существующие ключи. Возможное объяснение заключается в том, что вы попали в неудобный период между датой выпуска и обновлением брелоков. Возможно, вам придется подождать выхода более нового ISO и переустановить систему с помощью этого ISO.
Пожалуйста, прокомментируйте, если у вас возникли вопросы или проблемы с этим ответом. Я ценю обратную связь, чтобы исправить любые заблуждения и улучшить свои сообщения. Я могу обновить свой ответ, если вы сообщите нам дополнительные подробности.
Желаю удачи!
oz wrote:
The installer image got broken some time ago because of this. It started when the ISO image was switched to loading itself in to RAM before running. In the installation guide step «1.8 Update the system clock» it is CRITICALLY important, which is not mentioned. I mean if that’s not working then you MUST stop and get it working before continuing.
If it fails to activate NTP then pacman-init will never run. There is no message or hint that something is wrong but any attempt to use pacman will get weird signature, keyring, etc errors. Those aren’t the real problem. The real problem is that NTP hasn’t initialized (and in turn pacman-init). There really should be messages that describe the problem.
This can also be a problem on machines that have network access but not Internet access. The system gets confused.
Also, it’s really difficult to work while in the install image because there is no space to install more packages in the installer environment.
All of this used to work. The old system was better.
Thanks!
I just had pacstrap to fail during the installation of Arch Linux through a recently downloaded, fresh ISO and ended up in this thread.
After reading the reply above, I ran
and got «System clock synchronized: no». This raised a red flag. Then I ran
$ systemctl status pacman-init.service
and it was dead. This raised another red flag.
I started looking up for services related to time synchronization, and found «systemd-timesyncd.service». I ran
$ systemctl status systemd-timesyncd.service
and the output showed that it was timing out while trying to connect to some kind of public NTP server. It turns out that there is a file «/etc/systemd/timesyncd.conf» where this can be configured. I edited it and saved it like this:
[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
Basically, I just copied what was into FallbackNTP= to NTP= and uncommented those lines (other lines left commented).
After that, I restarted the service:
$ systemctl restart systemd-timesyncd.service
Finally, running
gave me «System clock synchronized: yes»; and running
$ systemctl status pacman-init.service
told me the service was active.
And now pacstrap worked.