LINUX.ORG.RU

NixOS 19.03

 ,


3

4

Увидел свет новый релиз дистрибутива NixOS. Особенностями NixOS являются «функционально чистый» пакетный менеджер Nix, а также собственная система единой конфигурации.

Некоторые изменения:

  • Интерпретатором Python 3 по умолчанию теперь является CPython 3.7;
  • добавлено окружения рабочего стола Pantheon, развиваемое разработчиками elementary OS;
  • модуль Kubernetes подвергся масштабному рефакторингу;
  • добавлено 35 новых модулей;
  • прекращена поддержка nodejs версии 6;
  • Wayland-композитор Sway обновлён до версии 1.0;
  • оболочка fish обновлена до версии 3.0.

Готовые установочные образы предоставляются в варианте с десктопным окружением KDE Plasma 5 и в облегчённом консольном варианте (без предустановленного окружения рабочего стола). Также доступны образы для VirtualBox, Amazon EC2 и Microsoft Azure.

>>> Подробности

Ответ на: комментарий от monk

закат солнца вручную. можно запилить себе свои отчёты поверх.

не, что-то в отчётах было про аналитику. надо смотреть в расширения и сами отчёты.

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

Вот в этом и проблема. Берешь неизвестный софт, а тебе сразу на уши высыпают 100500 параметров

Так и напиши: «понятия не имею, о чем разглагольствую, но осуждаю».

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

Писал я и километровые конфиги, и императивные скрипты – в nix всё довольно легко впихивается.

Вопрос в том, зачем изучать еще и nix-овый DSL, если всё равно впихивать скрипты.

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

Часто есть условный firefoxWithPlugins, который зависит от плагинов и от файрфокса без плагинов.

Костыли. На этом еще zero-install споткнулась, а так хорошо всё начиналось.

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

Затем, что другого языка с нужными свойствами че-то нифига нет.

И это, изучать nix-овый DSL приходится вместо всего зоопарка чтовочтогораздия в /etc и ~/.config, а это уже вин.

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

Ну так сделай лучше. Я вот не вижу как.

Я пытался придумать соответствующий дизайн, есть разные подходы.

Нужно дерево environment-ов. Вот как сейчас пользователь выбирает, какие бинарники каких пакетов хочет видеть в PATH, такая же тема должна быть реализована рекурсивно.

«В моём рабочем окружении есть firefox, а в его окружении есть такие-то плагины.»

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

«В моём рабочем окружении есть firefox, а в его окружении есть такие-то плагины.»

Чтобы у тебя в одном шелле/юзере/профиле/whatever был firefox с одними плагинами, а в другом — с другими, нужна возможность прописать зависимость от файрфокса с конкретным набором плагинов. Без этого никак, так что почему бы не сделать это явным?

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

Чтобы у тебя в одном шелле/юзере/профиле/whatever был firefox с одними плагинами, а в другом — с другими, нужна возможность прописать зависимость от файрфокса с конкретным набором плагинов. Без этого никак, так что почему бы не сделать это явным?

Правильно, вот потому что речь идёт о ПРОФИЛЯХ, а решается ПАКЕТАМИ, я и назвал это костылём.

Когда ты запускаешь nix-env -i blabla, то создаешь новый user environment, а не пакет.

Но ведь по отношению к firefox его плагины - точно такой же environment, как и бинарники в PATH по отношению к sh (или любой гуёвой пускалке). Никакой разницы.

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

Мышь вообще страшная штука, она плечевой сустав медленно убивает.

Кстати, для тех редких случаев, когда она всё-таки нужна, рекомендую заменить её на трекбол. Плюсы трекбола по сравнению с мышью: (1) не требует дополнительного места на столе и (2) не убивает плечевой сустав.

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

