View difference between Paste ID: gNvzkrPf and WPPKcpHK
SHOW: | | - or go back to the newest paste.
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-
comm -12 "$depending_pkgs_file" "$installed_pkgs_file"
15+
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"