при попытке обновления получаем стандартную ошибку ключей.
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.
Loading
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.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
- Pick a username
- Email Address
- Password
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
335
Today, I deployed a new Arch Linux Container in myProxmox VEserver. 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 ~]#
Solve – error: required key missing from keyring in Arch Linux
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 asroot
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 asroot
user:
# rm -r /etc/pacman.d/gnupg/
Next, runpacman-key --init
followed bypacman-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