Dependencies

Lucas C. Villa Real edited this page Sep 23, 2016 · 2 revisions
Clone this wiki locally

Queries dependencies in a GoboLinux package. It scans the files from a program and verifies the relations to other files through dynamic linking (using the program ldd). This way, it can identify dependency relations between packages.

Table of Contents

Usage

Usage: Dependencies { [-c] <package></package> [<version></version>] | -f <file></file> }

Options

  • -h, --help
    Shows this help.
  • -v, --version
    Show program version.
  • -V, --verbose
    Enable verbose mode.
  • -f, --file
    Show dependencies of one file only.
  • -c, --check
    Check the package's dependency file, instead of generating one.
  • -r, --reverse
    Reverse dependency checking: indicate which programs depend on the given program (version is taken into account if given)
  • -a, --all
    Inspect all files, not only those in 'bin', 'sbin' and 'lib'.
  • -m, --missing-only
    Display missing dependencies only. (check mode only)
  • -H, --higher-or-missing-only
    Display missing dependencies or higher versions only. (check mode only)
  • -l, --list
    List dependency file, if any (generate if not present).
  • -d, --dependencies-file
    Do not look at parses the passed file.
  • -e, --execute <entry></entry>
    Execute the command on each missing/higher. (check mode only)
  • -b, --batch
    Batch mode: avoid asking questions.
  • -p, --programs <entry></entry>
    <dir></dir> to check dependencies against.
  • -w, --write
    Write dependencies to Resources/Dependencies.
  • -k, --keep-going
    Don't quit immediately if any executed program fails (check execute mode only).

Notes

If no version is specified, Current is assumed.

Configuring Dependencies

Today there are many programs implementing a given feature in different ways. One such example is the OpenGL API, with implementations floating in packages such as Xorg, MesaLib and Nvidia. However, not every user owns a Nvidia card, and here comes a problem: how should one mask Nvidia from the automated Dependencies list generated after creating a recipe? This problem is now fixed with a configurable file called /Programs/Scripts/Settings/Scripts/Dependencies.blacklist.

Dependencies.blacklist

This file allows one to specify packages that should not appear in the Dependencies file after creating a new recipe. Its format is pretty simple: one package per line, without the need to specify its version.

An Dependencies.blacklist example

The following example blacklists the packages Glibc and Nvidia. Comments and blank lines are ignored by the parser, so it's ok to include them.

Glibc
Nvidia

Note: presently blacklisting specific versions is not supported, but the same behaviour can be achieved by creating an empty directory in the /Programs directory. For example, to blacklist GCC version 4.1.2 you may:

mkdir /Programs/GCC/4.1.2