Difference between revisions of "Pacman troubleshooting/en"
Views
Actions
Namespaces
Variants
Tools
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 22: | Line 22: | ||
It is mandatory to ensure that the keyrings is current. By ensuring the keyrings are in shape and then redownloading the databases we reestablish the chain of trust between the keyrings and the packages. | It is mandatory to ensure that the keyrings is current. By ensuring the keyrings are in shape and then redownloading the databases we reestablish the chain of trust between the keyrings and the packages. | ||
'''You will have to find the correct names by looking at''' | '''You will have to find the correct names by looking at''' | ||
Browse [https://mirror. | Browse [https://mirror.easyname.at/manjaro/pool/overlay/ https://mirror.easyname.at/manjaro/pool/overlay/] for the current manjaro-keyring | ||
and | and | ||
Browse [https://mirror. | Browse [https://mirror.easyname.at/manjaro/pool/sync https://mirror.easyname.at/manjaro/pool/sync] for the current archlinux-keyring | ||
'''Replace yyyymmdd and x with the info found at the above links''' | '''Replace yyyymmdd and x with the info found at the above links''' | ||
{{UserCmd|command=sudo pacman -U <nowiki>https://mirror.easyname.at/manjaro/pool/overlay/manjaro-keyring-yyyymmdd-x-any.pkg.tar.xz</nowiki>}} | |||
{{UserCmd|command=sudo pacman -U <nowiki>https://mirror.easyname.at/manjaro/pool/sync/archlinux-keyring-yyyymmdd-x-any.pkg.tar.xz</nowiki>}} | |||
'''Remove your faulty databases''' | '''Remove your faulty databases''' | ||
{{UserCmd|command=sudo rm -f /var/lib/pacman/sync/*}} | |||
'''Download the databases and update the system''' | '''Download the databases and update the system''' | ||
{{UserCmd|command=sudo pacman -Syyu}} | |||
== "Unable to lock database" Error == | == "Unable to lock database" Error == | ||
Line 47: | Line 47: | ||
It is therefore wise to first check to ensure that another installation is not (or had not been) in process at the time of the error. When satisfied that this is not the case, then the database lock file can be manually deleted. To do so, open up the terminal and enter the following command: | It is therefore wise to first check to ensure that another installation is not (or had not been) in process at the time of the error. When satisfied that this is not the case, then the database lock file can be manually deleted. To do so, open up the terminal and enter the following command: | ||
{{UserCmd|command=sudo rm /var/lib/pacman/db.lck}} | |||
Once done, you should now be able to successfully re-attempt your intended installation. | Once done, you should now be able to successfully re-attempt your intended installation. | ||
== Errors about Keys == | == Errors about Keys == | ||
Line 66: | Line 64: | ||
{{Warning|The following commands only work, when your system time is set correctly! }} | {{Warning|The following commands only work, when your system time is set correctly! }} | ||
'''1. Remove old (and possibly broken) keys''' by entering this command: | |||
{{UserCmd|command=sudo rm -r /etc/pacman.d/gnupg}} | |||
'''2. Reinstall keyrings including the latest keys''': | '''2. Reinstall keyrings including the latest keys''': | ||
{{UserCmd|command=sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring}} | |||
'''3. Initialize the pacman keyring''': | |||
{{UserCmd|command=sudo pacman-key --init}} | |||
''' | |||
'''4. Load the signature keys''': | '''4. Load the signature keys''': | ||
{{UserCmd|command=sudo pacman-key --populate archlinux manjaro}} | |||
'''5. Refresh and update the signature keys''': | '''5. Refresh and update the signature keys''': | ||
{{UserCmd|command=sudo pacman-key --refresh-keys}} | |||
'''6. Clear out the software packages downloaded during the aborted installation''' (optional): | '''6. Clear out the software packages downloaded during the aborted installation''' (optional): | ||
{{UserCmd|command=sudo pacman -Sc}}</s> | |||
{{BoxInfo|Info|Improved version added, since it doesn't work that way above. The packages are signed and since '''/etc/pacman.d/gnupg''' has been removed, it cannot be installed due the check. Instead editing the '''/etc/pacman.conf''' and lowering the SigLevel, it would be better installing the keyrings without a check manually to overcome this problem.}} | {{BoxInfo|Info|Improved version added, since it doesn't work that way above. The packages are signed and since '''/etc/pacman.d/gnupg''' has been removed, it cannot be installed due the check. Instead editing the '''/etc/pacman.conf''' and lowering the SigLevel, it would be better installing the keyrings without a check manually to overcome this problem.}} | ||
'''1. Remove old (and possibly broken) keys''' by entering this command: | '''1. Remove old (and possibly broken) keys''' by entering this command: | ||
{{UserCmd|command=sudo rm -r /etc/pacman.d/gnupg}} | |||
'''2. Initialize the pacman keyring''': | '''2. Initialize the pacman keyring''': | ||
{{UserCmd|command=sudo pacman-key --init}} | |||
'''3. Download the packages:''' | '''3. Download the packages:''' | ||
{{BoxInfo|Info| GPG check errors can be ignored, since it only downloads the keyring packages.}} | {{BoxInfo|Info| GPG check errors can be ignored, since it only downloads the keyring packages. | ||
Those running ARM may also need to download archlinuxarm-keyring and manjaro-arm-keyring. | |||
}} | |||
{{UserCmd|command=mkdir -pv $HOME/.cache/pkg/ && sudo pacman -Syw archlinux-keyring manjaro-keyring --cachedir $HOME/.cache/pkg/}} | |||
'''4. Remove the signatures:''' | '''4. Remove the signatures:''' | ||
{{BoxInfo|Info| Signatures must be removed to avoid the automatic check of the packages.}} | {{BoxInfo|Info| Signatures must be removed to avoid the automatic check of the packages.}} | ||
{{UserCmd|command=rm -f $HOME/.cache/pkg/*.sig}} | |||
'''5. Install the downloaded packages manually: | '''5. Install the downloaded packages manually: | ||
{{BoxInfo|Info|This will also trigger the populate process.}} | {{BoxInfo|Info|This will also trigger the populate process.}} | ||
{{UserCmd|command=sudo pacman -U $HOME/.cache/pkg/*.tar.zst}} | |||
{{UserCmd|command=sudo pacman -U $HOME/.cache/pkg/*.tar.xz}} | |||
'''6. Clear out the software packages downloaded during the aborted installation''' (optional): | '''6. Clear out the software packages downloaded during the aborted installation''' (optional): | ||
{{warning|The above command clears the pacman cache completely, and one will not be able to downgrade to a previous version of a package if required. Instead packages that are causing signing errors can be removed individually when upgrading.}} | {{warning|The above command clears the pacman cache completely, and one will not be able to downgrade to a previous version of a package if required. Instead packages that are causing signing errors can be removed individually when upgrading.}} | ||
{{UserCmd|command=sudo pacman -Sc}} | |||
'''7. Remove the custom package folder:''' (optional): | '''7. Remove the custom package folder:''' (optional): | ||
{{UserCmd|command=sudo rm -Rf $HOME/.cache/pkg/}} | |||
After that try running '''sudo pacman -Syu''' to see if the errors were resolved. | After that try running '''sudo pacman -Syu''' to see if the errors were resolved. | ||
Line 149: | Line 139: | ||
The first step is to identify which, if any, package owns the file. This can be easily done with: | The first step is to identify which, if any, package owns the file. This can be easily done with: | ||
{{UserCmd|command=pacman -Qo /path/to/file}} | |||
If this identifies a conflicting package you can decide to remove it with pacman -R. If no package is identified you can delete the file (or move it to a backup location). | If this identifies a conflicting package you can decide to remove it with pacman -R. If no package is identified you can delete the file (or move it to a backup location). | ||
Line 183: | Line 173: | ||
1. Download the package databases and update your system: | 1. Download the package databases and update your system: | ||
sudo pacman -Syyu | {{UserCmd|command=sudo pacman -Syyu}} | ||
2. Clear out the software packages downloaded during the aborted installation by entering the command: | 2. Clear out the software packages downloaded during the aborted installation by entering the command: | ||
sudo pacman -Sc | {{UserCmd|command=sudo pacman -Sc}} | ||
3. Re-attempt the aborted download. | 3. Re-attempt the aborted download. | ||
Line 194: | Line 184: | ||
If the basic proceedure still does not resolve the matter, further steps are available: | If the basic proceedure still does not resolve the matter, further steps are available: | ||
1. Resynchronise with the Manjaro servers to ensure that everything is up to date by entering the command: | 1. Resynchronise with the Manjaro servers to ensure that everything is up to date by entering the command: | ||
{{UserCmd|command=sudo pacman -Syy}} | |||
2. Refresh and update the signature keys by entering the command: | 2. Refresh and update the signature keys by entering the command: | ||
{{UserCmd|command=sudo pacman-key --refresh-keys}} | |||
3. Reload the signature keys by entering the command: | 3. Reload the signature keys by entering the command: | ||
{{UserCmd|command=sudo pacman-key --populate archlinux manjaro}} | |||
4. Clear out the software packages downloaded during the aborted installation by entering the command: | 4. Clear out the software packages downloaded during the aborted installation by entering the command: | ||
{{UserCmd|command=sudo pacman -Sc}} | |||
5. Re-attempt the aborted download. | 5. Re-attempt the aborted download. | ||
If the error still persists, then it is recommended to '''[[Change to a Different Download Server|Change to a Different Download Server]]'''. | |||
If the error still persists, then it is recommended to '''[[Change to a Different Download Server]]'''. | |||
Line 221: | Line 205: | ||
Try running the following command: | Try running the following command: | ||
{{UserCmd|command=sudo dirmngr <nowiki></dev/null</nowiki>}} | |||
= See Also = | = See Also = | ||
* '''[[Change to a Different Download Server]]''' | * '''[[Change to a Different Download Server|Change to a Different Download Server]]''' | ||
* '''[[Pacman-mirrors|Reference Guide for pacman-mirrors]]''' | * '''[[Pacman-mirrors|Reference Guide for pacman-mirrors]]''' | ||
* '''[https://wiki.archlinux.org/index.php/Pacman#Troubleshooting Arch wiki for more comprehensive troubleshooting]''' | * '''[https://wiki.archlinux.org/index.php/Pacman#Troubleshooting Arch wiki for more comprehensive troubleshooting]''' | ||
[[Category:Contents Page{{#translation:}}]] | [[Category:Contents Page{{#translation:}}]] |
Revision as of 09:25, 29 December 2022
Software Installation
Various issues relating to the download and installation of software packages from the Manjaro repositories are dealt with here.
"Unrecognized archive format" Error
It has ocurred more than once, an update is issuing these messages in a seemingly never ending stream. Pacman could not open file: sync files
error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format error: could not open file /var/lib/pacman/sync/extra.db: Unrecognized archive format error: could not open file /var/lib/pacman/sync/community.db: Unrecognized archive format error: could not open file /var/lib/pacman/sync/multilib.db: Unrecognized archive format
The error relates to a mismatch in the information contained in the db files at the mentioned location and the db files at the first mirror in your mirrorlist. Pacman checks a package in the database and sees if the signature file matches the one in the database. If it does not, then pacman will say the package is corrupted.
While it sometimes is possible to fix the issue simply by deleting the files and the running a pacman update it far from every time.
One recipe for fixing this
It is mandatory to ensure that the keyrings is current. By ensuring the keyrings are in shape and then redownloading the databases we reestablish the chain of trust between the keyrings and the packages.
You will have to find the correct names by looking at
Browse https://mirror.easyname.at/manjaro/pool/overlay/ for the current manjaro-keyring
and
Browse https://mirror.easyname.at/manjaro/pool/sync for the current archlinux-keyring
Replace yyyymmdd and x with the info found at the above links
Remove your faulty databases
Download the databases and update the system
"Unable to lock database" Error
When downloading and installing software from the repositories, a special database lock file will be created in order to ensure that the current installation process is the only one running at that time. Otherwise, attempting to install multiple files from multiple sources simultaneously may corrupt the downloaded files, cause file conflicts - or worse still - damage your system. Once the installation has been completed, the lock file will then be automatically deleted. This error may therefore occur due to two possible reasons:
- Another installation is still taking place and has not yet finished, or
- A previous installation attempt had not finished properly (e.g. due to being aborted early)
It is therefore wise to first check to ensure that another installation is not (or had not been) in process at the time of the error. When satisfied that this is not the case, then the database lock file can be manually deleted. To do so, open up the terminal and enter the following command:
Once done, you should now be able to successfully re-attempt your intended installation.
Errors about Keys
We all have our own unique signatures which are used to authenticate who we are and to prevent fraudulent or even malicious activities by others. This is also the case with software packages available from the software repositories. They all contain encrypted codes (signature keys) unique to their developers to ensure that they are authentic and not malicious in nature.
During the installation process, once any software packages have been downloaded, your system will first check their signature keys to ensure that they are authentic prior to actually installing them. If a signature key cannot be verified for any reason, then the installation process will be aborted. This problem will usually occur due to:
- one or more signature keys contained in your system's database being revoked, changed, corrupted, or out of date
- one or more software packages not having been signed off properly when placed in a repository
Where a package has not been signed off properly before being placed in a repository, it will be the responsibility of the developer(s) to correct this. However, as this problem will be more than likely due to a problem with your system's verification of a signiture key, this can be solved in three easy steps. Working net connection is required. Once you have opened your terminal:
1. Remove old (and possibly broken) keys by entering this command:
2. Reinstall keyrings including the latest keys:
3. Initialize the pacman keyring:
4. Load the signature keys:
5. Refresh and update the signature keys:
6. Clear out the software packages downloaded during the aborted installation (optional):
1. Remove old (and possibly broken) keys by entering this command:
2. Initialize the pacman keyring:
3. Download the packages:
4. Remove the signatures:
5. Install the downloaded packages manually:
6. Clear out the software packages downloaded during the aborted installation (optional):
7. Remove the custom package folder: (optional):
After that try running sudo pacman -Syu to see if the errors were resolved.
Conflicting files - FILENAME exists in filesystem
If you cant can't install or update a package because of an error like this:
error: could not prepare transaction error: failed to commit transaction (conflicting files) libname: /insert/file/name/here exists in filesystem Errors occurred, no packages were upgraded.
Then the package manager, pacman, has detected an unexpected file that already exists on the disk.
Why is this happening?
By design pacman will not overwrite files that already exist. This is a design feature, not a flaw - package managers are designed to keep track of installed files.
This issue normally happens because you've manually added, copied, or created a file. It can also happen when you install software using a downloaded executable, run a make install, or use a third-party package system such as conda. It also occurs when you install an AUR package which installs files that conflict with a repo package.
When using a third-party installer you should always specify an alternative installation location, such as under your home directory, or under /opt or /usr/local/. Never install directly under / or /usr.
How can I fix this?
The first step is to identify which, if any, package owns the file. This can be easily done with:
If this identifies a conflicting package you can decide to remove it with pacman -R. If no package is identified you can delete the file (or move it to a backup location).
Where can I read more?
This post was inspired by (and adapted from):
https://wiki.archlinux.org/title/Pacman#%22Failed_to_commit_transaction_(conflicting_files)%22_error
The above post also has links to further reading.
"Configuration file...not recognized" Error
Manjaro's package manager - pacman - uses a file called mirrorlist to tell it the internet addresses of the Manjaro servers in order to download updates and software applications from them. This error will therefore occur if one or more server addresses contained in the mirrorlist file have not been listed properly, resulting in pacman being unable to connect to them. Another tell-tale sign is that this problem will also be encountered immediately after:
- Installing Manjaro and editing the mirrorlist file during installation, or
- Editing the mirrorlist file at a later time.
See the Change to a Different Download Server guide for more detailed information on how to correctly select and enable another Manjaro server for downloading.
"GPGME error: No data" Error
The most likely cause of this issue is that an error or corruption has been detected by pacman in one or more software packages being downloaded. Package signatures and checksums are used to verify the validity of downloaded software, and should they fail, the installation attempt will be aborted to protect your system until the matter is resolved.
Option 1: Basic Resolution
To resolve this issue, first follow the basic procedure provided below. If this does not work, then there is a more comprehensive procedure available.
1. Download the package databases and update your system:
2. Clear out the software packages downloaded during the aborted installation by entering the command:
3. Re-attempt the aborted download.
Option 2: Comprehensive Resolution
If the basic proceedure still does not resolve the matter, further steps are available:
1. Resynchronise with the Manjaro servers to ensure that everything is up to date by entering the command:
2. Refresh and update the signature keys by entering the command:
3. Reload the signature keys by entering the command:
4. Clear out the software packages downloaded during the aborted installation by entering the command:
5. Re-attempt the aborted download.
If the error still persists, then it is recommended to Change to a Different Download Server.
"keyserver refresh failed: No dirmngr" Error
Try running the following command: