The OpenNET Project / Index page

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



"Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от opennews (??), 06-Окт-18, 22:02 
Состоялся (https://discourse.nixos.org/t/nixos-18-09-jellyfish-released...) выпуск дистрибутива NixOS 18.09 (http://nixos.org/), основанного на пакетном менеджере Nix (http://nixos.org/nix/) и предоставляющего ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в  NixOS используется единый файл системной конфигурации (configuration.nix), предоставляется возможность быстрого отката обновлений, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится в домашнюю директорию), возможна одновременная установка нескольких версий одной программы. Размер полного установочного образа (https://nixos.org/nixos/download.html) с KDE - 1 Гб, сокращённого консольного варианта - 430 Мб. Поддержка выпуска продлится до апреля 2019 года.

Основные новшества (https://nixos.org/nixos/manual/release-notes.html#sec-releas...):

-  Пакетный менеджер Nix обновлён до версии 2.1 (https://nixos.org/nix/manual/#ssec-relnotes-2.1), в котором появилась возможность применения режима многопользовательской установки в системах с  systemd;

-  Обновлены версии компонентов дистрибутива, в том числе задействованы ядро Linux 4.14, glibc 2.27, gcc 7 и systemd 239.
-  Рабочий стол GNOME обновлён до выпуска  3.28, а KDE Plasma до 5.13;

-  Добавлена возможность запуска исполняемых файлов в изолированном режиме, создаваемом с использованием инструментария firejail (https://www.opennet.ru/opennews/art.shtml?num=45120);

-  
Добавлено 56 новых сервисов, среди которых foundationdb, firejail, iftop, flatpak, zeitgeist, gitweb, weechat, freeradius, quagga, zeronet.


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

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


URL: https://discourse.nixos.org/t/nixos-18-09-jellyfish-released...
Новость: https://www.opennet.ru/opennews/art.shtml?num=49403

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (1), 06-Окт-18, 22:02 
Хороший дистрибутив, но язык Nix всё портит.
Пришлось откатится обратно на Arch.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от big_dick (?), 06-Окт-18, 22:28 
Обоснуй, расскажи, если есть время.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +9 +/
Сообщение от Аноним (1), 06-Окт-18, 23:10 
Во-первых не совсем понятная документация.
Что по дистрибутиву, что по языку Nix.
Многие вещи приходилось искать по чужим конфигурациям.
К примеру оверлеи. Штука классная, чтобы пересобирать пакеты.
Но об этом в доступном виде нигде не написано.
И в конфигах других пользователей частенько попадались другие варианты реализации оверлея.
Сборка софта на скриптовых языках тоже еще тот геморой.
Попытка собрать пакет Haraka (https://github.com/haraka/Haraka) успехом не увенчалась.
Может конечно руки не из того места, но в арче у меня проблем со сборкой пакетов не было.

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

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (5), 07-Окт-18, 02:05 
Ждем-с когда допилят guix SD?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

17. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (1), 07-Окт-18, 10:30 
Не знаю. С Guix не работал.
Только бегло пару раз читал про него инфу.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Грусть (?), 07-Окт-18, 09:04 
Дистрибутив как раз хреновый, а вот Никс - отличный пакетный менеджер.

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

23. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (-), 07-Окт-18, 13:34 
Да, конечно. Nix плохой язык, не иметь никакого языка для декларативного описания системы много лучше.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Ю.Т. (?), 06-Окт-18, 23:22 
Каждый мелкий пакетишко тащит 2+ Гб зависимостей. Это перебор всё-таки. Идея прекрасная, но хорошо было бы в её осуществлении "остановиться на предыдущем шаге".
Как и предыдущий комментатор, нашёл маловнятным язык описания пакетов. Не собирался gimp 2.10 из-за неуказанной зависимости, и найти место, где её можно добавить, "быстро" не удалось.
Репозитории пакетов плохо описаны. Где свежак, где для релиза -- понять трудно, и ещё труднее управлять установкой.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Грусть (?), 07-Окт-18, 09:46 
> Каждый мелкий пакетишко тащит 2+ Гб зависимостей.

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

18. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (18), 07-Окт-18, 10:33 
> Каждый мелкий пакетишко тащит 2+ Гб зависимостей.

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

36. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от anonymous (??), 07-Окт-18, 22:09 
Если авторы пакета не указали рейндж версии, а указали точную версию, или если пакетный менеджер не смог оптимизировать общую установку, подобрав правильный набор версий, который может удовлетворять как можно больше зависимостей одновременно, то система выродится именно в то, что описано: каждый пакет имеет несовместимые с прочими зависимости и тянет за собой 2 гига.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

37. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +2 +/
Сообщение от Грусть (?), 07-Окт-18, 23:16 
Вы совсем не в теме. В Никсе нет версии, не говоря уже о диапазонах, но зависимость всегда очень и очень точная, определяется хэшем. Изменил один байт - получи новую " версию" (хэш). Старое остаётся на месте до ближайшей уборки мусора.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

42. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Ю.Т. (?), 08-Окт-18, 09:41 
>> Каждый мелкий пакетишко тащит 2+ Гб зависимостей.
> Надеюсь вы понимаете, что они не дублируются для каждого пакета отдельно? Если
> да, то я не понимаю в чём аргумент.

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

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

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

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

6. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Акакжев (?), 07-Окт-18, 07:46 
/nix/store/f3a5h95649f394359bh52d4vf7a0f3-firefox-62.0.3/
/nix/store/firefox-62.0.3-f3a5h95649f394359bh52d4vf7a0f3/

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от EuPhobos (ok), 07-Окт-18, 09:02 
Да, непонятно кто додумался сначала хэш поставить, а потом имя приложения..
Можно подумать что так проще хэш скриптами вырезать, но его так же было бы просто вырезать и с конца.. Сия задумка неведома.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Грусть (?), 07-Окт-18, 09:39 
Вы не знаете, как о откуда он вырезается. Если бы хэш был "в конце", вырезание было бы вообще невозможно.

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

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

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

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

16. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Аноним (16), 07-Окт-18, 10:11 
Наркомания на марше. С конца они хэш вырезать не могут.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

19. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Аноним (19), 07-Окт-18, 10:48 
Глупый анонимус, нет никакой проблемы вырезать хэш, если дан путь, но это задача не стоит вообще. Задача - выделить пути из произвольного файла. На, вырезай, а потм представь, что у тебя, например, не "/nix/store/x6kpj7rpzpn80cf88gzx7aizs32ncnxf-fakeroot-1.22/bin/fakeroot", а "/nix/store/fakeroot-1.22-x6kpj7rpzpn80cf88gzx7aizs32ncnxf/bin/fakeroot":


#!/nix/store/8zkg9ac4s4alzyf4a8kfrig1j73z66dw-bash-4.4-p23/bin/bash
set -euo pipefail
umask 0077


/nix/store/x6kpj7rpzpn80cf88gzx7aizs32ncnxf-fakeroot-1.22/bin/fakeroot /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 api setup
/nix/store/x6kpj7rpzpn80cf88gzx7aizs32ncnxf-fakeroot-1.22/bin/fakeroot /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 feature enable checker
/nix/store/x6kpj7rpzpn80cf88gzx7aizs32ncnxf-fakeroot-1.22/bin/fakeroot /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 feature enable command
/nix/store/x6kpj7rpzpn80cf88gzx7aizs32ncnxf-fakeroot-1.22/bin/fakeroot /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 feature enable livestatus

/nix/store/x6kpj7rpzpn80cf88gzx7aizs32ncnxf-fakeroot-1.22/bin/fakeroot /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 feature enable notification


pwd=''
printf 'const IdoDbPassword = "%s"\n' "$pwd" > '/run/icinga2/ido-password.conf'


printf 'const TicketSalt = "%s"\n' "$(/nix/store/w880cra01d25hhyx02ldangkzrbxxxb9-pwgen-2.08/bin/pwgen -1 -s 23)" \
  > /icinga2/etc/icinga2/conf.d/ticketsalt.conf

if [ -e /icinga2/etc/icinga2/mutable.d/restart ]; then
  rm /icinga2/etc/icinga2/mutable.d/restart
else
  /nix/store/i76jkssfcvkpmjyy92c8ncdcas9ci2is-icinga-mutable-update || true
  if ! /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 daemon -C -x critical -c /nix/store/iv52lm6vi25kj5n2bs6p6av8g17n75nb-icinga2.conf; then
    rm -rf /icinga2/etc/icinga2/mutable.d
    mkdir -p /icinga2/etc/icinga2/mutable.d
  fi
fi

exec /nix/store/wr6v08dwg536lm0ig2379ndkja6cxng4-icinga2-2.9.1/bin/icinga2 daemon -x notice -c /nix/store/iv52lm6vi25kj5n2bs6p6av8g17n75nb-icinga2.conf

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

38. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (-), 08-Окт-18, 06:36 
Кто на ком стоял? Не понятно, что ты имеешь ввиду
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

21. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от shatsky (?), 07-Окт-18, 11:22 
Вероятно, потому, что система при рантайм разрешении зависимостей ищет их по этим же хэшам. Представь себе, что тебе нужно было бы в словаре искать слова не по первым буквам, а по последним.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

30. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Акакжев (?), 07-Окт-18, 14:57 
Априори понятно, что хеши в путях так или иначе используются (иначе бы их не было).

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

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

32. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Грусть (?), 07-Окт-18, 17:53 
Нет никакого "рантайм разрешения зависимостей". Билдтайм - есть.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

22. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (-), 07-Окт-18, 13:32 
А зачем второй? Ты же не будешь руками лезть в /nix/store/? Лучше бы они вообще не использовали имя в пути, не было бы лишних споров.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

28. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Акакжев (?), 07-Окт-18, 14:33 
> А зачем второй? Ты же не будешь руками лезть в /nix/store/?

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

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

Наверное.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

33. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от anonymous (??), 07-Окт-18, 18:47 
> Зачем выбран 1й вариант?

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

ls /nix/store/

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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

34. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 07-Окт-18, 19:18 
>> Зачем выбран 1й вариант?
> ls /nix/store/
> все будет очень красиво отформатировано, и все названия пакетов(их реальные имена) будут
> иметь одинаковое смещении от начало строки.

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

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

35. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от anonymous (??), 07-Окт-18, 20:37 
Нет не так.

Если тут:


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

то второй вариант будет:

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

Мне первый больше нравится, а вам? )
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

39. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Аноним (-), 08-Окт-18, 06:40 
на минуточку, второй вариант будет выглядеть


cln-1.3.4.tar.bz2.drv-04p7zzghl7c9yhqd04mwgqyixjp69ljf
easy-file-0.2.2.drv-00km6fyhm5sd7mny598bbc5a73w0bgkq
either-5.0.1.tar.gz.drv-00y0r6lzrlaqicnl6akki348z0rbnk3h
ghc-8.2.1-x86_64-deb8-linu-05g5zv4i0cxnpv19rf5axagbdm2yc4w5
gnuplot-5.2.4-03ix1p0c4a009f5l1rqmk7cyv64pwvlj
gtk-doc-1.28.tar.xz.drv-01vamjy3a4ql8d0syh5b4raaw06652gz
hook-00ngkh3898nn72kgm2p6xkh2h82kw8z8
hscolour-1.24.4.drv-059x3q97k49qlika2rhw68v4112jf7s7
libXfont2-2.0.3.tar.bz2.drv-04gyl8ivy2d4gri4gn8rsiv9zfgrwv24
libpng-1.6.34-apng.patch.gz.drv-01gxz0kr1vw0wwix34a4wzbacxlkxiwf
m4-1.4.18.tar.bz2.drv-033374d5p2fnv7w24d0zm0byppcpb4dh
missing-includes.patch-00f7f6dbhd2rzbw3q7lixm55ccgl31vn
reload-container-01bmszganq6wbczbpc4vbz8mp2d5h1j1
source.drv-0197ym4z8b5jqzgjcvhwcjkg1ks72njz
xcb-proto-1.12.drv-03gzan2g03vki14jlf0g5zr4ywz49jrz
xcb-util-wm-0.4.1.tar.bz2.drv-03yy2hmr1id53djlydksxi6id4a6qf42

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

40. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Акакжев (?), 08-Окт-18, 08:23 
Да, и если установлено несколько версий одного пакета, то они окажутся рядышком. Если же версия одна, то в хеше нет необходимости.
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

45. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 08-Окт-18, 11:40 
> 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

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

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

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

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

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

47. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Акакжев (?), 08-Окт-18, 13:32 
> Мне больше нравится "с точечками": https://www.opennet.ru/openforum/vsluhforumID3/112972.html#11
>  + https://emacs-guix.gitlab.io/website/manual/latest/html_node...
> <<<= актуальная ссылка

Так редактор декорирует. 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. Если дальше развивать идею, при наличии должной поддержки со стороны ФС, вероятно, можно обойтись без хешей и ссылок, максимально сохранив привычную структуру каталогов.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

49. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 08-Окт-18, 13:46 
> В NTFS имеется такой неиспользуемый (и неподдерживаемый) тамошними приложениями функционал,

Гадость-то какая!

> как

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

50. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Акакжев (?), 08-Окт-18, 14:25 
>> В NTFS имеется такой неиспользуемый (и неподдерживаемый) тамошними приложениями функционал,
> Гадость-то какая!

Ну да. Сделали давно и не используют. Значит: чем дальше, тем меньше будут использовать. Такая там тенденция.

Но тут интересно, как дальше будет развиваться NixOS, и можно ли от хешей уйти.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

51. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 08-Окт-18, 14:27 
>>> В NTFS имеется такой неиспользуемый (и неподдерживаемый) тамошними приложениями функционал,
>> Гадость-то какая!
> Ну да. Сделали давно и не используют. Значит: чем дальше, тем меньше
> будут использовать. Такая там тенденция.
> Но тут интересно, как дальше будет развиваться NixOS, и можно ли от
> хешей уйти.

Визионер в треде!  Все в машину.

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

52. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Акакжев (?), 08-Окт-18, 14:29 
Tiamat - Visionaire

Music: Edlund, Petersson; Lyrics: Edlund

With a solar knife I split the sky
And walk right in between
To search the answers to every "why?"
Where I have seen the unseen

I stole the colour of night
To get out of your sight
I am the Visionaire
Источник teksty-pesenok.ru
Follow me if you dare...

I count the stars in my hands
And dream myself strong
To watch them twinkle on my command
As once a year in midwinter songs

I stole the colour of night
To get out of your sight
I am the Visionaire
Follow me if you dare...

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

53. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним84701 (ok), 08-Окт-18, 14:43 
> В 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 назад), но … не прижилось.

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

54. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Акакжев (?), 09-Окт-18, 07:11 
> Во многих (практически во всех основных) не-нт-фс реализованы "extended attributes":

Ограничение по размеру, коих нет в ADS ("обычный файл" там является основным "стримом").

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

41. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Акакжев (?), 08-Окт-18, 08:26 
> ls /nix/store/
> все будет очень красиво отформатировано, и все названия пакетов(их реальные имена) будут
> иметь одинаковое смещении от начало строки.

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

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

9. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Грусть (?), 07-Окт-18, 09:11 
Главное, не переоценивать Никс. Это прежде всего инструмент - мета-компилятор, который при фиксированном входе даёт фиксированный выход: файл, директорию, операционную систему. Результат не обязан всех устраивать или даже работать :) Фишка в том, что есть возможность так изменить входные данные, что выход будет вас устраивать, и вы всегда сможете его воспроизвести.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (10), 07-Окт-18, 09:21 
))) Даешь пакетный менеджер на блокчеине!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (20), 07-Окт-18, 11:19 
> ))) Даешь пакетный менеджер на блокчеине!

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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

59. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Dmitry77 (ok), 14-Окт-18, 09:21 
Пакетный менеджер на IPFS
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

24. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Аноним (-), 07-Окт-18, 13:42 
> Добавлена возможность запуска исполняемых файлов в изолированном режиме, создаваемом с использованием инструментария firejail;

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

31. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 07-Окт-18, 16:43 
> поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится
> в домашнюю директорию), возможна одновременная установка нескольких версий одной программы.

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

"" Multi-user support

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. "

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

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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Аноним (19), 08-Окт-18, 11:22 
Господа, давайте закроем тему, почему хэш перед именем, а не после, навсегда.

Да, вы можете "вырезать" хэш с конца строки "/nix/store/foo-1.2.3-<hash>". Но такая задача не стоит вообще: не возникает необходимости этого делать.

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

Проще всего это продемонстировать на примере текстовых скриптов, но и бинарные файлы тоже ссылаются на другие пакеты, например:

objdump -p /nix/store/1pfwvyjl6rh57hbcj9w7yb16wb5djjx3-systemd-238/lib/systemd/systemd | grep -F RUNPATH
  RUNPATH              /nix/store/1pfwvyjl6rh57hbcj9w7yb16wb5djjx3-systemd-238/lib/systemd:/nix/store/hs26ajisl0xgb9ihvakmff7i0kjgzb7i-libseccomp-2.3.3-lib/lib:/nix/store/qd072spxcp4dqqjzwdybj59nna2adjmi-util-linux-2.32/lib:/nix/store/nazwqg290a3i5jrvwg8cqvqnh8n8pinf-audit-2.8.3/lib:/nix/store/9y8vpz8kdv463lz7qimapqiak4wh9vnk-kmod-25/lib:/nix/store/av4z4031zmss39xbzzfgkxjj5m7i420y-libapparmor-2.12.0/lib:/nix/store/nfh0wdwg24cf5xk0pw7n8w7m4d57wjs1-linux-pam-1.3.0/lib:/nix/store/93ljbaqhsipwamcn1acrv94jm6rjpcnd-acl-2.2.52/lib:/nix/store/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27/lib

