The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск дистрибутива NixOS 18.09, использующего пакетный менеджер Nix

06.10.2018 21:13

Состоялся выпуск дистрибутива NixOS 18.09, основанного на пакетном менеджере Nix и предоставляющего ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS используется единый файл системной конфигурации (configuration.nix), предоставляется возможность быстрого отката обновлений, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится в домашнюю директорию), возможна одновременная установка нескольких версий одной программы. Размер полного установочного образа с KDE - 1 Гб, сокращённого консольного варианта - 430 Мб. Поддержка выпуска продлится до апреля 2019 года.

Основные новшества:

  • Пакетный менеджер Nix обновлён до версии 2.1, в котором появилась возможность применения режима многопользовательской установки в системах с systemd;
  • Обновлены версии компонентов дистрибутива, в том числе задействованы ядро Linux 4.14, glibc 2.27, gcc 7 и systemd 239.
  • Рабочий стол GNOME обновлён до выпуска 3.28, а KDE Plasma до 5.13;
  • Добавлена возможность запуска исполняемых файлов в изолированном режиме, создаваемом с использованием инструментария firejail;
  • Добавлено 56 новых сервисов, среди которых foundationdb, firejail, iftop, flatpak, zeitgeist, gitweb, weechat, freeradius, quagga, zeronet.

