1.1, Аноним (1), 22:02, 06/10/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Хороший дистрибутив, но язык Nix всё портит.
Пришлось откатится обратно на Arch.
| |
|
|
3.3, Аноним (1), 23:10, 06/10/2018 [^] [^^] [^^^] [ответить]
| +9 +/– |
Во-первых не совсем понятная документация.
Что по дистрибутиву, что по языку Nix.
Многие вещи приходилось искать по чужим конфигурациям.
К примеру оверлеи. Штука классная, чтобы пересобирать пакеты.
Но об этом в доступном виде нигде не написано.
И в конфигах других пользователей частенько попадались другие варианты реализации оверлея.
Сборка софта на скриптовых языках тоже еще тот геморой.
Попытка собрать пакет Haraka (https://github.com/haraka/Haraka) успехом не увенчалась.
Может конечно руки не из того места, но в арче у меня проблем со сборкой пакетов не было.
Во-вторых сам язык.
Я без понятия, кто и чем там вдохновлялся, но язык Nix это нечто.
За целый год так в него и не въехал.
И чтение документации по этому языку ситуацию не улучшило.
И даже чтение тонны статей на других ресурсах.
В самом дистрибутиве очень много недоработок.
К примеру не хватает опций для пакетов, самих пакетов и т.д.
Я в целом мог бы этим занятся и дорабатывать это.
Но с таким языком мне не по пути с NixOS.
Но это у меня так было. У кого-то возможно нет таких проблем.
Но как по мне, за 10 (или сколько там) лет существования дистрибутива могли бы и по-лучше сделать.
Т.к. даже с чтением документации и многолетним опытом пользования линукса порог вхождения высоковат.
В остальном же считаю NixOS вполне неплохим дистрибутивом.
| |
|
|
5.17, Аноним (1), 10:30, 07/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
Не знаю. С Guix не работал.
Только бегло пару раз читал про него инфу.
| |
|
|
|
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, и ещё чего-то), ну, и объёмчик занимаемый впечатлил тоже:
$ du -sh /d/nix/store
6.7G /d/nix/store
$ ls /d/nix/store | wc -l
4949
Это приложение-то и от приложения хвостик?
Идея, повторюсь, правильная, и нечто похожее я когда-то "лепил на коленке", но здесь получается хорошей вещи слишком много. Или некачественны готовые изделия (то есть сетевые храны и сценарии в них).
| |
|
|
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/, значит за неё сразу хэш длиной столько-то, берём его.
А то, что вы предлагаете ("с конца") невозможно, потому что конца нет (мы шерстим произвольный бинарный файл).
| |
|
|
5.19, Аноним (19), 10:48, 07/10/2018 [^] [^^] [^^^] [ответить] | –1 +/– | Глупый анонимус, нет никакой проблемы вырезать хэш, если дан путь, но это задача... большой текст свёрнут, показать | |
|
|
|
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 +/– |
Нет не так.
Если тут:
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
Мне первый больше нравится, а вам? )
| |
|
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 +/– |
Да, и если установлено несколько версий одного пакета, то они окажутся рядышком. Если же версия одна, то в хеше нет необходимости.
| |
|
|
6.47, Акакжев (?), 13:32, 08/10/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Мне больше нравится "с точечками": https://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]!
> как | |
|
|
|
|
3.41, Акакжев (?), 08:26, 08/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
> ls /nix/store/
> все будет очень красиво отформатировано, и все названия пакетов(их реальные имена) будут
> иметь одинаковое смещении от начало строки.
Спасибо. Разумное объяснение. Однако, отсортированный вывод привычнее.
| |
|
|
1.9, Грусть (?), 09:11, 07/10/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Главное, не переоценивать Никс. Это прежде всего инструмент - мета-компилятор, который при фиксированном входе даёт фиксированный выход: файл, директорию, операционную систему. Результат не обязан всех устраивать или даже работать :) Фишка в том, что есть возможность так изменить входные данные, что выход будет вас устраивать, и вы всегда сможете его воспроизвести.
| |
|
2.20, Аноним (20), 11:19, 07/10/2018 [^] [^^] [^^^] [ответить]
| +/– |
> ))) Даешь пакетный менеджер на блокчеине!
И интерфейсе на электроне...
| |
|
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 -- только на картинках видел).
"" 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
> или поддиректорию в каталоге пользователя.
"Многопользовательские" пакеты просто попадают в разные директории - с разными хешами, например. И в профили попадают соотв-но разные симлинки~~.
> зависимостей. Пакеты оформляются в виде контейнеров, содержащих необходимые для работы
> приложений компоненты.
Вот слово "контейнер" здесь очень к месту. Как в "мусорный коньейнер". Или как "файлы изолируются в ФС в изолированные контейнеры -- директории".
| |
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
| |
|
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 пообсуждаем--]:
"" 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
Можно искать в источниках, можно г-на Дольстра при случае спросить, можно фантазировать (и меряться, кто выдумал Лучше!), факта это всё не меняет: с технической т.з. разницы _нет_ и [версия, что] выбор был сделан автором произвольно ничем не хуже прочих.
| |
|
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.
| |
|
|
|