annotate deploy/linux/debian-dependencies.sh @ 522:8f016d8c021a saveall

Add Save All function, as proposed by Yi Ting Tan
author Chris Cannam
date Wed, 15 Mar 2017 13:41:33 +0000
parents 93efb2d59021
children a312db18f978
rev   line source
Chris@463 1 #!/bin/bash
Chris@463 2
Chris@463 3 target=$1
Chris@463 4
Chris@463 5 if [ ! -f "$target" ]; then
Chris@463 6 echo "Usage: $0 target-executable"
Chris@463 7 exit 1
Chris@463 8 fi
Chris@463 9
Chris@463 10 pfile=/tmp/packages_$$
Chris@463 11 rfile=/tmp/redundant_$$
Chris@463 12
Chris@463 13 trap "rm -f $pfile $rfile" 0
Chris@463 14 echo 1>&2
Chris@463 15
Chris@463 16 ldd "$target" | awk '{ print $3; }' | grep '^/' | while read lib; do
Chris@463 17 if test -n "$lib" ; then
Chris@463 18 dpkg-query -S "$lib"
Chris@463 19 fi
Chris@463 20 done | grep ': ' | awk -F: '{ print $1 }' | sort | uniq > $pfile
Chris@463 21
Chris@463 22 echo "Packages providing required libraries:" 1>&2
Chris@463 23 cat $pfile 1>&2
Chris@463 24 echo 1>&2
Chris@463 25
Chris@463 26 for p in `cat $pfile`; do
Chris@463 27 echo Looking at $p 1>&2
Chris@463 28 apt-cache showpkg "$p" | grep '^ ' | grep ',' | awk -F, '{ print $1; }' | \
Chris@463 29 while read d; do
Chris@463 30 if grep -q '^'$d'$' $pfile; then
Chris@463 31 echo $p
Chris@463 32 fi
Chris@463 33 done
Chris@463 34 done | sort | uniq > $rfile
Chris@463 35
Chris@463 36 echo "Packages that can be eliminated because other packages depend on them:" 1>&2
Chris@463 37 cat $rfile 1>&2
Chris@463 38 echo 1>&2
Chris@463 39
Chris@463 40 cat $pfile $rfile | sort | uniq -u | sed 's/$/,/' | fmt -1000 | sed 's/^/Depends: /' | sed 's/,$/, libc6/'
Chris@463 41
Chris@463 42