You can create a pacman hook which executes paccache to clean the pacman cache everytime pacman is run. Just a simple file saved in /etc/pacman.d/hooks.
Before anything check /etc/pacman.conf if the line Hookdir=/etc/pacman.d/hooks has been uncommented. If not, then uncomment it. edit: By default the config file looks at the directory, you can ignore this step if you are putting the .hook file in the default location.
In your favorite text editor create a file to be saved in /etc/pacman.d/hooks.
An example of a pacman hook to clean the cache:
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Package
Target = *
[Action]
Description = Cleaning pacman cache...
When = PostTransaction
Exec = /usr/bin/paccache -r
Whenever you upgrade, install or remove a package using pacman, it should pull the hook.
[partial pacman -Syu print]
:: Processing package changes...
(1/1) upgrading firefox [########################################################] 100%
:: Running post-transaction hooks...
(1/4) Cleaning pacman cache...
==> no candidate packages found for pruning
[partial pacman -Syu print]
See the hooks built in for pacman here along with the one user added.
[print starts]
:: Processing package changes...
(1/6) upgrading geocode-glib [########################################################] 100%
(2/6) upgrading libsystemd [########################################################] 100%
(3/6) upgrading mesa [########################################################] 100%
(4/6) upgrading systemd [########################################################] 100%
(5/6) upgrading systemd-sysvcompat [########################################################] 100%
(6/6) upgrading vulkan-intel [########################################################] 100%
:: Running post-transaction hooks...
(1/7) Updating linux initcpios
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 4.12.4-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [mdadm_udev]
-> Running build hook: [lvm2]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 4.12.4-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
-> Running build hook: [mdadm_udev]
-> Running build hook: [lvm2]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
(2/7) Cleaning pacman cache...
==> no candidate packages found for pruning
(3/7) Updating icon theme caches...
(4/7) Updating udev hardware database...
(5/7) Updating system user accounts...
(6/7) Creating temporary files...
(7/7) Arming ConditionNeedsUpdate...
[print ends]
Comments