Advertisement
SunMar

oldlib-check

Nov 28th, 2014
542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.12 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Script to check for preserved or old libraries.
  4. # See http://pastebin.com/CAbtakst for gentoo-update.
  5. # Author: Marijn van Zon <marijn@suninet.org>
  6.  
  7. echo
  8.  
  9. preserved=`portageq list_preserved_libs /`
  10.  
  11. if [[ -n "${preserved}" ]]; then
  12.     echo "The following preserved libraries are kept by portage:"
  13.     echo
  14.     echo "${preserved}"
  15.     echo
  16.     echo "Running emerge @preserved-rebuild ..."
  17.     emerge -av @preserved-rebuild
  18.     exit $?
  19. fi
  20.  
  21. echo "There are no preserved libraries kept by portage."
  22. echo -n "Double-check for remaining old libraries ... "
  23.  
  24. find /lib32/ /usr/lib32/ /lib64/ /usr/lib64/ -type f -name '*.so*' \
  25.     | grep -v 'so$' \
  26.     | sed 's/\.so.*//' \
  27.     | sort \
  28.     > /tmp/duplib1.$$
  29.  
  30. sort -u < /tmp/duplib1.$$ > /tmp/duplib2.$$
  31.  
  32. check=`diff /tmp/duplib1.$$ /tmp/duplib2.$$ \
  33.     | grep '^<' \
  34.     | sed -e 's/^< /ls -1 /' -e 's/$/.so*/' \
  35.     | sh`
  36.  
  37. rm -f /tmp/duplib1.$$ /tmp/duplib2.$$
  38.  
  39. if [[ -z "${check}" ]]; then
  40.     echo "no old libraries found!"
  41.     echo
  42. else
  43.     echo "found the following libraries:"
  44.     echo
  45.     echo "${check}"
  46.     echo
  47.     exit 1
  48. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement