Difference between revisions of "Dependencies"
imported>ThorstenStaerk |
|||
(17 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | 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 | ./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: | Solution, in this case for SUSE 11.3: | ||
yast -i qt3-32bit | 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: | |
− | + | libSoundTouch.so.0()(64bit) is needed by audacity-1.3.12-3.6.x86_64 | |
− | yast -i | + | 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. | |
− | |||
− | |||
− | |||
− | = | + | {| class="wikitable sortable" border=1 |
− | + | ! file !! in SUSE package | |
− | + | |- | |
− | + | | /usr/lib64/libcrypto.so || libopenssl | |
+ | |- | ||
+ | |} | ||
− | + | = See also = | |
+ | * [[error messages and their solutions]] | ||
+ | * [[packages]] |
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
Contents
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 |