LINUX.ORG.RU
ФорумTalks

Почему не взлетел Nix?

 ,


0

1

Если кто вдруг не в курсе, то Nix - это такой пакетный менеджер, который, судя по описанию, умеет следующее:

  • Держать на диске одновременно несколько версий пакета
  • Работать независимо от основного пакетного менеджера (весь софт лежит в отдельной директории /nix, все зависимости решает сам и т.д.)
  • Дельта-обновления
  • Установка пакетов без прав рута


То есть в теории можно взять свой любимый Debian 7 и без хлопот установить на него новейшую версию браузера или там какого-нибудь проприетарного драйвера на видео, или наоборот, поставить на новенькую Федору старый добрый Gnome2 без возни c Mate. Ведь сам Linux имеет абсолютно стабильное внешнее ABI, Xorg вроде тоже, вся нестабильность из-за библиотек.
Таким образом можно на корню решить проблему с зоопарком форматов пакетов и зоопарком дистрибутивов - просто иметь единый репозиторий, подходящий для всех дистрибутивов всех версий, откуда можно стянуть любую версию любого софта.
Проект относительно зрелый (развивается где-то с 2008-ого), однако никакого реального использования не получил. До этого был 0install, сейчас вот тоже что-то похожее пилят на Scheme, ещё был GoboLinux, но везде результат одинаковый - нулевой. Почему? Ведь проблема достаточно актуальная.
Единственное, что приходит в голову - это то, что во всех подобных программах довольно странный формат описания пакетов. В Nix зачем-то ударились в функциональщину (зачем она тут?), в 0install вообще был XML. Однако по-моему это не такая большая проблема. Может в данном случае красивая теория разбивается об суровую реальности?
P.S. Пардон за ломаный язык - ещё не проснулся.

★★★★

Последнее исправление: h31 (всего исправлений: 1)
Ответ на: комментарий от h31

Там немного другой подход: есть некая базовая система (считай содержимое Ubuntu LiveCD), всё, что в неё не входит, каждый пакет тащит с собой. Фактически это подход Windows/MacOSX/Android. С одной стороны он гарантированно работает, с другой стороны, в условиях опенсорца можно сделать вариант и получше.
в условиях опенсорца можно сделать вариант и получше.

Можно поподробнее?

quiet_readonly ★★★★
()

В Nix зачем-то ударились в функциональщину (зачем она тут?)

Якобы для избавления от побочных эффектов при конфигурации и инсталляции. У меня от него вот такой опыт остался. Так и не понял, зачем они решили изобрести свой формат, если то же самое можно было сделать отдельными пользовательскими пакетами перезаписывающими конфигурацию по умолчанию. Также представьте себе ситуацию, в которой автор какого-либо пакета что-то изменил в формате конфигурационного файла, и после чего узкому кругу лиц знакомым с их языком — который AFAIK нигде кроме это проекта не используется — придётся это приводить обратно в рабочее состояние. Плюс мне не понятно, зачем вкладывать время в прочтение документации об опциях в конфигурационных файлах в nix в случае, если это ваш не первый или не последний пакетный менеджер.

Поправьте, если где-то заблуждаюсь.

HiddenComplexity
()
Ответ на: комментарий от dmitry_malikov

Меня можно не считать, а также супругу, а то было бы уже девять :)

Если кому-то ports из freebsd, portage из gentoo не дается, или если даже не знает на сколько непростые (ябы сказал убогие) сценарии сборки спрятанные в deb или srpms, то не нужно судить так плохо обо всех. Если не имеете статистики, то и нет возможности судить о количестве пользователей, это извините манипуляция сознанием называется.

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

Deleted
()

Мёртв?

Разве Nix мёртв? У меня всё руки не дойдут его попробовать.

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

М.б., кто знает: почему часть пакетов собирают <название-программы> (напр., firefox), а часть <название-программыВерсия> (напр., python, python2, python2.7, python3, python3.2, emacs23)?

На практике очень часто нужно иметь несколько версий питона (как минимум одну 2.x и одну 3.x, а если есть проприетарные модули, то и несколько 2.x), а вот для firefox такой необходимости не возникает. Про emacs не знаю, наверное так исторически сложилось.

Если бы все пакеты собирались как <название-программыВерсия> + мета-пакет <название-программы> ведущий на текущую актуальную версию, то можно было бы ставить одновременно сколько угодно версий

Дополнительная ручная работа.

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