diff options
Diffstat (limited to 'chapter02/aboutdependencies.xml')
-rw-r--r-- | chapter02/aboutdependencies.xml | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/chapter02/aboutdependencies.xml b/chapter02/aboutdependencies.xml deleted file mode 100644 index 065f9a864..000000000 --- a/chapter02/aboutdependencies.xml +++ /dev/null @@ -1,57 +0,0 @@ -<sect1 id="prepare-aboutdependencies"> -<title>About dependencies</title> -<?dbhtml filename="aboutdependencies.html" dir="chapter02"?> - -<!-- Leave this file in the repo until we figure out finally what to do with -dependencies --> - -<para>There are a few ways to compile a list of a package's installation -dependencies. What we consider the best way is using the -<command>strace</command> program available at <ulink -url="http://www.wi.leidenuniv.nl/~wichert/strace/"/>.</para> - -<para><command>strace</command> 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 <emphasis>execve(2)</emphasis> -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.</para> - -<para>Here is a line of output from running a configure script:</para> - -<screen>19580 execve("/bin/rm", ["rm", "-f", "conf19538", "conf19538.exe", "conf19538.file"], [/* 26 vars */]) = 0</screen> - -<para>This line tells us that the <command>/bin/rm</command> 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).</para> - -<para>For dependency purposes all we care about is that -<command>/bin/rm</command> was run during the configure script, so this is -an installation dependency. Without <command>rm</command>, the script -wouldn't be able to run properly.</para> - -<para>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 <command>autoconf</command> 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.</para> - -<para>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.</para> - -<para>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>.</para> - -</sect1> - |