Вот ваша строка: /nix/store/1pfwvyjl6rh57hbcj9w7yb16wb5djjx3-systemd-238/lib/systemd:/nix/store/hs26ajisl0xgb9ihvakmff7i0kjgzb7i-libseccomp-2.3.3-lib/lib:/nix/store/qd072spxcp4dqqjzwdybj59nna2adjmi-util-linux-2.32/lib:/nix/store/nazwqg290a3i5jrvwg8cqvqnh8n8pinf-audit-2.8.3/lib:/nix/store/9y8vpz8kdv463lz7qimapqiak4wh9vnk-kmod-25/lib:/nix/store/av4z4031zmss39xbzzfgkxjj5m7i420y-libapparmor-2.12.0/lib:/nix/store/nfh0wdwg24cf5xk0pw7n8w7m4d57wjs1-linux-pam-1.3.0/lib:/nix/store/93ljbaqhsipwamcn1acrv94jm6rjpcnd-acl-2.2.52/lib:/nix/store/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27/lib

Где здесь конец? Даже в этом простом случае "/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27/lib" где конец? Если вы думаете про "первый слэш", подумайте еще: не все "пакеты" являются директориями, некоторые - простые файлы типа "/nix/store/830rbvbmxrgv7iz49mgd42yvhi473xp6-nginx.conf".

