Difference between revisions of "Dependencies"

From Linuxintro
imported>ThorstenStaerk
 
(22 intermediate revisions by one other user not shown)
Line 1: Line 1:
= libXm =
+
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]] [http://audacity.sourceforge.net/ 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:
 
  error: Failed dependencies:
         libXm.so.4 is needed by ICAClient-11.0-1.i386
+
         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
 +
The solution here should be that you install the package using your distribution's package manager, in this case
 +
yast -i audacity
 +
However this is not always possible.
 +
 
 +
== When building a program, a package is missing ==
 +
Here is an example how this can look:
 +
<pre>
 +
linux-zcx2:~/freeciv-2.1.9 # ./configure
 +
checking build system type... i686-pc-linux-gnu
 +
checking host system type... i686-pc-linux-gnu
 +
checking for a BSD-compatible install... /usr/bin/install -c
 +
checking whether build environment is sane... yes
 +
checking for gawk... gawk
 +
checking whether make sets $(MAKE)... no
 +
checking whether to enable maintainer-specific portions of Makefiles... no
 +
checking for style of include used by make... none
 +
checking for gcc... gcc
 +
checking for C compiler default output... a.out
 +
checking whether the C compiler works... yes
 +
checking whether we are cross compiling... no
 +
checking for suffix of executables...
 +
checking for suffix of object files... o
 +
checking whether we are using the GNU C compiler... yes
 +
checking whether gcc accepts -g... yes
 +
checking for gcc option to accept ANSI C... none needed
 +
checking dependency style of gcc... none
 +
checking how to run the C preprocessor... gcc -E
 +
checking for egrep... grep -E
 +
checking for ANSI C header files... yes
 +
checking for sys/types.h... yes
 +
checking for sys/stat.h... yes
 +
checking for stdlib.h... yes
 +
checking for string.h... yes
 +
checking for memory.h... yes
 +
checking for strings.h... yes
 +
checking for inttypes.h... yes
 +
checking for stdint.h... yes
 +
checking for unistd.h... yes
 +
checking for gawk... (cached) gawk
 +
checking for gcc... (cached) gcc
 +
checking whether we are using the GNU C compiler... (cached) yes
 +
checking whether gcc accepts -g... (cached) yes
 +
checking for gcc option to accept ANSI C... (cached) none needed
 +
checking dependency style of gcc... (cached) none
 +
checking how to run the C preprocessor... gcc -E
 +
checking for g++... g++
 +
checking whether we are using the GNU C++ compiler... yes
 +
checking whether g++ accepts -g... yes
 +
checking dependency style of g++... none
 +
checking whether ln -s works... yes
 +
checking for ranlib... ranlib
 +
checking for ar... ar
 +
checking for uname... uname
 +
checking for ld used by GCC... /usr/i586-suse-linux/bin/ld
 +
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
 +
checking for shared library run path origin... done
 +
checking for iconv... yes
 +
checking for working iconv... yes
 +
checking for iconv declaration...
 +
        extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 +
checking for libcharset... no
 +
checking for nl_langinfo and CODESET... yes
 +
checking for strerror in -lcposix... no
 +
checking for an ANSI C-conforming const... yes
 +
checking for inline... inline
 +
checking for off_t... yes
 +
checking for size_t... yes
 +
checking for working alloca.h... yes
 +
checking for alloca... yes
 +
checking for stdlib.h... (cached) yes
 +
checking for unistd.h... (cached) yes
 +
checking for getpagesize... yes
 +
checking for working mmap... yes
 +
checking whether we are using the GNU C Library 2.1 or newer... yes
 +
checking argz.h usability... yes
 +
checking argz.h presence... yes
 +
checking for argz.h... yes
 +
checking limits.h usability... yes
 +
checking limits.h presence... yes
 +
checking for limits.h... yes
 +
checking locale.h usability... yes
 +
checking locale.h presence... yes
 +
checking for locale.h... yes
 +
checking nl_types.h usability... yes
 +
checking nl_types.h presence... yes
 +
checking for nl_types.h... yes
 +
checking malloc.h usability... yes
 +
checking malloc.h presence... yes
 +
checking for malloc.h... yes
 +
checking stddef.h usability... yes
 +
checking stddef.h presence... yes
 +
checking for stddef.h... yes
 +
checking for stdlib.h... (cached) yes
 +
checking for string.h... (cached) yes
 +
checking for unistd.h... (cached) yes
 +
checking sys/param.h usability... yes
 +
checking sys/param.h presence... yes
 +
checking for sys/param.h... yes
 +
checking for feof_unlocked... yes
 +
checking for fgets_unlocked... yes
 +
checking for getcwd... yes
 +
checking for getegid... yes
 +
checking for geteuid... yes
 +
checking for getgid... yes
 +
checking for getuid... yes
 +
checking for mempcpy... yes
 +
checking for munmap... yes
 +
checking for putenv... yes
 +
checking for setenv... yes
 +
checking for setlocale... yes
 +
checking for stpcpy... yes
 +
checking for strchr... yes
 +
checking for strcasecmp... yes
 +
checking for strdup... yes
 +
checking for strtoul... yes
 +
checking for tsearch... yes
 +
checking for __argz_count... yes
 +
checking for __argz_stringify... yes
 +
checking for __argz_next... yes
 +
checking for iconv... (cached) yes
 +
checking for working iconv... (cached) yes
 +
checking for iconv declaration... (cached)
 +
        extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 +
checking for nl_langinfo and CODESET... (cached) yes
 +
checking for LC_MESSAGES... yes
 +
checking whether NLS is requested... yes
 +
checking whether included gettext is requested... no
 +
checking libintl.h usability... yes
 +
checking libintl.h presence... yes
 +
checking for libintl.h... yes
 +
checking for GNU gettext in libc... yes
 +
checking for dcgettext... yes
 +
checking for msgfmt... /usr/bin/msgfmt
 +
checking for gmsgfmt... /usr/bin/msgfmt
 +
checking for xgettext... no
 +
checking for bison... no
 +
checking for catalogs to be installed...  ar cs ca da de el en_GB eo es et fa fi fr he hu it ja ko lt nl nb no pl pt pt_BR ro ru sv tr uk zh_CN
 +
checking for ngettext in -lc... yes
 +
checking whether libc's ngettext works at runtime... yes
 +
checking for C99 variadic macros... yes
 +
checking for C99 variable arrays... yes
 +
checking for C99 initializers... yes
 +
checking for stdint.h... (cached) yes
 +
checking for C99 stdint.h... yes
 +
checking for gzgets in -lz... no
 +
configure: error: Could not find zlib library.
 +
</pre>
 +
In this case the solution is to [[install]] the zlib-development [[package]].
 +
 
 +
= 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.
 +
 
  
rpm -qf /usr/lib64/libXm.so.4
+
{| class="wikitable sortable" border=1
openmotif-libs-2.3.1-3.13
+
! file !! in SUSE package
 +
|-
 +
| /usr/lib64/libcrypto.so || libopenssl
 +
|-
 +
|}
  
= libXv =
+
= See also =
# rpm -ivh Downloads/RealPlayer11GOLD.rpm
+
* [[error messages and their solutions]]
error: Failed dependencies:
+
* [[packages]]
        libXv.so.1 is needed by realplay-11.0.2.1744-1.i386
 

Latest revision as of 11:02, 1 January 2021

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

The solution here should be that you install the package using your distribution's package manager, in this case

yast -i audacity

However this is not always possible.

When building a program, a package is missing

Here is an example how this can look:

linux-zcx2:~/freeciv-2.1.9 # ./configure 
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... none
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... none
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for gawk... (cached) gawk
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) none
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking whether ln -s works... yes
checking for ranlib... ranlib
checking for ar... ar
checking for uname... uname
checking for ld used by GCC... /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for iconv... yes
checking for working iconv... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for libcharset... no
checking for nl_langinfo and CODESET... yes
checking for strerror in -lcposix... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for off_t... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking argz.h usability... yes
checking argz.h presence... yes
checking for argz.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nl_types.h usability... yes
checking nl_types.h presence... yes
checking for nl_types.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for feof_unlocked... yes
checking for fgets_unlocked... yes
checking for getcwd... yes
checking for getegid... yes
checking for geteuid... yes
checking for getgid... yes
checking for getuid... yes
checking for mempcpy... yes
checking for munmap... yes
checking for putenv... yes
checking for setenv... yes
checking for setlocale... yes
checking for stpcpy... yes
checking for strchr... yes
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for tsearch... yes
checking for __argz_count... yes
checking for __argz_stringify... yes
checking for __argz_next... yes
checking for iconv... (cached) yes
checking for working iconv... (cached) yes
checking for iconv declaration... (cached) 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for nl_langinfo and CODESET... (cached) yes
checking for LC_MESSAGES... yes
checking whether NLS is requested... yes
checking whether included gettext is requested... no
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for GNU gettext in libc... yes
checking for dcgettext... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... no
checking for bison... no
checking for catalogs to be installed...  ar cs ca da de el en_GB eo es et fa fi fr he hu it ja ko lt nl nb no pl pt pt_BR ro ru sv tr uk zh_CN
checking for ngettext in -lc... yes
checking whether libc's ngettext works at runtime... yes
checking for C99 variadic macros... yes
checking for C99 variable arrays... yes
checking for C99 initializers... yes
checking for stdint.h... (cached) yes
checking for C99 stdint.h... yes
checking for gzgets in -lz... no
configure: error: Could not find zlib library.

In this case the solution is to install the zlib-development package.

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.


file in SUSE package
/usr/lib64/libcrypto.so libopenssl

See also