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)

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

thunar ★★★★★
()

Поставим вопрос по-другому.

Кому оно нужно настолько, чтобы платить разработчикам/ментейнерам?

x3al ★★★★★
()

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

Комикс про несовместимые стандарты

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

Поставить Nix и получить возню с Nix и GNOME2 вместо возни с MATE?

Слишком пессимистично :)
Gnome2, я, наверное, зря привел в качестве примера - он достаточно сильно связан с низкоуровневыми компонентами, да и просто слишком большой. Можно было бы подставить любую софтину, которая начиная с какой-то версии перестала быть тортом, или наоборот стала тортом (пофиксили баги и т.д.) начиная с какой-то версии.
Вот пример из жизни - сегодня обнаружил, что в Chromium 29 из Ubuntu 13.10 не работает часть расширений. В Chrome 30 из гугловского репозитория всё работает. Я бы мог попробовать более старую или более новую версию, но выбора у меня нет.

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

а то и говно мамонта и последние глючные версии обычно и так доступны через пакетный манагер

По-моему такое только в Gentoo. В остальных дистрибутивах в репозитории лежит одна версия.

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

Да зачем, когда есть дебилопакеты, деревянный апт-гет который умеет только инстолить/деинстолить и все довольны.

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

ну в бубунте с её ppa обычно есть несколько версий. да только 2 сразу не установишь, а оно бывает очень нужно, в типичной для упенсорца ситуации, когда в говне мамомнта старый баг поправили и добавили десяток новых.

thunar ★★★★★
()
Ответ на: Поставим вопрос по-другому. от x3al

Кому оно нужно настолько, чтобы платить разработчикам/ментейнерам?

А кто платит меинтейнерам Debian?

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

Разве? PPA и пины никто не отменял.

Практика показывает, что на PPA полагаться не стоит - для одного софта собрали пакет, для второго не собрали, для третьего собрали криво, для четвертого собрали кривую версию (выше писал про Chromium).
Про пины не очень понял. Если предлагаешь качать пакет для другой версии дистрибутива и закреплять версию, то чаще всего это тот ещё мазохизм, плюс все проблемы PPA, про которые писал выше.

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

Потому что не был сделан с целью интеграции в существующий дистрибутив, а еще один никому нафиг не нужен.

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

и все довольны

Довольны только в случае задач типа «поставить на тазик любой пыхпых с любым http-сервером, захостить очередной интернет-магазин». Шаг влево, шаг вправо - любовь и обожание.

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

Довольны только в случае задач типа «поставить на тазик любой пыхпых с любым http-сервером, захостить очередной интернет-магазин».

Редко кто ставит другие задачи.

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

Ирония же. Я об этом тебе и говорю.

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

В убунте разве подобное не хотят запилить?

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

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

То есть в теории можно взять свой любимый Debian 7 и без хлопот установить на него новейшую версию браузера или там какого-нибудь проприетарного драйвера на видео, или наоборот, поставить на новенькую Федору старый добрый Gnome2 без возни c Mate. Ведь сам Linux имеет абсолютно стабильное внешнее ABI, Xorg вроде тоже, вся нестабильность из-за библиотек.

Ты, конечно, понимаешь, что тебе придется держать чертову уйму библиотек разных версий? А так, то, что ты хочешь, должно быть вполне реализуемо черех lxc. Как говориться, just a small matter of programming.

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

Про Debian забыл 5 версий как минимум +111555 вейрсий из снапшотов + бякипорты.

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

в условиях опенсорца можно сделать вариант и получше.

И, во-первых, остаться с одним опенсорсом, а во-вторых, получить очередной стандарт ничем не лучше других. Нафиг так жить?

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

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

Такова жизнь, везде приходится идти на компромиссы.

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

Метаться влево-вправо-вперед-назад - это к гентушникам :)

А вообще недавно появилась такая штука, например:

Тихо и незаметно вышел Red Hat Software Collections 1.0 Beta

И то, что формат там совпадает с форматом RPM-пакетов - это существенный плюс для этого решения.

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

И, во-первых, остаться с одним опенсорсом

Проприетарщикам этот супер новый и супер крутой менеджер пакетов нужен в последнюю очередь.

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

ну а в nixе софт то есть? вспоминая 0install — там софта почти не было, кроме rox'а и каких то древних версий гимпа.

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

репозитории же не отменяют. как я понял, такой подход — для последних-распоследних версий программ.

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

прям pacman описал.

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

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

ну так это прямое следствие linux-way'я с его stable api/abi is nonsense. главный девиз «ломаем совместимость каждой новой версией!» так что если хочень использовать программы, а не дрочить на версии пакетов — то только так.

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

это прямое следствие linux-way'я с его stable api/abi is nonsense

Мальчик, ты дебил и фантазер.

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

Предлагаешь мне за тебя сформулировать твою мысль и с ней поспорить? Давай сам, не маленький.

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

Предлагаешь

...почитать о том, как эти коллекции устроены внутри. Если ты уже читала, то не предлагаю ничего.

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

Scheme — сферический конь.
Guile —его реализация и язык расширений (скриптовый?) для GNU, со всем добром.

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

Что сказать-то хотел?

То, что сказал: концепция работает только в Redhat и внутри представляет собой Gobo-style хрень. Направление, конечно, верное, но реализация бесполезна для всех, кроме Redhat.

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

Завязано на RPM ты хотел сказать?

В чем проблема использовать её на CentOS, Scientific Linux и Fedora ?

внутри представляет собой Gobo-style хрень

А концепция click-пакетов или alternatives или сборки всего руками в /opt - это какой-то другой стиль?

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

Завязано на RPM ты хотел сказать?

На RPM тоже, но в основном - на наборы пакетов Redhat. И требует специальной процедуры сборки.

В чем проблема использовать её на CentOS, Scientific Linux и Fedora ?

Не знаю. Но это тот же Redhat, просто ярлык другой.

А концепция click-пакетов или alternatives или сборки всего руками в /opt - это какой-то другой стиль?

alternatives глобальны для системы и не допускают одновременной доступности двух пакетов (да и вообще это совершенно другая вещь); про click пока ничего не могу сказать; сборка руками - снова другая вещь.

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

На наборы пакетов никакого ограничения нет, cборка делается утилитами из состава Fedora. Чтобы создать и распространять свои наборы достаточно завести свой репозиторий по типу rpmfusion или epel и ставить из него пакеты обычным yum.

И утилита есть для конвертирования обычного спека в scl https://pypi.python.org/pypi/spec2scl

это тот же Redhat, просто ярлык другой.

Так про очень многое можно сказать.

alternatives глобальны для системы и не допускают одновременной доступности двух пакетов (да и вообще это совершенно другая вещь); про click пока ничего не могу сказать; сборка руками - снова другая вещь.

.. и тут следует обсуждение на 10 страниц о том, что подразумевается под Gobo-style, по каким критериям оценивается и почему конкретно одно то, а другое не то.

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

На наборы пакетов никакого ограничения нет

В RPM-пакетах указаны совершенно конкретные фиксированные зависимости.

cборка делается утилитами из состава Fedora. Чтобы создать и распространять свои наборы достаточно завести свой репозиторий по типу rpmfusion или epel

Интересно. И как, кто-нибудь пробовал собирать это на Debian или даже openSUSE? Если да, то где можно увидеть результаты?

это тот же Redhat, просто ярлык другой.

Так про очень многое можно сказать.

Про что, например? CentOS - это пересобранный бинарно-совместимы Redhat, SL тоже, Fedora - просто Redhat.

и тут следует обсуждение на 10 страниц о том, что подразумевается под Gobo-style, по каким критериям оценивается и почему конкретно одно то, а другое не то.

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

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

Разве? PPA и пины никто не отменял.

Но это тонна ручной работы и доверие сторонним репозиториям. Которые ещё и искать надо. А в Gentoo — оно «из коробки».

KRoN73 ★★★★★
()

вопрос слоупок-куна: а что мешает всё тоже самое сделать через апт? например, проприетарные дрова инвидии вполне прозрачно сносятся и устанавливуется в минте/бубунте, DE разных версий тоже (не одновременно, да)

next_time ★★★★★
()

Кстати.

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

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

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