Если бы был простенький скриптовой язычок вроде «сейчас берём 15,5 секунд из первого видео, начиная с 3:27, на пятой секунде сюда вставляем изображение из myphoto.jpg, потом таким-то эффектом стыкуем с фрагментом из второго видео, начиная с 0:12 длиной 47,5 секунд» — ну ты понял — по-моему проблем бы не было вообще. Вот только, кажется, такого как раз и нет.

посмотри на пример. это написано на eev, статья quick intro

ещё один заход на тему Emacs org-mode babel, ну или C-c C-c в «блоках кода» для интерпретации.

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

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

осталось как-то прикрутить такой скриптованный нелинейный видеомонтаж. что-то вроде композитора отдельных дорожек, который будет сводить вместе, в новый файл.

то есть, описывать последовательность редактирования в виде таких вот e-scripts.

e-scripts — это такие скрипты на Elisp, которые можно непосредственно исполнять сразу в Emacs+eev, кликая по гиперссылкам.

здесь более предназначено для скриптования всяких экспериментирований в шелле, через e-scripts.

гиперссылки могут быть разные: на контент, на скрипт, на какое-то место в контенте.

например, на аудио или видео eev это просто запускалка (чего угодно, воспроизводимо через Emacs).

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

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

гипертекст гипертекстов тоже гипертекст, гипертекст высшего порядка := потому же, почему монада монад есть монада (объект объектов в ООП есть новый объект), монада-трансформер есть монада (интерфейс/паттерн объектов есть объект).

здесь отлично ложится какое-нибудь FRP функционально-реактивное или аналоги.

также как и «операция пробел» :))) транзитивное замыкание алгебры это новая алгебра, тоже моноид.

почему гипер именно текст? а не любые другие структуры, гиперструктуры? гиперкод, гиперструктуры, гиперобъекты и операции их редактирования типа «структурного редактора» функциональных структур данных

с прозрачной гиперссылочной целостностью.

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

“eev is a library that adds support for e-scripts to Emacs” --- and e-scripts are files that contain chunks meant to be processed by eev's functions. Almost any file can contain parts “meant for eev”

векторный гипертекстовый фидонетъ — теперь и исполняемый в фидоЕмакс-браузере !!! 111

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

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

Теодор Холм Нельсон, который в Xanadu этот ваш гипертекст выдумал, примерно такое и озвучивал: «параллельные вселенные гиперпространств, которые пользователь может сам организовать как хочет, редактировать их структуру, и вместо монолитных приложений applications с бинарными блоб-форматами делать микросервисные applitudes с гиперструктурами, которые программировать под конкретную предметную область». например, многомерная база данных ZigZag, zzStructure. в которой есть zzCell — и так и напрашивается какой-то zzConsCell и лисп поверх него.

вот он действительно мыслил, «с другой планеты». универсально под все юзкейсы: у него гипертекст это и тексты, и видео с нелинейным монтажём и дорожками, и 3D-анимация с кейфреймами, и даже CALS и PDM это тоже гипертекст.

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

потом в 80-х появляется Дональд Кнут с "литературным грамотным программированием" (в смысле, literate/illiterate а не про заек).

и озвучивает похожую идею, про «параллельные дорожки» потоков сознания, «документации» для weave через LaTeX и исподников через tangle и чего угодно. пишет свой особенный язык WEB (сложный), который по сути метаязык для программы (типа M4 макросни). потом пишет свою систему контроля версий на WEB changesets.

потом сложно добавляет 30-40 команд для форматирования pretty printer исходников.

в итоге опять, мало кто понимает чего именно он там изобрёл. потому что пользоваться непрактично сеть и поехать, нужно чего-то там под капотом подкрутить для начала.

потом появляется noweb, который всё упрощает. потом org-mode, markdown и прочее, где команд этого метаязыка совсем мало. можно вставлять чанки или исполнять чанки. можно собирать чанки в нужном порядке.

затем напрашивается сделать гибкую систему метаданных для этого метаязыка. в org-mode есть зачатки, по сути «блоки кода» это функции с переменными на метаязыке, «блоки данных» это очередные данные/метаданные.

