5.1 Введение в концепцию зависимостей

Зависимости проявляют себя, когда один пакет зависит от другого. Может показаться, что мы получим легко управляемую систему, если ни один пакет не будет зависеть от другого, однако в этом случае мы столкнулись бы с рядом проблем и не в последнюю очередь с проблемой переполнения жестких дисков.

Пакеты в Linux-системах зависят друг от друга. Любой пакет, содержащий приложение, зависит по крайней мере от системных библиотек C, поскольку такие библиотеки предоставляют наиболее общие возможности из списка тех, которые используются практически всеми программами.

Например, многие программы используют низкоуровневые сетевые примитивы. Допустим, произошло устранение критической ошибки в системной библиотеке. Поскольку реализация базовых функций изменена централизовано, нет нужды переписывать и пересобирать многочисленные сетевые приложения. В этом случае зависимость от одной библиотеки будет нам на руку.

Кроме того, использование разделяемых библиотек и, следовательно, многократно используемого кода уменьшает количество сопровождаемого кода приложений и повышает их качество. Понятие "расшаривание кода" существует в компьютерном лексиконе с 1960-х годов.

Хотя только некоторые пакеты зависят напрямую от системных библиотек, многие программы зависят от программ, входящих в другие пакеты. Например, редактор Emacs зависит от скриптового языка Perl, в особенности от интерпретатора perl. Приложения систем управления базами данных как правило зависят от серверов баз данных. Можно привести и другие примеры.

RPM отслеживает зависимости ПО, сохраняя целостность системы. Например, RPM не даст удалить пакет, если от него зависят сторонние приложения, так как это может сделать систему неработоспособной.

Далее - Возможности
Назад - Создание новой БД RPM
Содержание