I tried to run sudo pacman -Syu after updating my system. Last update was performed on October 13. Looking at the Stable announcements, I was under the impression that I had all major updates installed. Unfortunately today I am receiving the following errors:
sudo pacman -Syu
:: Synchronizing package databases...
core 141.5 KiB 990 KiB/s 00:00 [----------------------] 100%
extra 8.0 MiB 18.7 MiB/s 00:00 [----------------------] 100%
multilib 143.9 KiB 1007 KiB/s 00:00 [----------------------] 100%
:: Starting full system upgrade...
warning: python-pytest-xdist: unknown key '1724687091' in sync database
warning: python-pytest-xdist: unknown key '%CHECKDEPexecnet' in sync database
error: could not parse package description file 'python-pytest-xdist-3.5.0-2/desc' from db 'extra'
error: failed to prepare transaction (invalid or corrupted database)
Note that I ran sudo pacman-mirrors -f 0 followed by sudo pacman -Syyu first thing.
What can I do from here? I understand we shouldnāt delay maintenance but I am completely lost right now.
you can try to force refresh a redownload of all databases thru sudo pacman -Syy and also check potential keyring issues: pacman/Package signing - ArchWiki
Yes, the first command I ran was sudo pacman-mirrors -f 0 before attempting sudo pacman -Syyu. I will try some of the other suggestions and will report back.
This did the trick!
I thought sudo pacman -Syyu should have done what sudo pacman -Syy did except without issuing the update. How are they different?
You have that right. Syyu is Syy but the āupgradeā part runs after the forced refresh.
Unless doing something very specific, the u should be included any time a y (or yy) is issued.
Leaving out the number is the same as 0 which is the same as āallā.
(if you already have a custom mirror list, such as by region or protocol, then it is āallā of those)
I usually use and suggest -f (no number) for all those reasons, unless we know we want to break an existing pool, and because its the shortest variant to type.
It makes sense that āno inputā might equal āno integer distinctionā (so, if not exactly 6 from a group ā¦ all from group).
If you see it as -f optionally takes a numeric argument if you wish to limit the number of produced mirrors ā¦ then you can likewise see the 0 (or no input) as no limit.
Then again ā¦ that doesnt mean it cant be ācounterintuitiveā.
I may include that intuitiveness can be subjective.
If I read the help for the command, the number denotes the number of up to date mirrors I want.
I would not easily come to the conclusion that ā7ā produces a list of seven,ā5ā produces a list of five, ā2ā produces a list of two, but 0 ā¦ doesnāt follow that pattern.
It just looked strange to me and I have never seen it written this way (with a zero).
This would strike me as odd.
In your examples you only showed the one y (pacman -Syu)
Really doing pacman -Syyu should be identical to pacman -Syy && pacman -Su aside from the few seconds difference in between the upgrade portion. It would likewise be the same as pacman -Syy && pacman -Syu excepting the minute chance that a refresh was somehow required again in between ( that is some difference in the mirror found in the moments between -Syy and -Syu necessitating another refresh and it picked up by the single y on the second operation ).
If it is as you say then I dont really have an answer. I guess I would like to see the logs of it.
Just mentioning that pacman-mirrors does not necessarily guarantee that your mirrors will be up to date, especially if you happen to have a custom mirror pool with relatively few mirrors.