The other day, I was about to update my Arch Linux system. When I try to update the system, I encountered with "unable to lock database" error in Arch Linux. I could not install or remove any packages. This brief guide explains how to fix "unable to lock database" error in Arch Linux and its variants such as EndeavourOS and Manjaro Linux.
Root cause of "unable to lock database" Issue
The "unable to lock database" error in Arch Linux typically occurs when another process is already accessing the package database, such as a package manager or software update tool. This error prevents you from performing certain package management operations.
A lock file named /var/lib/pacman/db.lck
is created by Pacman to ensure that only one instance is modifying the system package database at any given time, preventing potential corruption.
To resolve this issue, verify if any other package manager or software updater is currently running. Sometimes, you may have accidentally opened multiple instances of package managers or update tools. Close any currently running package management tools or it is better to wait for them to finish their operations.
If there are no active package management processes, you can delete the lock files manually as shown in the following steps.
Fix "unable to lock database" Error in Arch Linux
Here is the command that I entered to update my Arch Linux system:
# pacman -Syu
And, It returned the following error:
:: Synchronizing package databases... error: failed to update core (unable to lock database) error: failed to update extra (unable to lock database) error: failed to update community (unable to lock database) error: failed to update multilib (unable to lock database) error: failed to synchronize any databases error: failed to init transaction (unable to lock database) error: could not lock database: File exists if you're sure a package manager is not already running, you can remove /var/lib/pacman/db.lck
The beauty of Linux distros is sometimes they occasionally present error messages along with explicit solutions.
As you can see in the above output, it says: ".. you can remove /var/lib/pacman/db.lck".
So, I simply deleted the aforementioned file with command:
$ sudo rm /var/lib/pacman/db.lck
Voila! It worked. I can then able to update, install and remove without any problems.
$ sudo pacman -Syu
Sample output:
:: Synchronizing package databases... core 122.8 KiB 162K/s 00:01 [######################] 100% extra 1771.8 KiB 249K/s 00:07 [######################] 100% community 3.3 MiB 256K/s 00:13 [######################] 100% multilib 163.5 KiB 265K/s 00:01 [######################] 100% :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Packages (8) ca-certificates-mozilla-3.22-1 coreutils-8.25-1 curl-7.47.1-1 gcc-5.3.0-4 gcc-libs-5.3.0-4 libgcrypt-1.6.5-1 nano-2.5.2-1 pacman-mirrorlist-20160208-2 Total Download Size: 42.79 MiB Total Installed Size: 187.90 MiB Net Upgrade Size: 0.91 MiB :: Proceed with installation? [Y/n] y :: Retrieving packages ... gcc-libs-5.3.0-4-x86_64 12.7 MiB 261K/s 00:50 [######################] 100% coreutils-8.25-1-x86_64 2.1 MiB 262K/s 00:08 [######################] 100% ca-certificates-moz... 363.0 KiB 241K/s 00:02 [######################] 100% curl-7.47.1-1-x86_64 798.3 KiB 263K/s 00:03 [######################] 100% gcc-5.3.0-4-x86_64 26.1 MiB 247K/s 01:48 [######################] 100% libgcrypt-1.6.5-1-x... 403.5 KiB 244K/s 00:02 [######################] 100% nano-2.5.2-1-x86_64 407.0 KiB 262K/s 00:02 [######################] 100% pacman-mirrorlist-2... 5.3 KiB 408K/s 00:00 [######################] 100% (8/8) checking keys in keyring [######################] 100% (8/8) checking package integrity [######################] 100% (8/8) loading package files [######################] 100% (8/8) checking for file conflicts [######################] 100% (8/8) checking available disk space [######################] 100% :: Processing package changes... (1/8) upgrading gcc-libs [######################] 100% (2/8) upgrading coreutils [######################] 100% (3/8) upgrading ca-certificates-mozilla [######################] 100% (4/8) upgrading curl [######################] 100% (5/8) upgrading gcc [######################] 100% (6/8) upgrading libgcrypt [######################] 100% (7/8) upgrading nano [######################] 100% (8/8) upgrading pacman-mirrorlist [######################] 100% warning: /etc/pacman.d/mirrorlist installed as /etc/pacman.d/mirrorlist.pacnew
Hope this helps.
32 comments
When I try to do this, i get “rm: cannot remove ‘/var/lib/pacman/db.lck’: No such file or directory. What do I do?
It means the lockfile isn’t present at the specified location. Please re-run the “sudo pacman -Syu” command and see if it runs this time.