Существует большое количество разновидностей пакетных менеджеров, и каждый из них решает свои задачи очень хорошо. Но в каждом отсутствует возможность формирования метапакетов (ранее я уже рассказывал об этой идее здесь), которые очень просто можно развернуть на другой системе с той же самой версией дистрибутива. Что же такое метапакет? В данном контексте под метапакетом я буду подразумевать следующее. Как известно, в массовых дистрибутивах, таких как Ubuntu, Fedora, OpenSuSE, ключевые библиотеки: графические тулкиты, системные библиотеки, – кардинально меняются лишь от версии к версии (мягко обойдем стороной рабочие станции техноманьяков). Что и понятно, разработчики дистрибутивов стремятся поддерживать стабильным программный интерфейс, так как разработчики программ доверяют им и точно знают, что после очередного обновления пакетов текущей версии дистрибутива, их программа будет работать без проблем. То есть, во всех стабильных и популярных дистрибутивах есть некий фундамент, состоящие из различных библиотек, которые предоставляют один и тот же API на каждой из установленных машин. Теперь задача установки одной программы, скажем на десяти машинах с однотипными дистрибутивами, никак не связанных между собой и не имеющих доступ в сеть, может быть решена распространением среди пользователей этих машин метапакетов, которые включают в себя пакеты программы и пакеты с необходимыми зависимостями, а также некие сценарии установки, которые решают задачи такого рода, как порядок установки пакетов, разрешение циклических зависимостей и т.п. То есть, когда пакетный менеджер устанавливает программу из такого пакета, он не скачивает из сети пакеты, от которых зависит программа, а при необходимости берет их из этого же самого метапакета, при этом пользователь избавляется от рутины и ненужных действий: не надо думать о том, в каком порядке и как надо установить эту кучу пакетов, чтобы приложение заработало. Таким образом, эта система метапакетов может быть интегрирована в архитектуру пакетных менеджеров, сохраняя преимущества и принципы пакетной дистрибьюции программ.
На сегодня существуют другие пути решения проблемы, например, недавно я публиковал новость о системе распространения программ с помощью Application Bundle, но это не выход из сложившейся ситуации. Связано это с тем, что она стоит особняком от зарекомендовавшей архитектуры пакетной дистрибьюции. То что подобные системы используют статическую линковку всех используемых библиотек, то есть все библиотеки, которые используется программой, скомпилированы непосредственно в исполняемый файл, это тоже минус. Статическая линковка – это лишняя избыточность, которая приводит к нерациональному использованию оперативной памяти и пространства на жестком диске.
Проблема с распространением программного обеспечения под Linux существует, и ее необходимо решать, если мы хотим, чтобы свободное программное обеспечение и открытые стандарты получили большее распространение. Свободное программное обеспечение должно стать ближе к обычным людям, оно должно стать таким, чтобы его использование было предельно простым, понятным и удобным. Ведь в конечном счете большинство программ и стандартов существуют лишь для того, чтобы решать проблемы технически неподготовленных людей.
Читать дальше...
0 коммент.:
Отправить комментарий