Dependencies

From Linuxintro
Revision as of 10:35, 2 May 2011 by imported>ThorstenStaerk (→‎See also)

Software dependencies is if a software needs another software in order to be run, installed or built. To reduce complexity of software that you need to installed, software is grouped into packages like firefox, skype, thunderbird and the like. Dependencies will typically hit you in the following cases:

  • when running a program, a file/package is missing
  • when installing a program, a file/package is missing
  • when compiling a program, file/package is missing

Examples

When running a program, a file is missing

Error message, in this case by umtsmon:

./umtsmon: error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory

Solution, in this case for SUSE 11.3:

yast -i qt3-32bit

When installing a program, files are missing

Here we try to install the rpm package audacity, but we are missing some software it depends on:

# rpm -ivh /mnt/loop/suse/x86_64/audacity-1.3.12-3.6.x86_64.rpm 
error: Failed dependencies:
        libSoundTouch.so.0()(64bit) is needed by audacity-1.3.12-3.6.x86_64
        libid3tag.so.0()(64bit) is needed by audacity-1.3.12-3.6.x86_64
        libvamp-hostsdk.so.3()(64bit) is needed by audacity-1.3.12-3.6.x86_64

When building a program, a package is missing

Error message (in this case from xawtv):

Oops:   jpeg library not found.  You need this one, please install.

Solution (in this case for SUSE 11.3):

yast -i libjpeg-devel

Packages

To reduce complexity, programs and libraries are bundled into packages. Packages can contain all source code files that you need to build or already compiled files, also known as binary packages. There are two major package managers: rpm and deb. Typically, Red Hat and SUSE use rpm, Ubuntu and Debian use deb.

See also