Короче, если ставить хэш "в конце", его просто не найти.
Если же хэш "в начале" (сразу после /nix/store), то всё значительно упрощается: нашли /nix/store, отсчитали n байт. Всё.

Напоследок, вот как работает Никс:

Вход:

```
#!${pkgs.bash}/bin/bash

${pkgs.coreutils}/bin/date -d now +%s
```


Выход:

```
#!/nix/store/8zkg9ac4s4alzyf4a8kfrig1j73z66dw-bash-4.4-p23/bin/bash

/nix/store/afd7zfah20ki5qxzic3z8sizgkmcjwnh-coreutils-8.27/bin/date -d now +%s
```

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

44. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Аноним (19), 08-Окт-18, 11:25 
И, кстати, /nix/store - важный маркер ;) Или /guix/store. Но не /usr ;) То есть "пакеты" не должны быть установлены в стандартные места вроде /srv, /opt.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

48. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 08-Окт-18, 13:34 
> И, кстати, /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#...

, в т.ч. в ~user/.

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

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

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

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

58. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Andrey Mitrofanov (?), 09-Окт-18, 10:52 
> Не знаю, как Nix(*), а Guix позволяет оно двигать
> , в т.ч. в ~user/.
> И даже, говорят (сам-то я только на слайдах видел), когда-то можно было
> демона без рута в своём $HOME пускать.  Сборка всего из

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

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

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

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

46. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Andrey Mitrofanov (?), 08-Окт-18, 12:18 
> Господа, давайте закроем тему, почему хэш перед именем, а не после, навсегда.
> Короче, если ставить хэш "в конце", его просто не найти.
> Если же хэш "в начале" (сразу после /nix/store), то всё значительно упрощается:
> нашли /nix/store, отсчитали n байт. Всё.

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

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

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

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

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

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

"" 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. ""
--http://nixos.org/~eelco/pubs/iscsd-scm11-final.pdf

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

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

56. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  –1 +/
Сообщение от Акакжев (?), 09-Окт-18, 07:39 
> с технической т.з. разницы _нет_

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

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

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

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

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

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

55. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +/
Сообщение от Аноним (55), 09-Окт-18, 07:33 
Хэш вначале ещё с точке зрения безопасности более оправдан. Некоторые ФС и архиваторы имеют ограничения на размер имени директории, что может теоретически использоваться для атак с использованием  имён "очень_большое_имя-хэш", в которых хэш будет сдвинут за границу лимита, или подсовыванием спецсимволов в имя (типа "имя-фиктивный_хэш\0реальный_хэш").
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

57. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."  +1 +/
Сообщение от Акакжев (?), 09-Окт-18, 07:43 
There are only 10 types of people in the world: those who understand binary, and those who don't.
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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