в org-mode появляется несколько типов ссылок, произвольных, настраиваемых.

потом в eev скриптуют что угодно через e-scripts.

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

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

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

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

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

также как и «операция пробел» :))) транзитивное замыкание алгебры это новая алгебра, тоже моноид.

в Io и ooc кстати, так и есть: «операция пробел», риальне.

означает цепочечный вызов метода объекта. если в языке все first class objects, то получается такое исчисление объектов. если прикрутить парсер типа Meta II или OMeta который выдаёт объекты, и макросы с гигиеной и паттерн матчингом, (получатся D-выражения в Dylan или goo и объекты оттуда, или вот похожая идея про макросы в PLOT от David A. Moon).

то получится такой вот лисп как монад трансформер, уже каких-то объектов (тоже монад).

литературных гипертекстов.

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

Ну так значит что можно так сделать, nomathere меня куда то не туда завел!

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

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

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

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

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

Окружение очень близко к пакету в терминах nix. Можно на propogatedBuildInputs и hooks реализовать окружения. (Возможно, они так и реализованы, я в магию nix-env ещё не залезал)

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

Вот чего бы не сделать нормальный роллинг?

Есть unstable ветка.

А то раз в N месяцев у них апокалипсис, а N/2 месяцев безнадёжно устаревший софт.

В релизах софт тоже обновляется.

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

Ахаха, где N=1.5?

У NixOS релиз раз в 1.5 месяца? Судя по тому, что на сайте их написано, так раз в пол-года.

Вот в этом 19.03 релизе, каких версий Qt, QtCreator, mesa, llvm, gcc, wine, blender, cmake?

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

Слово фигурирует где не попадя, хоть в первой строке мануала от Nix. А термина нет. Ближе всего к нему будут деривации, в диссере частит «software component».

Позиция автора вроде такова, что «слово есть, а жопы нет».

https://nixos.org/~eelco/talks/guix-feb-2018.pdf (slide 7)

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

В релизах софт тоже обновляется

Знаем мы эти «обновляется» – хромонога раз в 2 недели зальют и взятки гладки. Менять минорные (не просто патч-фикс) версии qt, mesa, linux, llvm они не торопятся – если бы торопились, давно были бы роллинг.

Wayland-композитор Sway обновлён до версии 1.0

Опять же. У него же заморозка фич случилась в феврале ещё. Проходит 2 с лишним месяца – и ребята разродились.

Мне всё же кажется, что NixOS мне не особо подойдёт – сидеть у обочины прогресса не моё.

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

У NixOS релиз раз в 1.5 месяца? Судя по тому, что на сайте их написано, так раз в пол-года.

У NixOS заморозка длится менее полутора месяцев. Фриз сабжа был 25 февраля.

Вот в этом 19.03 релизе, каких версий Qt, QtCreator, mesa, llvm, gcc, wine, blender, cmake?

5.12, 4.6.2, 18.3.4, 5.0.2 (по дефолту, опакечено до 7.0.1), 7.4 (по дефолту, опакечено до 8.3), 4.0 (по дефолту, опакечено до 4.2), 2.79b, и, почему-то, 3.13.

Плюс в этом дистре можно кастовать софт из unstable, и ничего не ломать.

Итак, что именно тут «безнадежно устарело»?

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

Опять же. У него же заморозка фич случилась в феврале ещё. Проходит 2 с лишним месяца – и ребята разродились.

Ну ты и троллюга. Пакет sway-beta был в NixOS еще до релиза sway 1.0 (добавлен еще в октябре!), а назывался так потому что Drew прямым текстом запрещал релизить пререлизы без приписки beta.

Но ты же абсолютно не в теме, тебе просто в лужу пернуть.

t184256 ★★★★★ ()
Последнее исправление: t184256 (всего исправлений: 2)