on trying to update my system i get the following report
pacman -S llvm
resolving dependencies…
looking for conflicting packages…
error: could not open file /var/lib/pacman/local/llvm-21.1.6-2/desc: No such file or directory
warning: could not fully load metadata for package llvm-21.1.6-2
error: failed to prepare transaction (invalid or corrupted package .
I noticed in the Arch Repo that version is flagged as out of date is there a fix or do i just block the upgrade untill a new version of llvm is released
This system is fully up to date and running ok apart from i HATE Wayland bring back Xorg
In the extra repo llvm is at 21.1.8-1, so perhaps your system is not up-to-date. Have you tried sudo pacman -Syu llvm, or updating your mirrors (for instance, with sudo pacman-mirrors --fasttrack)?
Hi Just tried updating the mirror list same response
:: Starting full system upgrade…
error: could not open file /var/lib/pacman/local/llvm-21.1.6-2/desc: No such file or directory
resolving dependencies…
looking for conflicting packages…
warning: could not fully load metadata for package llvm-21.1.6-2
error: failed to prepare transaction (invalid or corrupted package)
You need these metadata files for all your installed packages. Theses files are extremely important. If you lost one, it can indicate a Hardware failure. Without even one, pacman can not update a package.
To get the correct file back, delete /var/lib/pacman/local/llvm-21.1.6-2 and install the missing package version again with
Why is nobody reading the error message?
The mentioned version number is not the version number the package will be updated to!
It is the version number that is currently installed. To update a package, pacman needs to read the metadata for the currently installed version. These metadata files are stored in /var/lib/pacman/local/. If these files are missing pacman will not update the packages. If the package is part of a larger update, the complete update will not start and will end with an error.
You do have for every installed package a folder in /var/lib/pacman/local/ with the package name and version number. If a package gets updated, the files in theses folders get read in. If the folder or a file is missing the package can’t be updated. In the update process the old version folder is removed and the new version folder is created.
If you don’t have a specific package installed, you don’t have the folder. After the install, you will get the a folder but for the current version, not for an old version.
This works, but can be dangerous. Because if you do it for a package that is needed by pacman, the update after the remove will not work.
For example, if you do it for curl this way, you would need to use a static pacman version to update.
But of course for this specific package, you can do it. Just be aware of the consequences by this approach.