About dependencies There are a few ways to compile a list of a package's installation dependencies. What we consider the best way is using the strace program available at . strace is a program that provides a trace of all system calls made by another program. One of the most useful system calls to trace when figuring out dependencies is the execve(2) system call, which is used to execute programs (see its man page for all the details). Whenever you run a program, be it from a shell or via a configure script or Makefile file, the execve call is made. If you trace these calls, you will know what programs were executed behind the scenes. Here is a line of output from running a configure script: 19580 execve("/bin/rm", ["rm", "-f", "conf19538", "conf19538.exe", "conf19538.file"], [/* 26 vars */]) = 0 This line tells us that the /bin/rm program was run with a PID of 19580, which command line parameters it was given (rm -f conf195838 conf19538.exe conf19538.file) and its exit value (0). For dependency purposes all we care about is that /bin/rm was run during the configure script, so this is an installation dependency. Without rm, the script wouldn't be able to run properly. Unfortunately, this method is not foolproof. Configure scripts check for the presense of many programs, but not all of them are considered real dependencies. For instance, configure scripts may check for the presence of the autoconf program. It will be listed in the strace output, but it's not a real installation dependency. A package will in most if not all cases install just fine without that program. There are other such false positives. This means automatic dependency gathering is never accurate. You will always need to validate the list and figure out the false positives. In some (rare) cases autoconf might be a real dependency, so you can't simply ignore all autoconf entries. A manual validation really is a requirement for an accurate list. This book is not so verbose as to list exactly which program from which package is required for a successful installation (we used to, but it had become too much work to maintain it). The book will contain simply the names of packages you need to have installed. If you need the verbosity in the form of "package a needs file b and c from package d", have a look at <enter URL when it's available>.