При использовании Nix пакеты устанавливаются в отдельное дерево директорий /nix/store или поддиректорию в каталоге пользователя. Например, пакет устанавливается как /nix/store/f3a5h95649f394359bh52d4vf7a0f3-firefox-62.0.3/, где "f3a4q8..." является уникальным идентификатором пакета, используемым для контроля зависимостей. Пакеты оформляются в виде контейнеров, содержащих необходимые для работы приложений компоненты.

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

  1. Главная ссылка к новости (https://discourse.nixos.org/t/...)
  2. OpenNews: Доступен дистрибутив NixOS 18.03, использующий пакетный менеджер Nix
  3. OpenNews: Доступен пакетный менеджер GNU Guix 0.15 и дистрибутив GuixSD на его основе
  4. OpenNews: Доступен пакетный менеджер Nix 2.0
  5. OpenNews: Представлен elogind, обособленный вариант logind, независимый от systemd
  6. OpenNews: Выпуск GNU Mes 0.17, инструментария для самодостаточной сборки дистрибутивов
Лицензия: CC-BY
Тип: Программы
Ключевые слова: nixos
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (52) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:02, 06/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хороший дистрибутив, но язык Nix всё портит.
    Пришлось откатится обратно на Arch.
     
     
  • 2.2, big_dick (?), 22:28, 06/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Обоснуй, расскажи, если есть время.
     
     
  • 3.3, Аноним (1), 23:10, 06/10/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Во-первых не совсем понятная документация.
    Что по дистрибутиву, что по языку Nix.
    Многие вещи приходилось искать по чужим конфигурациям.
    К примеру оверлеи. Штука классная, чтобы пересобирать пакеты.
    Но об этом в доступном виде нигде не написано.
    И в конфигах других пользователей частенько попадались другие варианты реализации оверлея.
    Сборка софта на скриптовых языках тоже еще тот геморой.
    Попытка собрать пакет Haraka (https://github.com/haraka/Haraka) успехом не увенчалась.
    Может конечно руки не из того места, но в арче у меня проблем со сборкой пакетов не было.

    Во-вторых сам язык.
    Я без понятия, кто и чем там вдохновлялся, но язык Nix это нечто.
    За целый год так в него и не въехал.
    И чтение документации по этому языку ситуацию не улучшило.
    И даже чтение тонны статей на других ресурсах.

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

    Но это у меня так было. У кого-то возможно нет таких проблем.
    Но как по мне, за 10 (или сколько там) лет существования дистрибутива могли бы и по-лучше сделать.
    Т.к. даже с чтением документации и многолетним опытом пользования линукса порог вхождения высоковат.
    В остальном же считаю NixOS вполне неплохим дистрибутивом.

     
     
  • 4.5, Аноним (5), 02:05, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ждем-с когда допилят guix SD?
     
     
  • 5.17, Аноним (1), 10:30, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю. С Guix не работал.
    Только бегло пару раз читал про него инфу.
     
  • 2.8, Грусть (?), 09:04, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дистрибутив как раз хреновый, а вот Никс - отличный пакетный менеджер.

    В nixpkgs тоже много спорных решений.

    См. https://github.com/ip1981/nixsap

     
  • 2.23, Аноним (-), 13:34, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да, конечно. Nix плохой язык, не иметь никакого языка для декларативного описания системы много лучше.
     

  • 1.4, Ю.Т. (?), 23:22, 06/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Каждый мелкий пакетишко тащит 2+ Гб зависимостей. Это перебор всё-таки. Идея прекрасная, но хорошо было бы в её осуществлении "остановиться на предыдущем шаге".
    Как и предыдущий комментатор, нашёл маловнятным язык описания пакетов. Не собирался gimp 2.10 из-за неуказанной зависимости, и найти место, где её можно добавить, "быстро" не удалось.
    Репозитории пакетов плохо описаны. Где свежак, где для релиза -- понять трудно, и ещё труднее управлять установкой.
     
     
  • 2.14, Грусть (?), 09:46, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Каждый мелкий пакетишко тащит 2+ Гб зависимостей.

    Это не проблема Никса, он просто хорошо делает свою работу по отслеживанию зависимостей. Это проблема авторов НиксОС и Никспэкагэс.

     
  • 2.18, Аноним (18), 10:33, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Каждый мелкий пакетишко тащит 2+ Гб зависимостей.

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

     
     
  • 3.36, anonymous (??), 22:09, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если авторы пакета не указали рейндж версии, а указали точную версию, или если пакетный менеджер не смог оптимизировать общую установку, подобрав правильный набор версий, который может удовлетворять как можно больше зависимостей одновременно, то система выродится именно в то, что описано: каждый пакет имеет несовместимые с прочими зависимости и тянет за собой 2 гига.
     
     
  • 4.37, Грусть (?), 23:16, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы совсем не в теме. В Никсе нет версии, не говоря уже о диапазонах, но зависимость всегда очень и очень точная, определяется хэшем. Изменил один байт - получи новую " версию" (хэш). Старое остаётся на месте до ближайшей уборки мусора.
     
  • 3.42, Ю.Т. (?), 09:41, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Каждый мелкий пакетишко тащит 2+ Гб зависимостей.
    > Надеюсь вы понимаете, что они не дублируются для каждого пакета отдельно? Если
    > да, то я не понимаю в чём аргумент.

    Не знаю, понимаю ли я, но в течении нескольких часов одного дня собирались приветмир и гимп (этот, как сказано -- не до конца), и сразу бросилась в глаза пересборка одного и того же bash (и binutils, и ещё чего-то), ну, и объёмчик занимаемый впечатлил тоже:

    [code]$ du -sh /d/nix/store
    6.7G    /d/nix/store
    $ ls /d/nix/store | wc -l
    4949[/code]

    Это приложение-то и от приложения хвостик?

    Идея, повторюсь, правильная, и нечто похожее я когда-то "лепил на коленке", но здесь получается хорошей вещи слишком много. Или некачественны готовые изделия (то есть сетевые храны и сценарии в них).

     

  • 1.6, Акакжев (?), 07:46, 07/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    /nix/store/f3a5h95649f394359bh52d4vf7a0f3-firefox-62.0.3/
    /nix/store/firefox-62.0.3-f3a5h95649f394359bh52d4vf7a0f3/

    Зачем выбран 1й вариант?

     
     
  • 2.7, EuPhobos (ok), 09:02, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да, непонятно кто додумался сначала хэш поставить, а потом имя приложения..
    Можно подумать что так проще хэш скриптами вырезать, но его так же было бы просто вырезать и с конца.. Сия задумка неведома.
     
     
  • 3.12, Грусть (?), 09:39, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы не знаете, как о откуда он вырезается. Если бы хэш был "в конце", вырезание было бы вообще невозможно.

    Хэш вырезается не скриптами, а из скриптов и бинарных файлов для автоматического отслеживания зависимостей.

    То есть, нашли строку /nix/store/, значит за неё сразу хэш длиной столько-то, берём его.

    А то, что вы предлагаете ("с конца") невозможно, потому что конца нет (мы шерстим произвольный бинарный файл).

     
     
  • 4.16, Аноним (16), 10:11, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наркомания на марше. С конца они хэш вырезать не могут.
     
     
  • 5.19, Аноним (19), 10:48, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Глупый анонимус, нет никакой проблемы вырезать хэш, если дан путь, но это задача... текст свёрнут, показать
     
     
  • 6.38, Аноним (-), 06:36, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Кто на ком стоял? Не понятно, что ты имеешь ввиду
     
  • 2.21, shatsky (?), 11:22, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вероятно, потому, что система при рантайм разрешении зависимостей ищет их по этим же хэшам. Представь себе, что тебе нужно было бы в словаре искать слова не по первым буквам, а по последним.
     
     
  • 3.30, Акакжев (?), 14:57, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Априори понятно, что хеши в путях так или иначе используются (иначе бы их не было).

    Даже не предполагал, что ответы будут из разряда "алгоритм Кнута-Морриса-Пратта понимают только Кнут, Моррис и Пратт".

     
  • 3.32, Грусть (?), 17:53, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет никакого "рантайм разрешения зависимостей". Билдтайм - есть.
     
  • 2.22, Аноним (-), 13:32, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем второй? Ты же не будешь руками лезть в /nix/store/? Лучше бы они вообще не использовали имя в пути, не было бы лишних споров.
     
     
  • 3.28, Акакжев (?), 14:33, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем второй? Ты же не будешь руками лезть в /nix/store/?

    Вот именно, что не буду: как увижу, так впадаю в ступор. "Что внутри, то и снаружи". До установки дело не доходит.

    > Лучше
    > бы они вообще не использовали имя в пути, не было бы
    > лишних споров.

    Наверное.

     
  • 2.33, anonymous (??), 18:47, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем выбран 1й вариант?

    Все просто...
    Понятно станет когда будете смотреть

    ls /nix/store/

    все будет очень красиво отформатировано, и все названия пакетов(их реальные имена) будут иметь одинаковое смещении от начало строки.

     
     
  • 3.34, Andrey Mitrofanov (?), 19:18, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Зачем выбран 1й вариант?
    > ls /nix/store/
    > все будет очень красиво отформатировано, и все названия пакетов(их реальные имена) будут
    > иметь одинаковое смещении от начало строки.

    Так, во втором варианте это точто так.

     
     
  • 4.35, anonymous (??), 20:37, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет не так.

    Если тут:
    [code]
    01gxz0kr1vw0wwix34a4wzbacxlkxiwf-libpng-1.6.34-apng.patch.gz.drv
    01vamjy3a4ql8d0syh5b4raaw06652gz-gtk-doc-1.28.tar.xz.drv
    033374d5p2fnv7w24d0zm0byppcpb4dh-m4-1.4.18.tar.bz2.drv
    03gzan2g03vki14jlf0g5zr4ywz49jrz-xcb-proto-1.12.drv
    03ix1p0c4a009f5l1rqmk7cyv64pwvlj-gnuplot-5.2.4
    03yy2hmr1id53djlydksxi6id4a6qf42-xcb-util-wm-0.4.1.tar.bz2.drv
    04gyl8ivy2d4gri4gn8rsiv9zfgrwv24-libXfont2-2.0.3.tar.bz2.drv
    04p7zzghl7c9yhqd04mwgqyixjp69ljf-cln-1.3.4.tar.bz2.drv
    059x3q97k49qlika2rhw68v4112jf7s7-hscolour-1.24.4.drv
    05g5zv4i0cxnpv19rf5axagbdm2yc4w5-ghc-8.2.1-x86_64-deb8-linu
    [/code]
    то второй вариант будет:
    [code]
    missing-includes.patch-00f7f6dbhd2rzbw3q7lixm55ccgl31vn
    easy-file-0.2.2.drv-00km6fyhm5sd7mny598bbc5a73w0bgkq
    hook-00ngkh3898nn72kgm2p6xkh2h82kw8z8
    either-5.0.1.tar.gz.drv-00y0r6lzrlaqicnl6akki348z0rbnk3h
    source.drv-0197ym4z8b5jqzgjcvhwcjkg1ks72njz
    reload-container-01bmszganq6wbczbpc4vbz8mp2d5h1j1
    libpng-1.6.34-apng.patch.gz.drv-01gxz0kr1vw0wwix34a4wzbacxlkxiwf
    gtk-doc-1.28.tar.xz.drv-01vamjy3a4ql8d0syh5b4raaw06652gz
    m4-1.4.18.tar.bz2.drv-033374d5p2fnv7w24d0zm0byppcpb4dh
    xcb-proto-1.12.drv-03gzan2g03vki14jlf0g5zr4ywz49jrz
    gnuplot-5.2.4-03ix1p0c4a009f5l1rqmk7cyv64pwvlj
    xcb-util-wm-0.4.1.tar.bz2.drv-03yy2hmr1id53djlydksxi6id4a6qf42
    libXfont2-2.0.3.tar.bz2.drv-04gyl8ivy2d4gri4gn8rsiv9zfgrwv24
    cln-1.3.4.tar.bz2.drv-04p7zzghl7c9yhqd04mwgqyixjp69ljf
    hscolour-1.24.4.drv-059x3q97k49qlika2rhw68v4112jf7s7
    ghc-8.2.1-x86_64-deb8-linu-05g5zv4i0cxnpv19rf5axagbdm2yc4w5
    [/code]
    Мне первый больше нравится, а вам? )

     
     
  • 5.39, Аноним (-), 06:40, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на минуточку, второй вариант будет выглядеть code cln-1 3 4 tar bz2 drv-04p7zz... текст свёрнут, показать
     
     
  • 6.40, Акакжев (?), 08:23, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, и если установлено несколько версий одного пакета, то они окажутся рядышком. Если же версия одна, то в хеше нет необходимости.
     
  • 5.45, Andrey Mitrofanov (?), 11:40, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > 05g5zv4i0cxnpv19rf5axagbdm2yc4w5-ghc-8.2.1-x86_64-deb8-linu
    > ghc-8.2.1-x86_64-deb8-linu-05g5zv4i0cxnpv19rf5axagbdm2yc4w5

    …-ghc-8.2.1-x86_64-deb8-linu

    > Мне первый больше нравится, а вам? )

    Мне больше нравится "с точечками": http://www.opennet.ru/openforum/vsluhforumID3/112972.html#11
    + https://emacs-guix.gitlab.io/website/manual/latest/html_node/Prettify-Mode.htm <<<= актуальная ссылка
    + https://github.com/alezost/pretty-sha-path.el <<<= или старо-отдельно

    Но вопрос-то был почему они выбрали.

    Видимо, ваш ответ "мне нравится" следует читать "им (ему= Элько Дольстра) нравится".  Вот и славно.

     
     
  • 6.47, Акакжев (?), 13:32, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Мне больше нравится "с точечками": http://www.opennet.ru/openforum/vsluhforumID3/112972.html#11
    >  + https://emacs-guix.gitlab.io/website/manual/latest/html_node/Prettify-Mode.htm
    > <<<= актуальная ссылка

    Так редактор декорирует. ls покажет как есть.

    В NTFS имеется такой неиспользуемый (и неподдерживаемый) тамошними приложениями функционал, как Alternative Data Streams (ADS).
    То есть имя файла будет выглядеть следующим образом:
    /nix/store/ghc-8.2.1-x86_64-deb8-linu:05g5zv4i0cxnpv19rf5axagbdm2yc4w5
    если ADS один, то можно открывать файл по имени до двоеточия:
    /nix/store/ghc-8.2.1-x86_64-deb8-linu

    Поскольку в таких каталогах хранятся различные версии одного приложения, по смыслу близки и напрашиваются подтома и их снимки (snapshot) btrfs. Если дальше развивать идею, при наличии должной поддержки со стороны ФС, вероятно, можно обойтись без хешей и ссылок, максимально сохранив привычную структуру каталогов.

     
     
  • 7.49, Andrey Mitrofanov (?), 13:46, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В NTFS имеется такой неиспользуемый (и неподдерживаемый) тамошними приложениями функционал,

    Гадость-то какая[I]!

    > как

     
     
  • 8.50, Акакжев (?), 14:25, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да Сделали давно и не используют Значит чем дальше, тем меньше будут испол... текст свёрнут, показать
     
     
  • 9.51, Andrey Mitrofanov (?), 14:27, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Визионер в треде Все в машину ... текст свёрнут, показать
     
     
  • 10.52, Акакжев (?), 14:29, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Tiamat - Visionaire Music Edlund, Petersson Lyrics Edlund With a solar knife ... текст свёрнут, показать
     
  • 7.53, Аноним84701 (ok), 14:43, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В NTFS имеется такой неиспользуемый (и неподдерживаемый) тамошними приложениями функционал,
    > как Alternative Data Streams (ADS).

    Во многих (практически во всех основных) не-нт-фс реализованы "extended attributes":
    https://www.lesbonscomptes.com/pages/extattrs.html
    http://man7.org/linux/man-pages/man5/attr.5.html

    причем уже давно (в полуоси еще лет 20 назад), но … не прижилось.

     
     
  • 8.54, Акакжев (?), 07:11, 09/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ограничение по размеру, коих нет в ADS обычный файл там является основным ст... текст свёрнут, показать
     
  • 3.41, Акакжев (?), 08:26, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > ls /nix/store/
    > все будет очень красиво отформатировано, и все названия пакетов(их реальные имена) будут
    > иметь одинаковое смещении от начало строки.

    Спасибо. Разумное объяснение. Однако, отсортированный вывод привычнее.

     

  • 1.9, Грусть (?), 09:11, 07/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Главное, не переоценивать Никс. Это прежде всего инструмент - мета-компилятор, который при фиксированном входе даёт фиксированный выход: файл, директорию, операционную систему. Результат не обязан всех устраивать или даже работать :) Фишка в том, что есть возможность так изменить входные данные, что выход будет вас устраивать, и вы всегда сможете его воспроизвести.
     
  • 1.10, Аноним (10), 09:21, 07/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ))) Даешь пакетный менеджер на блокчеине!
     
     
  • 2.20, Аноним (20), 11:19, 07/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > ))) Даешь пакетный менеджер на блокчеине!

    И интерфейсе на электроне...

     
  • 2.59, Dmitry77 (ok), 09:21, 14/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пакетный менеджер на IPFS
     

  • 1.24, Аноним (-), 13:42, 07/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Добавлена возможность запуска исполняемых файлов в изолированном режиме, создаваемом с использованием инструментария firejail;

    Запускать через 'firejail firefox' можно в любом дистре. Тут же можно сделать так, что непосредствено комманда 'firefox' присутствующая в $PATH будет запускать firefox через firejail.

     
  • 1.31, Andrey Mitrofanov (?), 16:43, 07/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится
    > в домашнюю директорию), возможна одновременная установка нескольких версий одной программы.

    В _домашнюю_ пользователя ничего (в норме -- не не-root установка) не ставится.  Только симлинк на профиль (в  /var?.. симлинком на "поколение" профиля в Store?), кажется (я не пользовал ни сабж, ни guix -- только на картинках видел).

    [I]"" [B]Multi-user support[/B]

    Starting at version 0.11, Nix has multi-user support. This means that non-privileged users can securely install software. Each user can have a different profile, a set of packages in the Nix store that appear in the user’s PATH. If a user installs a package that another user has already installed previously, the package won’t be built or downloaded a second time. At the same time, it is not possible for one user to inject a Trojan horse into a package that might be used by another user. "[/I]

    > При использовании Nix пакеты устанавливаются в отдельное дерево директорий /nix/store
    > или поддиректорию в каталоге пользователя.

    "Многопользовательские" пакеты просто попадают в разные директории - с разными хешами, например.  И в профили попадают соотв-но разные симлинки~~.

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

    Вот слово "контейнер" здесь очень к месту.  Как в "мусорный коньейнер".  Или как "файлы изолируются в ФС в изолированные контейнеры -- директории".

     
  • 1.43, Аноним (19), 11:22, 08/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Господа, давайте закроем тему, почему хэш перед именем, а не после, навсегда Да... текст свёрнут, показать
     
     
  • 2.44, Аноним (19), 11:25, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И, кстати, /nix/store - важный маркер ;) Или /guix/store. Но не /usr ;) То есть "пакеты" не должны быть установлены в стандартные места вроде /srv, /opt.
     
     
  • 3.48, Andrey Mitrofanov (?), 13:34, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > И, кстати, /nix/store - важный маркер ;) Или /guix/store. Но не /usr
    > ;) То есть "пакеты" не должны быть установлены в стандартные места
    > вроде /srv, /opt.

    Не знаю, как Nix(*), а Guix позволяет оно двигать
      http://git.savannah.gnu.org/cgit/guix.git/tree/configure.ac#n30
      http://git.savannah.gnu.org/cgit/guix.git/tree/configure.ac#n272

    , в т.ч. в ~user/.

    И даже, говорят (сам-то я только на слайдах видел), когда-то можно было демона без рута в своём $HOME пускать.  Сборка всего из исходников и потеря двоичных сборок с интернетов, развал/отмена изоляции демона-сборщика -- комплектом.  И отсутствие поддержки таких "пользователей" -- становящихся "волшебно" сами себе девелоперами.  

    (*) а не, вот оно ж
      https://github.com/NixOS/nix/blob/master/configure.ac#L143
      [но без варнингов а-ля вторая ссылка наверху]

      Вот прочие изыски от сообщества -- как в ~/ без root-а:
      https://nixos.wiki/wiki/Nix_Installation_Guide

     
     
  • 4.58, Andrey Mitrofanov (?), 10:52, 09/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Не знаю, как Nix(*), а Guix позволяет оно двигать
    > , в т.ч. в ~user/.
    > И даже, говорят (сам-то я только на слайдах видел), когда-то можно было
    > демона без рута в своём $HOME пускать.  Сборка всего из

    _Кажется_, на простой запуск демона от юзера в Guix забили.

    Теперь
      .  https://lists.gnu.org/archive/html/guix-devel/2018-10/msg00073.html
      .  .  https://lists.gnu.org/archive/html/guix-devel/2018-05/msg00139.html
    _играются_ с модными фичами -- user namespaces(*) в ядре и ‘guix pack --relocatable’.

    (*)
      https://www.opennet.ru/opennews/art.shtml?num=46281
      https://www.opennet.ru/opennews/art.shtml?num=46526

     
  • 2.46, Andrey Mitrofanov (?), 12:18, 08/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Господа, давайте закроем тему, почему хэш перед именем, а не после, навсегда.
    > Короче, если ставить хэш "в конце", его просто не найти.
    > Если же хэш "в начале" (сразу после /nix/store), то всё значительно упрощается:
    > нашли /nix/store, отсчитали n байт. Всё.

    И это тож.  "Слегка" эффективнее.  Может быть.

    [В том же phd-thesis.pdf Автор [пишет о том, что] ищет просто 32 байта hex-а.]

    И это:
    https://nixos.wiki/wiki/FAQ#Why_.3Chash.3E-.3Cname.3E_instead_of_.3Cname.3E-.3

    И это--^^ _всё_ пост-фактум.  Почему Дольстра выбрал именно №1, а не №2 неизвестно.  Пока?

    Полистал phd-thesis.pdf -- там только про "уникально идентифицировать" и "избегать коллизий".  Путь, включающий хеш, не важно _где_ - по №№1, 2 или 3(ниже), вполне отвечает Высоким Требованиям.

    Вот, например, в Maak-е [того же автора] хеши "после" [или даже "в середине" -- давайте ещё №3 пообсуждаем--]:

    [I]"" The usual approach is to form an output name using a hash of the input attributes. For example, compileC (./foo.c) might yield a filename .maak_foo_305c.o, while compileC {in = ./foo.c, cflags = "-g"} would yield .maak_foo_54db.o; in actuality, we use longer hashes to decrease the probability of a collision. ""[/I]
    --http://nixos.org/~eelco/pubs/iscsd-scm11-final.pdf

    Можно искать в источниках, можно г-на Дольстра при случае спросить, можно фантазировать (и меряться, кто выдумал Лучше!), факта это всё не меняет:  с технической т.з. разницы _нет_ и [версия, что] выбор был сделан автором произвольно ничем не хуже прочих.

     
     
  • 3.56, Акакжев (?), 07:39, 09/10/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > с технической т.з. разницы _нет_

    Совершенно верно. Вне зависимости от содержимого phd-thesis.pdf (и хорошо, что согласуется с "Высокими Требованиями").

    > и [версия, что] выбор был сделан
    > автором произвольно ничем не хуже прочих.

    Именно потому, что в версии нет сомнений, и был задан вопрос.
    И вопрос был не "почему?", а "зачем?" (что, в зависимости от точки зрения, можно трактовать и как "для чего?").

    > Можно искать в источниках, можно г-на Дольстра при случае спросить

    Можно ещё и Юнга. Программы создаются не только для машин, но и для людей.

     
  • 2.55, Аноним (55), 07:33, 09/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Хэш вначале ещё с точке зрения безопасности более оправдан. Некоторые ФС и архиваторы имеют ограничения на размер имени директории, что может теоретически использоваться для атак с использованием  имён "очень_большое_имя-хэш", в которых хэш будет сдвинут за границу лимита, или подсовыванием спецсимволов в имя (типа "имя-фиктивный_хэш\0реальный_хэш").
     
     
  • 3.57, Акакжев (?), 07:43, 09/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    There are only 10 types of people in the world: those who understand binary, and those who don't.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру