dependency hell

Jun 06, 2011 03:26


ну вот какого черта у меня есть easy_install (несколько easy_install’ов, для разных питонов), npm и apt-get и я должен разгребать то, что каждый по отдельности из них насооружал?

или ставить все руками? тогда нафига они вообще нужны, эти “очень удобные штуки, которых так не хватает в винде”? в винде, кстати, easy_install работает обычно гораздо ( Read more... )

myths, linux, маразм

Leave a comment

Comments 9

nicka_startcev June 6 2011, 06:53:37 UTC
Хочет питон/перл/ребе расти в отдельном мире - пусть растет.
Только запаришься потом секурити апдейты в куче разных мест искать.

Reply

wizzard0 June 6 2011, 07:02:03 UTC
Речь о том, что питон - тоже платформа.
Яйцопакет - он часто одинаковый что под виндой, что под линухом, что под фрей.

То же и с жс, то же и с руби, то же и с перлом.

Поэтому вполне ожидаемо мейнтейнеры этих пакетов не хотят делать тучу версий под разные ОС.

Более того, я считаю, что это правильно - апдейтами софта должны заниматься их авторы, а не неведомые мейнтейнеры (ну не может мейнтейнер знать о требованиях софта лучше его разработчиков)

Не вижу ничего страшного в том, чтобы запускать несколько пакадж менеджеров по крону.
Т.е. если у софта нету "предпочитаемого" апдейтера - добавляем в пакаджи дистриба, если есть - то добавляем в пакаджи дистриба этот апдейтер и радуемся жизни.

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

Reply

nicka_startcev June 6 2011, 07:10:00 UTC
Формально, мейнтейнеры дистрибутива должны проверять новый пакет на совместимость со всеми имеющимися, чтоб при его апгрейде не сломалось что-нибудь.

Если они это не делают - то это или бета-дистрибутив типа федоры, или еще какая клиника типа генту.

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

>Не вижу ничего страшного в том, чтобы запускать несколько пакадж менеджеров по крону.

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

Reply

wizzard0 June 6 2011, 08:24:47 UTC
> Если они это не делают - то это или бета-дистрибутив типа федоры, или еще какая клиника типа генту.

Это нигде не делают.
По моему опыту - реально нигде. Ну то есть выбирают одну ветку наугад, и ее поддерживают.

> у разных репозиториев должны быть разные непересекающиеся наборы подписей.

Да, а что?

Reply


triampurum June 6 2011, 08:30:54 UTC
Для других языков и дистрибутивов есть решения подобных затруднений: cabal2arch. В случае с нестабильными версиями пакетов это не помогает (приходится через cabal-dev), но оно и не должно.

Reply

wizzard0 June 6 2011, 08:35:43 UTC
тоже решение, да. хотя тоже неидеальное.

Reply

permea_kra June 12 2011, 08:34:15 UTC
Это не решение, поскольку cabal знать ничего не знает о системных названиях пакетов. Напр., sqlite 3 это sqlite, sqlite3 sqlite-3.0.x, sqlite-dev + sqlite или еще что.

Reply


dmytrish June 6 2011, 18:09:52 UTC
closed world model однозначно зло. Після ручної установки багатьох програм дистр досить скоро перетворюється в нестабільне решето. Але Yast (пакетний менеджер openSUSE) підхоплював скомпільовані вручну програми (я так і не розібрався як, можливо, це все грамотний make install, хоч я дуже сумніваюсь, що в ньому було щось suse-специфічне).

А в Java/C# є можливість зберігати метаінформацію про версію хоча б класу, якщо не метода? Думаю, вбудована в платформу система версіонування була б корисною (якщо не породить ще більше проблем)

Reply

wizzard0 June 26 2011, 22:51:28 UTC
> хоча б класу, якщо не метода?

сделать можно, но рантайм под это совершенно не заточен. т.е. будет оверхед.

Reply


Leave a comment

Up