Skip to content

by Joekamprad

A corrupted Pacman database usually is caused by sudden power loss when the system is running or during a system update. There is a way to prevent this from happening.

Backup automatically with systemd:

Automated backup In order to keep the back up up-to-date; automation of the aforementioned backup command makes sense.

This can be realized with the tool pakbak-git [AUR]
Pakbak is a bash script that is triggered by a Systemd service once the contents of the /var/lib/pacman/local directory have been changed.

After installing Pakbak, the destination and the number of backups to be kept in rotation can be set.

sudo nano /etc/pakbak.conf

# Backup the database to this folder
target_folder = /var/local/pakbak
# Define how long backups should be kept
keep_days = 5
# Define how many backups should be kept
keep_number = 5

Note:

The target directory must be created or already exist.
Environment variables in the path, such as $HOME will not be processed.

test if it is working

To test whether the bash script works as expected, you can manually initiate the execution with root privileges:

sudo sh /usr/lib/systemd/scripts/pakbak

Then enable the Systemd service, which is the directory /var/lib/pacman/local automatically monitored for changes:

sudo systemctl enable pakbak.path

Conclusion

Now you will have created regularly: pakbak-year-month-day-220137.tar.xz archives in the path you specified inside config file (target_folder = /var/local/pakbak)

You can easely unpack and replace to /var/lib/pacman/local in case of pamac databse corruption.

Automatic update of the Pacman database

  • by