[arch-general] Remove duplicate packages from /var/cache/pacman/pkg script updated
David C. Rankin
drankinatty at suddenlinkmail.com
Fri Sep 3 00:55:00 EDT 2010
In case anyone uses it, I updated my fduppkg script that scans
/var/cache/pacman/pkg and moves duplicate packages to a separate directory so
you can either keep the current + last package sets or just delete the dups.
This update just cleans up the output and adds an -s | --silent option that
suppresses all screen output and simply writes to the log file. Additionally the
screen output has been cleaned up so it looks like this now:
[14:18 alchemy:/home/david] # fduparch
fduppkg /var/cache/pacman/pkg -d /home/backup/pkg-old -l /home/backup/pkgdups.log
Total packages to screen: 2858
Removing duplicates from: /var/cache/pacman/pkg
Duplicates directory: /home/backup/pkg-old
Log file location: /home/backup/pkgdups.log
Verbose mode set: [use -q to stop pkg output | -s to stop all output]
pkg [ 434] feh dup => feh-1.8-1-x86_64.pkg.tar.xz
pkg [ 727] gstreamer0 dup =>
gstreamer0.10-ugly-0.10.15-4-x86_64.pkg.tar.xz
pkg [ 785] gtranslator dup => gtranslator-1.9.7-1-x86_64.pkg.tar.gz
pkg [1446] kernel26-docs dup =>
kernel26-docs-2.6.35.3-1-x86_64.pkg.tar.xz
pkg [1869] lpsolve dup => lpsolve-5.5.0.15-1-x86_64.pkg.tar.gz
pkg [1895] madwifi dup => madwifi-0.9.4.4119-2-x86_64.pkg.tar.xz
pkg [2043] obexd-client dup => obexd-client-0.29-3-x86_64.pkg.tar.xz
pkg [2070] openssh dup => openssh-5.5p1-1-x86_64.pkg.tar.xz
pkg [2263] pulseaudio dup => pulseaudio-0.9.21-8-x86_64.pkg.tar.xz
pkg [2399] ruby dup => ruby-1.9.1_p429-1-x86_64.pkg.tar.xz
pkg [2537] timidity++ dup => timidity++-2.13.2-9-x86_64.pkg.tar.xz
11 duplicates moved to /home/backup/pkg-old
I've set the package name field width to 26 as a compromise to handle most
package names. (You wouldn't have any screen left if it was wide enough for all
the screwy kde4 50+ char package names). If the output above wraps -- you get
the drift. In verbose mode (default) you get a summary showing the total number
of packages to be screened, being moved from /var/cache/pacman/pkg to the dupdir
you specify and the files moved are logged in the logfile you specify.
The package listing just shows the array index for the current package and
any dups found are shown on the right. I find it handy, YMMV. The way I use it
is to set up a 'wrapper script' to call fduppkg twice.
Once to move dups from /var/cache/pacman/pkg => /home/backup/pkg-old
Then again to move dups from /home/backup/pkg-old => /home/backup/pkg-older
That way I have the current set in /var/cache/pacman/pkg and a clean last
installed set in /home/backup/pkg-old. Plus moving to /home/backup will offload
the storage from / to /home partitions on most installs.
The main fduppkg scrip is here:
http://www.3111skyline.com/dl/Archlinux/scripts/fduppkg
The wrapper script I use to call fduppkg is here:
http://www.3111skyline.com/dl/Archlinux/scripts/fduparch.sh
I just link the scripts to /usr/local/bin as follows and then make sure
/usr/local/bin is in your path:
lrwxrwxrwx 1 root root 32 Apr 18 19:17 fduparch ->
/home/david/scr/arch/fduparch.sh
lrwxrwxrwx 1 root root 28 Apr 18 19:18 fduppkg ->
/home/david/scr/arch/fduppkg
Then once you have edited fduparch.sh and set the directories and options the
way you like it, just call fduparch as root or 'sudo fduparch' and all dups will
be moved to the directory you specify.
(NOTE: this script uses the package DATE to determine which is the newest
package, so if you have somehow reset all the ctime or mtime info on your files
by block copying them without preserving the file attributes, it won't work)
(Yes I know I have left comments and commented out stuff in the scripts, they
are still works in progress :-)
--
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com
More information about the arch-general
mailing list