пятница, 11 сентября 2009 г.

Проблемы с распространением программ в системе Linux и пути их решения

Уже много людей из сообщества говорили о том, что текущее положение дел с установкой программ в системе Linux необходимо менять. Кто-то же говорил обратное, что все хорошо и ничего менять не надо. Действительно, на данный момент времени с распространением программ и их обновлением все замечательно, но до тех пор, пока у вас есть постоянная и стабильная связь с интернетом. В случае же, когда доступ к сети либо отсутствует, либо сильно ограничен, необходимо прилагать достаточно серьезные усилия в установке программ, которые для подготовленного человека не вызывают особых затруднений, но для новичка это может стать препятствием на пути полноценного использования операционной системы. И не надо говорить, что интернет настолько дешев, что он есть практически везде, это большое заблуждение. Конечно, как решение можно предложить использовать срезы репозитариев дистрибутивов на DVD-дисках. Но появление новых программ и исправление ошибок в старых происходят каждый день, поэтому такие срезы я не считаю панацеей, но только лишь обезболивающим, которое теряет свои целебные свойства месяц за месяцем.

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

На сегодня существуют другие пути решения проблемы, например, недавно я публиковал новость о системе распространения программ с помощью Application Bundle, но это не выход из сложившейся ситуации. Связано это с тем, что она стоит особняком от зарекомендовавшей архитектуры пакетной дистрибьюции. То что подобные системы используют статическую линковку всех используемых библиотек, то есть все библиотеки, которые используется программой, скомпилированы непосредственно в исполняемый файл, это тоже минус. Статическая линковка – это лишняя избыточность, которая приводит к нерациональному использованию оперативной памяти и пространства на жестком диске.

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


Автор: Александр Мышов (Google+)
Читать дальше...

Комментариев нет:

Отправить комментарий