Advertisement
Shnatsel

WhatInstalls2.sh

Mar 25th, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3. # Find out what caused the given package to installed,
  4. # i.e. what other package pulled it in as a dependency.
  5.  
  6. # Usage: ./WhatInstalls.sh package-name
  7.  
  8. set -e
  9. depending_pkgs_file="$(mktemp)"
  10. recommending_pkgs_file="$(mktemp)"
  11. installed_pkgs_file="$(mktemp)"
  12.  
  13. apt-rdepends -r "$1" | grep ':' | cut -d ' ' -f 5 | sort -u > "$depending_pkgs_file"
  14. apt-rdepends -r --follow='Depends,Recommends' "$1" | grep ':' | cut -d ' ' -f 5 | sort -u > "$recommending_pkgs_file"
  15. dpkg --get-selections | cut -f 1 | sort -u > "$installed_pkgs_file"
  16.  
  17. # Filter out packages that were installed as a dependency for another package
  18. depending_pkgs_filtered="$(comm -12 "$depending_pkgs_file" "$installed_pkgs_file")"
  19. recommending_pkgs_prefiltered="$(comm -12 "$recommending_pkgs_file" "$installed_pkgs_file")"
  20. # Filter out strictly dependent packages from recommending pkgs list
  21. recommending_pkgs_filtered="$(echo "$recommending_pkgs_prefiltered" | comm -23 - "$depending_pkgs_file")"
  22.  
  23. [ -n "$depending_pkgs_filtered" ] && echo "### The following manually installed packages depend on $1: ###
  24. $depending_pkgs_filtered"
  25.  
  26. [ -n "$recommending_pkgs_filtered" ] && echo "### The following manually installed packages pull it in as a recommendation: ###
  27. $recommending_pkgs_filtered"
  28.  
  29. rm "$depending_pkgs_file" "$recommending_pkgs_file" "$installed_pkgs_file"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement