LINUX.ORG.RU

Вопросы по NixOS

 ,


0

2

1) Сколько места занимает ваш /nix/store? Особенно интересны ответы пользователей KDE и всякого десктопного софта.

2) Пакетный менеджер всегда так медленно работает?

3) GUI к нему предвидится?

4) В чём выгода модели Nix от модели обычных линуксовых репозиториев в плане мантейнерства?

1) Сейчас ~25 гигов вместе с предыдущими поколениями. Там дохренищща софта, включая кеды и texlive-combined-full.

2) Купи SSD.

3) Делали, но забили, ибо ненужно.

4) В воспроизводимости.

Begpoug ()

1) Сколько места занимает ваш /nix/store? Особенно интересны ответы пользователей KDE и всякого десктопного софта.

~10GB, всего одно поколение, кеды, куча софта, android-sdk. Всякие сервисы по работе, вроде СУБД предпочитаю запускать в докере, дабы не засорять систему.

2) Пакетный менеджер всегда так медленно работает?

По сравнению с гентой — работает мгновенно.

3) GUI к нему предвидится?

Какая-то хреновина на електроне была, но оно не нужно. Есть CLI-обёртка для поиска пакетов — nox, но после появления кеша в nix search стала не нужна.

4) В чём выгода модели Nix от модели обычных линуксовых репозиториев в плане мантейнерства?

Воспроизводимость. После ада с опакечиванием в deb-based и портянок на баше в Archlinux (в большей степени) и Gentoo (в меньшей степени), как глоток свежего воздуха. Хотя всякую скриптоту в большом количестве опакечивать — то ещё удовольствие.

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

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

alexferman ()

1) На ноуте с KDE и кучей всего: 44 GB до GC, 34 после. Прикольно. На работе на одном из компов NixOS+XFCE, там столько просто нет.

2) Мне это кажется быстрым, работает в зависимости от распухлости системы. Он же тебе каждый раз поколение заново собирает.

3) А ты смешной. Я бы посмотрел на гуй к системе управления конфигурациями.

4) Это вообще несравнимо. Это как рассуждать «в чем выгода deb-пакетов и apt, когда есть pip».

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

Это не важно. Старая версия со старыми зависимостями останется там же, где и был. Измениться текущий userenv, который ссылается на новую поломанную версию. При желании можно легко вернуться на старый userenv, или ухитриться дергать старую версию, или как-то модифицировать пакет, чтоб он зависел именно от конкретной версии зависисмости, и дт и тп. Вся эта магия плохо проработана в nixpkgs, слишком наивно и без оглядки на более взрослые системы. И судя по развитию с хаками, например, с подменой зависисмостей, у nixos незавидное будущее.

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

Изменится текущий userenv, который ссылается на новую поломанную версию.

Это если соберется и тесты пройдет, тогда изменится.

Вся эта магия плохо проработана в nixpkgs, слишком наивно

Так в этой наивности и вся прелесть. «Более взрослым системам» с их автоматизацией подпирания костылей именно такого лютого юношеского максимализма и не хватает.

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

Более взрослые системы - это какие, лол? Дебиан, где даже даунгрейда нет? Или редхат, где до сих пор воспроизводимость для себя не открыли, зато каждый год индусы рожают по велосипеду типа atomic?

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

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

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

Изменится текущий userenv, который ссылается на новую поломанную версию.

Это если соберется и тесты пройдет, тогда изменится.

Ноль новой информации.

Вся эта магия плохо проработана в nixpkgs, слишком наивно

Так в этой наивности и вся прелесть. «Более взрослым системам» с их автоматизацией подпирания костылей именно такого лютого юношеского максимализма и не хватает.

Опять 0 информации, одни метафоры. Идеальный фанатик-гуманитарий с отсутствием критического мышления.

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

Во «взрослых системах» нормально откатываются на старые версии, у пакетов есть зависимость от диапазонов версий и система сама выберет более подходящую версию с учетом разнообразных условий, а не установит несколько разных версий одного и того же пакета, тем самым ограничивая комбинаторный взрыв хотелок пакетов.
Воспроизводимость в nix легко ломается подменой зависимостей, грязный хак, для легкой замены при обновлении пакета без пересборки всего графа зависимостей.
Самый сок nixos, что все дерево зависимостей начинается с непроверенных бинарей для бутстрапа (gcc, glibc, binutils и тп).
Зато «воспроизводимость». Воспроизводим непроверенные бинари.

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

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

Прозреваю адские костыли и глюкалово. Для тонких ценителей.

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

Самый сок nixos, что все дерево зависимостей начинается с непроверенных бинарей для бутстрапа (gcc, glibc, binutils и тп).

Т.е. если зафиксировать версии компиляторов, то воспроизводимость достигается?

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

Более взрослые системы это какие?

Календарем пользоваться умеешь?

Просто весело с фанатиками. Я в своем ответе написал и плюсы и минусы. При этом фанатики по наблюдаемой реакции даже не заметили плюсы, но сильно обиделись на минусы. Продолжу наблюдение.

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

Воспроизводимость в nix легко ломается подменой зависимостей, грязный хак, для легкой замены при обновлении пакета без пересборки всего графа зависимостей.

А расскажи поподробнее. Как ты это так легко сделал?

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

Самый сок nixos, что все дерево зависимостей начинается с непроверенных бинарей для бутстрапа (gcc, glibc, binutils и тп).

Т.е. если зафиксировать версии компиляторов, то воспроизводимость достигается?

Что такое «зафиксировать версии» для бинарей? Это как секьюрбут, в народе известный как вендорлок?

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

Надо, видимо, бутстрапать как в OpenEmbedded: собрал каким-то gcc промежуточный gcc для сборки будущего исходного gcc, и только после этого поскакал дальше.

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

Что такое «зафиксировать версии» для бинарей?

Это значит использовать только бинари с фиксированными контрольными суммами.

Какие гарантии дает фиксированная контрольная сумма, если я не могу собрать бинарь с такой же контрольной суммой?

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

Криволапым гарантий не дают.

Предлагаю схему: есть исходники gcc с известной контрольной суммой. Ты собираешь их компилятором А, результатом собираешь еще раз. Затем вместо компилятора А берешь компилятор Б и повторяешь весь цикл. Не совпало - разбираешься. Совпало - повторяешь для компилятора В, пока тебя не отпустит кондратий от прочтения https://www.archive.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf

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

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

Вобще-то это ты засоряешь эфир. Ты задаешь вопрос, на который был уже ответ. «Воспроизводимость» есть. Я просто задал вопрос: а что собственно «воспроизводится»? Задал в виде возможного ответа на этоо вопрос.

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

повторяешь весь цикл

Все просто. Теперь осталось написать воспроизводимый сценарий, как эти бинари получили в nixos. И чтобы разорвать порочный круг, без использования nixos/nixpkgs.

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

Попробуй понять заново. Я неправильно выразился. В моей схеме сборки нет цикла. И нет nixos/nixpkgs.

         А              A(source)
source +---> A(source) ----------> A(A(source))
       |
       | Б              Б(source)
       +---> Б(source) ----------> Б(Б(source))
       |
       | В
       +---> В(source) ----------> В(В(source))
       .
       .
       .

Если результаты совпадают, то компиляторы А, Б и В и т.д. либо одинаково безопасны, либо одинаково отравлены. Гарантии лучше без непомерных усилий не будет.

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

либо одинаково отравлены

_Воспроизводимо_ одинаково отравлены. Чувствуешь как можно поиметь все nixos-сообщество. И точка отказа одна, те самые корневые бинари.

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

А ты видел на что я делал ударение? Или опять фанатизм не видит «плюс», который еще и «минус»?
Воспроизводимо.
В nixos ты не подменишь бинарь, если не воспользуешься хаком. В nixos, если сядешь в лужу, то ты из него не вылезешь, она тебя полностью засосет. В то время в других системах ты можешь бутстрапнуться из других систем, с другими встроенными тараканами. Но эти тараканы разные, плохо воспроизводимые.

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

Дебиан, где даже даунгрейда нет?

Есть же. В 99% случаев работает, а в стабильной ветке должно быть и вовсе 100%, т.к. изменения между версиями небольшие. НО, официально в мейнтейнерских скриптах поддержка даунгрейда не гарантируется.

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

Я то понял, что ты - коробка от телевизора, на котором написаны бессмысленные малосвязаные слова. Я пытяюсь понять как ты, коробка, попал в мою палату.

anonymous ()