Вход:  Пароль:  
FreeSource: RuslanHihin/DepensdSisyphus ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Топологии Сизифа (зависимости пакетов).

Основные идеи моей будущей диссертации (если конечно осилю :) )


Недавно я общался со своим научным руководителем по-поводу написания своей диссертации :)


Предварительно остановились на теме «Построение сложных программных продуктов на (примере репозитария Сизиф (ALTLinux)".


Определение корявое, но основная мысль выражена чётко :)


Что я хочу рассмотреть в ней (основные идеи)

Проблемы топологии Сизифа (зависимости пакетов).

Порядок сборки пакетов в Сизифе должен быть основан на топологических зависимостях между пакетами. Т.е. пересборка родителя (с точки зрения топологии) должна вести к пересборке всех зависимых от него пакетов (сборочная зависимость).


Порядок построения дистрибутива на основе Сизифа должен учитывать установочную зависимость между пакетами (жёстко) (естественно – иначе ничего не будет работать) и функциональную зависимость (мягко).
Пример нарушения функциональной зависимости – можно установить KDevelop 3.0, он будет функционировать, но он не сможет собрать не один пакет на основе cmake, т.к. в сборочной и установочной зависимости ему смаке не нужен. А это 6 из 7 шаблонов, предусмотренных в Kdevelop для C.


Проблемы циклических зависимостей и пути их устранения.
Программы типа tsort, rpmsort.

Виды зависимостей между пакетами


Основными видами зависимостей являются :
– сборочная зависимость (то, что требуется для сборки (построения) пакетов).
Пример : установка gcc и маке.


– установочная зависимость (то, что требуется, для того, что-бы программы, входящие в пакет запускались).
Пример : установлена нужная версия glibc, или версия конкретной библиотеки.


– функциональная зависимость – то, что надо программам, для того, что-бы они могли выполнять все свои функции (из-за чего они собственно и устанавливаются пользователем).



Кроме того, зависимости могут быть мягкими и жёсткими (ортогональное разделение).


Мягкая зависимость – рекомендация по расширению работы этой программы, например, mplayer может теоретически работать со всеми, ну, или с опредённым наборов кодеков (мягкая функциональная зависимость которая при построении пакета выливается в мягкую сборочную зависимость).


Жёсткая – то, без чего программа работать не будет. Mplayer требует установки какого-нибудь одного кодека (жёсткая функциональная зависимость «один из набора») и требует glibc-devel-2.5-alt3 (libm.so).


Что для рассмотрения Сизифа является объектом зависимости


Объектом зависимости реально является конкретная программа (библиотека), но поскольку в такой массе пакетов очень трудно рассматривать структуру Сизифа, с такой точностью, то объектом является пакет.
Возникает вопрос какой пакет (src.rpm или просто arch.rpm) ?
– для функциональной зависимости – arc.rpm
– для установочной зависимости важен arc.rpm.
– для сборочной зависимости важны и src.rpm и arc.rpm. Т.е. если в момент сборки дистрибутива не находится нужный, готовый arc.rpm, то необходимо пересобрать его из src.rpm (если такого нет, то явное нарушение зависимостей по src.rpm, решаемая только мантейнером соответствующего пакета).


Какие механизмы отслеживания зависимостей есть в Сизифе ?


Основные, это rpm и apt.
– ограниченность механизма rpm.
Что необходимо rpm, что-бы он мог отслеживать все виды зависимостей ?


Как правильно оформлять различные виды зависимостей в rpm.

Зависимости типа
Requires(post): grep
Requires(pre,post): /bin/sh
Requires(postun): /bin/sh

Возможно добавление «окрашенности» зависимостей и выборка зависимостей одного типа.


– возможности apt в работе c пакетами типа rpm и deb
– вопрос развития rpm для полной интеграции c apt
(насколько реально отразить реальный спектр зависимостей в rpm и apt).

Пути автоматического решения проблем зависимостей


– устранение ненужных зависимостей.
– установление потерянных функциональных зависимостей.
– вопрос о правильном отображении функциональных зависимостях (они требуются только для использования программы, но не для построения пакета и не для его установки).


А ещё говорят так (fortune):

Благородные люди живут в согласии с другими людьми, но не следуют за другими
людьми, низкие следуют за другими людьми, но не живут с ними в согласии.

Ссылок на эту страницу нет


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]