Published: 31-12-2015 | Author: Remy van Elst | Text only version of this article

This small script shows you all packages [installed] that are a dependency from a package, and the dependencies of those packages. I installed the build- essential package, but apt-get remove-ing that package doens't remove the development tools. So I was wondering what packages were installed, including those dependencies, to remove the ones I didn't want. This small script shows you all packages that are dependencies of a package, and repeats that for those packages.

If you like this article, consider sponsoring me by trying out a Digital Ocean VPS. With this link you'll get $100 credit for 60 days). (referral link)

The code

Too small to create a github repo, so that's why you need to copy paste it.

#!/bin/bash # Small script to recursively show dependencies of packages # Author: Remy van Elst <raymii.org> pkgdep() { apt-cache depends --installed $1 | awk -F\: '{print $2}' | grep -v -e '<' -e '>' | awk 'NF' } for i in $(pkgdep $1); do pkgdep $i done | sort -u

Save and chmod +x . Execute with one package as parameter.

If you also want non-installed packages shown, remove the --installed parameter.

Examples

For the package bash :

# bash dep.sh bash bash debconf debianutils dpkg initscripts libc6 libc-bin libgcc1 libncurses5 locales multiarch-support sensible-utils tzdata

For the package build-essential :

# bash dep.sh build-essential base-files binutils bzip2 cpp debian-keyring fakeroot g++-4.7 gcc gcc-4.7 gnupg gpgv libalgorithm-merge-perl libc6 libc6-dev libc-dev-bin libdpkg-perl linux-libc-dev make manpages-dev patch xz-utils

You can remove the ones you don't want with an apt-get purge , but be carefull to not break your system. Removing libc6 will break stuff.

Tags: apt-get