LINUX.ORG.RU

Алгоритм проверки зависимостей пакетов

 


0

1

Создаю свой sourced-based дистрибутив с нуля. Установку и установку пакетов реализую на shell-scripting'е. Установочные скрипты закончены премерно на 50-60%, начал писать установщик пакетов, работающий по рецептам и конфигам. Встал вопрос реализации алгоритма просчитывания зависимостей.

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

Вопрос: какой бинарный пакетный менеджер правильно проверяет зависимости? Помню deb при попытке в минте удалять какие-то совсем не нужные пакеты тянул за собой всё KDE на удаление.

★★★★★

Последнее исправление: teod0r (всего исправлений: 2)

В чём проблема написать полностью свой ПМ? Тем более, если не нужна функциональность portage.

Deleted
()
Ответ на: комментарий от teod0r

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

Harald ★★★★★
()
Ответ на: комментарий от Harald

у меня в генте портаж при обновлении предлагает мне свежий xorg, хотя версия fglrx этого не позволяет. даже если я строго указываю версию в /etc/portage/package.mask, ничего не меняется. и такая ерунда с несколькими пакетами

teod0r ★★★★★
() автор топика
Ответ на: комментарий от Deleted

В том, что ОП — хронический школьник.

anonymous
()

Установку и установку пакетов реализую на shell-scripting'е

А я только похвалить хотел.

Привет, тормоза.

a1batross ★★★★★
()
Ответ на: комментарий от Deleted

Логично, если учесть, что большую часть времени будет занимать скачивание исходников и сборка пакетов.

unikum ★★★★★
()
Ответ на: комментарий от Deleted

strac-ни bash на каком-нибудь крупном скрипте, там будет fork() на execve() и хрен знает чем погоняет.

anonymous
()
Ответ на: комментарий от slon

shell-scripting. в теме написано же

teod0r ★★★★★
() автор топика

Установку и установку пакетов реализую на shell-scripting'е.

Но зачем? Будет же глючить. Да и не думаю, что одними лишь скриптами на баше возможно реализовать все функции продвинутого пакетного менеджера.

sudopacman ★★★★★
()
Ответ на: комментарий от sudopacman

Но зачем?

я других ЯП не знаю. но у скриптов свои плюсы: понимает их больше людей, чем другие ЯП и правка не требует перекомпиляции

Будет же глючить.

с чего вдруг?

Да и не думаю, что одними лишь скриптами на баше возможно реализовать все функции продвинутого пакетного менеджера.

а чего там реализовывать? там только работа с файлами. единственная трудность — реализовать проверку зависимостей

teod0r ★★★★★
() автор топика
Ответ на: комментарий от teod0r

но у скриптов свои плюсы: понимает их больше людей, чем другие ЯП и правка не требует перекомпиляции

Это ты рассказал, чем Python лучше C++. Но, блин, Bash? Я уверен, что его понимают меньше людей. По крайней мере, когда речь идёт о чтении и правке целой программы, а не просто однострочника с парой подстановок. Да ещё и не простой программе, а пакетном менеджере, где гарантированно предстоит работа со структурами данных сложнее текстовой строки.

greatperson
()
Ответ на: комментарий от teod0r

Часто людям требуется править пакетные менеджеры и вообще смотреть их исходники?

с чего вдруг?

А ты головой подумай. Что будет быстрее: выполнять машинный код из бинарника или каждый раз вызывать интерпретатор и им конвертировать высокоуровневый код в машинный?

а чего там реализовывать?

Как «чего реализовывать»? Ты же source-based ПМ делаешь, там дофига чего реализовывать и хоть всё в итоге сводится к работе с файлами, у тебя там далеко не обычная «работа с файлами».

Либо не майся фигнёй и исползуй существующие ПМ, либо учи кресты.

sudopacman ★★★★★
()
Ответ на: комментарий от teod0r

Зачем тебе свой дистр? Хочешь превзойти Дениса Попова?

sudopacman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.