9.1.1. Пакеты и зависимости
9.1.1. Пакеты и зависимости
Пакет, как правило, содержит программу и вспомогательные файлы. Но не всегда в пакете находится все необходимое для запуска программы. Пакет может не содержать библиотеку, которую использует программа, а также другие программы, которые нужны для работы устанавливаемой программы. Почему так происходит? Представим, что у нас есть графическая библиотека размером 10 Мбайт. Размер устанавливаемой программы — 500 Кбайт. Да, можно было бы включить библиотеку в состав пакета, но тогда размер пакета был бы не 500 Кбайт, а 10,5 Мбайт. При этом есть и другие программы, которые также используют данную библиотеку. Выходит, что каждый пакет с такой программой «весил» бы на 10 Мбайт больше только потому, что библиотека содержится в пакете. Это нерационально — логичнее вынести библиотеку в отдельный пакет.
Ясно, что пакет с библиотекой должен быть установлен до установки первой программы, которая использует эту библиотеку, иначе программа просто не будет работать. Чтобы пользователь случайно не установил пакет с программой раньше пакета с библиотекой (ведь пользователь может и не подозревать, что программа требует какую-то библиотеку, которая не установлена на его компьютере), в пакет помещается специальная инструкция, в которой системе говорится, что для правильной работы данной программы нужен определенный пакет. Это называется зависимостью пакетов. При установке пакета проверяются его зависимости — если они не удовлетворены (пакет с библиотекой не установлен), пакет установлен не будет.
Зависимости могут быть и обратного характера, т. е. требовать не установить, а удалить определенный пакет. Это случается, когда одна программа конфликтует с другой, и пользователю нужно выбрать, какую программу использовать. Например, в системе может быть установлен только один почтовый сервер. Но в Интернете можно найти несколько почтовых серверов, а вот установить только один — поскольку если установить оба, то они будут мешать друг другу работать.
Но пакет пакету рознь. Сейчас в мире Linux существуют два основных формата пакетов: RPM и DEB. RPM-пакеты устанавливаются в системах, совместимых с дистрибутивами типа Red Hat. Ubuntu к числу таких систем не относится. Поэтому нас интересует только второй формат пакетов. Впрочем, если вы не можете найти DEB-пакет с нужной вам программой, имеется возможность преобразовать RPM-пакет в DEB-пакет и попытаться его установить (см. разд. 9.6).
Данный текст является ознакомительным фрагментом.