LINUX.ORG.RU

Выпуск дистрибутива NixOS 24.11

 

Выпуск дистрибутива NixOS 24.11

0

2

Увидел свет дистрибутив NixOS 24.11, основанный на пакетном менеджере Nix и предоставляющий ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS вся настройка системы происходит посредством единого файла системной конфигурации (configuration.nix), предоставляется возможность быстрого отката системы на предыдущую версию конфигурации, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями, есть возможность одновременного использования нескольких версий одной программы, обеспечены воспроизводимые сборки. Для архитектур x86_64 и ARM64 подготовлены установочные образы с KDE (3.2 ГБ) и GNOME (2.5 ГБ), а также сокращённый консольный вариант (1.1 ГБ).

При использовании Nix результат сборки пакетов хранится в отдельном подкаталоге в /nix/store. Например, после сборки пакет firefox может записываться в /nix/store/1onlv5pc3ed6n5nskg8ew4twcfd0d5ae4ec5d4-firefox-133.0.0/, где «1onlv5pc3ed6n5nskg8ew4twcfd0d5ae4ec5d4» является хешем всех его зависимостей и инструкций сборки. Под установкой пакета подразумевается его сборка или скачивание уже собранного (при условии, что он был уже собран на Hydra - сервисе сборки проекта NixOS), а также формирование директории с символическими ссылками на все пакеты в профиле системы или пользователя, с последующим добавлении этой директории в список PATH. Аналогичный подход применяется в пакетном менеджере GNU Guix, который основан на наработках Nix. Коллекция пакетов представлена в специальном репозитории Nixpkgs.

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

  • Добавлен 8141 пакет*, удалено 3970 пакетов, обновлено 20975 пакетов. Добавлено 119 новых модулей, удалено 30 модулей. В разработке и сопровождении пакетов приняли участие 2669 разработчиков, подготовивших 49079 изменений.
  • Предложены выпуски пользовательских окружений KDE Plasma 6.2 и GNOME 47. В состав включён композитный сервер Niri, использующий Wayland.
  • Добавлено 63 новых сервиса, среди которых Cyrus IMAP, Collabora Online, Music Assistant, Suricata, Apache Tika, OpenGFW, saunafs, obs-studio, Zapret, Glances, cryptpad, Pingvin Share, wg-access-server.
  • В большинстве графических сеансов по умолчанию вместо PulseAudio задействован мультимедийный сервер PipeWire.
  • Обновлены версии программ, например, LLVM 19, PostgreSQL 16, grafana 11.3, knot dns 3.4, qBittorrent 5, драйвер NVIDIA 560, FFmpeg 7.1, openssl 3.3, Docker 27, Xen 4.19.
  • Пакетный менеджер Nix обновлён до версии 2.24, в которой улучшено извлечение кода из Git-репозиториев и добавлена поддержка документирующих комментариев.
  • Добавлена поддержка Vulkan-драйвера для GPU AMD (hardware.amdgpu.amdvlk)
  • В клиент для стриминга игр Moonlight добавлена возможность использования HDR в Linux.
  • Добавлен сервис services.scx для использования планировщиков задач на базе подсистемы ядра sched_ext.
  • Добавлена поддержка монтирования файловых систем с блочных устройств, для которых используется контроль целостности данных на базе модуля dm-verity.
  • Добавлена опция virtualisation.xen для виртуализации с использованием гипервизора Xen.
  • В репозитории Nixpkgs значительно улучшена поддержка платформы macOS. Сборочное окружение переработано для поддержки родного инструментария Xcode, упрощения сборочных правил, использования штатных SDK из различных версий macOS (от macOS 10.12 до macOS 15) и избавления от лишних патчей при сборке приложений. Выпуск Nixpkgs 24.11 будет последним с поддержкой ветки macOS 10.x, начиная со следующей версии в качестве минимальной будет заявлена ветка macOS 11.

>>> Оригинал новости на opennet.ru

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

★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 8)
Ответ на: комментарий от Obezyan

Он либо есть либо его нет, измерения тут не помогут

Ну, то есть, это какая-то абстрактная херня, которую ты выдумал и всех ей тыкаешь.

Так с суффиком парсить хеш еще проще чем с префиксом.

Чо? Взять из полного пути 32 символа начиная с 12-го. Куда проще-то?

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

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

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

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

Ну что такого в языке nix волшебного кроме тупо иммутабельных словариков?

Насильная неполнота по Тьюрингу. Бесконечная рекурсия запрещена. Твоя конфигурация гарантированно соберётся либо вывалится с ошибкой. В итоге, один и тот же код на Nix всегда выдаёт один и тот же результат. Никакого сраного рандома, полная воспроизводимость.

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

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

И не упакованных в nixpkgs, видимо. Много у вас таких?

В любом случае — nix-ld и nix-alien запустят и даже нужные зависимости найдут. Трудности, говорят, есть с dlopen, но я не сталкивался.

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

readFile /proc/sys/kernel/random/uuid

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

Тем не менее, пистон не обладает свойствами, которые я перечислил. Его можно урезать, сделав кастомный интерпретатор пистона, но толку от пистона в этом случае не будет никакого.

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

Чо? Взять из полного пути 32 символа начиная с 12-го. Куда проще-то?

А потом этот путь решат сделать конфигурируемым ведь это красноглазие еще будет менять свою структуру пару раз и… не смогут. Потому что «начиная с 12-го» символа.

Ну, то есть, это какая-то абстрактная херня, которую ты выдумал и всех ей тыкаешь.

Не всех, только вас. Вы сейчас спорите лишь бы спорить, а мне уже лень если честно.

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

А потом этот путь решат сделать конфигурируемым

За 20 с гаком лет существования Nix почему-то никто до этого ещё не додумался.

ведь это красноглазие еще будет менять свою структуру пару раз и… не смогут. Потому что «начиная с 12-го» символа.

Окей, вместо 12 символа можешь взять длину конфигурируемого префикса. Тоже мне, проблему нашёл.

Вы сейчас спорите лишь бы спорить, а мне уже лень если честно.

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

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

Ей богу, выдумал какую-то странную хотелку, которая никому не была нужна,

Если программист не понимает архитектуру приложений то кто я такой чтобы пытаться объяснить ее своими корявыми примерами.

и ноешь, что так никто не сделал.

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

Но это ЛОР, тут же нашелся фанатичный последователь этого красноглазия активно утверждающий что это «незначительная деталь реализации». Да, это мелкий архитектурный косяк, я согласен. Но это косяк, как бы вас там не корежило от этого. Засим откланяюсь.

Obezyan
()

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

Основная причина - этот дистрибутив категорически не подходит для Research and Development целей, например разработка на java плагина для freeplane с использованием protobuf превратилось в не очень увлекательное трехдневное приключение с использованием elfpatch.

Вторая причина почему я не хочу использовать этот дистрибутив, это «изучение» и «освоение» nix expression. Уж лучше guix + schema, чем это.

Кстати, контора которая продает решение на nix за деньги, так же разрабатывает более приятный ЯП nickel https://github.com/tweag/nickel.

P.S.на ванильной убенте я использую nix чтобы по быстренькому накатывать софт которого нет в apt репозиториях

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

Если программист не понимает архитектуру приложений то кто я такой чтобы пытаться объяснить ее своими корявыми примерами.

Это ты о себе? Потому что это ты явно не понимаешь, как работает Nix.

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

Нет там антипаттерна.

К слову, путь этот реально конфигурируется как на этапе сборки (./configure --with-store-dir=/path), так и в рантайме. Проблемы вообще нет.

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

А потом этот путь решат сделать конфигурируемым

За 20 с гаком лет существования Nix почему-то никто до этого ещё не додумался.

в nix.conf пишешь store = /newstore и сконфигурировал

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

в nix.conf пишешь store = /newstore и сконфигурировал

Сорян, ни разу этого не делал. Но уже нашёл в исходниках :3

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

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

Основная причина - этот дистрибутив категорически не подходит для Research and Development целей, например разработка на java плагина для freeplane с использованием protobuf превратилось в не очень увлекательное трехдневное приключение с использованием elfpatch.

Зачем patchelf? В java нет нормального менеджера пакетов и системы сборки? Вроде был же maven или gradle или что там.

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

в момент сборки, maven тянул protobuf зависимость, которая использовала бинарник protoc для генерации кода, бинарник protoc не находил нужного .so файла.

это происходило во время сборки «на лету» и первую половину я потратил на то, почему build процесс завершается ошибкой no such file or directory.

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

в момент сборки, maven тянул protobuf зависимость, которая использовала бинарник protoc для генерации кода, бинарник protoc не находил нужного .so файла.

Система сборки не должна качать случайные бинари из интернета, не важно NixOS или нет.

Бинарик собранный под Ubuntu вполне может не запуститься на каком-нибудь CentOS или наоборот, ведь у них у всех разные наборы .so файлов по разным путям. Так что это косяк или системы сборки, или того кто писал зависимости для проекта.

К тому же protoc (protobuf) банально есть в репозиториях NixOS.

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

Ваши теоретические рассуждения, как и других nix’оведов которым я рассказывал эту историю, конечно хороши.

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

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

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

P.S. стрелочку можно сделать через обратный слэш: >>> ….

Можно, кстати, только в самом начале обратный слеш ставить: \>>>, не обязательно перед каждым символом. Обычное >> не в начале строки ни во что специальное уже не рендерится, так что достаточно экранирования первого.

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

Насильная неполнота по Тьюрингу. Бесконечная рекурсия запрещена. Твоя конфигурация гарантированно соберётся либо вывалится с ошибкой. В итоге, один и тот же код на Nix всегда выдаёт один и тот же результат. Никакого сраного рандома, полная воспроизводимость.

Тем не менее, пистон не обладает свойствами, которые я перечислил. Его можно урезать, сделав кастомный интерпретатор пистона, но толку от пистона в этом случае не будет никакого.

Запрещалку и урезалку можно применить к любому языку на уровне требований к стилю программирования.

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

Guix использует Guile Scheme, который ни разу не чисто функциональный, но есть требование писать в таком стиле:

https://guix.gnu.org/manual/en/html_node/Programming-Paradigm.html

Так что реализовать аналог nix/guix на python, js, lua и тому подобном вполне возможно - было бы желание.

А у разработчиков nix было желание изобрести свой велосипед.

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

А стоило это сделать до того как постить отсылки к этой бесполезной статистике.

andalevor ★★★
()

Пользовал несколько лет. Вначале энтузиазм, интересно. Через пару лет надо было что-то переконфигурировать сильно, залез в конфигурацию и понял, что надо заново изучать. В итоге перелез на арч. И то, только потому, что он роллинг. А так, дебиан - наше фсё.

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

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

И не упакованных в nixpkgs, видимо. Много у вас таких?

Это да, многое есть, репы богатые. Но есть и такое, чего нет, или какие-то конкретные версии, отличные от тех, что в репе. И вот тут ступор, особенно с непривычки. Возможно, там всё очень логично и красиво решается, но тратить кучу времени на изучение всей этой системы пока нет желания. Концептуально система мне очень понравилась, но «сел и поехал» не получилось, особенно с моими специфическими требованиями.

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

Чего только не называют люди здравым смыслом!

И да, объяснять чего-то такому человеку — и правда, напрасная трата времени.

fat-II
()
Ответ на: комментарий от gagarin0

на ванильной убенте я использую nix чтобы по быстренькому накатывать софт которого нет в apt репозиториях

Вот тут не понял. То есть, благородный дон ушёл с Nix из-за отвращения к языку Nix — и использует nix для установки пакетов. А для этого не надо разбираться с nix-выражениями?

И что это за такой за софт, для которого нет ни apt, ни rpm, ничего вообще кроме nix, стесняюсь спросить?

fat-II
()
Ответ на: комментарий от fat-II

Забавно, к каким выводам вы пришли и какие свойства приписали мне на основе моих постов. Расширяйте кругозор.

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

я лишь указываю на недостаток бросающийся в глаза системному архитектору

Брат, директория — это абстракция, чтобы дурить домохозяек и зумерков. В стор никто ни ногами, ни руками не ходит. Максимум по result линку. Вообще, самым правиильным методом было бы использовать теги. Но тут пипл концепцию базы данных осилить не может, куда там еще теги лепить сверху...

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от fat-II

zsh. Но вроде как все шеллы сложнее баша такое могут.

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

Guix использует Guile Scheme, который ни разу не чисто функциональный, но есть требование писать в таком стиле:

И это требование как-то насильно выполняется?

Так что реализовать аналог nix/guix на python, js, lua и тому подобном вполне возможно - было бы желание.

не спорю. Но выйдет гораздо более убого и всрато, и от питона/жс/луа останется по факту только синтаксис.

А у разработчиков nix было желание изобрести свой велосипед.

А минусы будут?

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

В разработке и сопровождении пакетов приняли участие 2669 разработчиков, подготовивших 49079 изменений.

Это много или мало? В генте больше или меньше? А в Debian-е?

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

На nm.debian.org поиск по людям говорит — 262 мейнтейнера.

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

akho
()
Последнее исправление: akho (всего исправлений: 1)

Пока что самая большая проблема NixOS это документация и язык nix. Точнее даже не сам язык (он довольно простой), а отладка ошибок (копаться в трейсах ошибок то еще развлечение).

Но даже такие серьезные проблемы окупаются возможностями системы. P.S. I use NixOS btw

linuxByVasyan
()

Интересно, а как часто он встречается в коммерческом использовании?

wonit
()

единого файла системной конфигурации (configuration.nix)

Это что-то типа реестра оффтопика? Пришли к тому, от чего уходили?

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

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

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

Я точно не помню, но скорее всего есть. Другое дело, что его все равно надо править. Когда я устанавливал, то система была «голая», только консоль.

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

@xwicked @wonit это рецепт для сборки операционной системы, он нужен только при установке или обновлении системы и даже не обязан находиться на целевом хосте. А вообще его принято хранить в git.

Gary ★★★★★
()

Чем оно лучше Debian, или OpenSUSE, или других более распространеных дистров?

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

это рецепт для сборки операционной системы, он нужен только при установке или обновлении системы

Напомните, как она обновляется, для этого обязательно каждый раз делать ребилд? Я помню меня это сильно смущало, так как это казалось неочевидным, одно дело sudo pacman -Syyu и наглядный список обновлений, но совсем другое ребилд и перезагрузка. Не видно, что там нового. Может я делал не правильно?

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

Напомните, как она обновляется, для этого обязательно каждый раз делать ребилд?

Да, NixOS в значительной степени неизменяемая поэтому процесса обновления в привычном смысле там нет. Каждый раз собирается новая система (части, которые не поменялись с прошлой сборки, переиспользуются). Перезагрузка не обязательна (разве что для того чтобы загрузиться в новое ядро).

Не видно, что там нового.

Есть всякие утилиты типа https://github.com/viperML/nh

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

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

И это требование как-то насильно выполняется?

Ну все отправляемые им патчи проверяются.

не спорю. Но выйдет гораздо более убого и всрато, и от питона/жс/луа останется по факту только синтаксис.

Так в этом и суть, что люди хотят знакомый синтаксис.

А всратость это дело вкуса - многим хочется глаза выколоть от вида gexp в guix, а я с них тащусь.

А минусы будут?

Язык, который всех раздражает, что даже по этому топику хорошо видно.

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

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

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

Ну все отправляемые им патчи проверяются.

А не отправляемые? А если у меня пачка внутреннего для компании кода для Nix?

Проверка глазами – это не проверка.

Так в этом и суть, что люди хотят знакомый синтаксис.

Какие люди? Для использующих Nix синтаксис Nix является вполне знакомым. Для программиста на JS синтаксис Lua знакомым не будет, как и для питонщика.

Плюс, ты учти, что на момент появления Nix в 2003 году JS был игрушкой, а Lua был довольно нишевой штукой.

Язык, который всех раздражает, что даже по этому топику хорошо видно.

В этом топике он раздражает только пару неосиляторов. Меня за 6 лет с Nix в нём раздражают другие вещи. С другой стороны, пистон меня раздражает ещё больше, а от JS я вообще шарахаюсь и стараюсь его не видеть.

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

что-то типа реестра оффтопика?

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

akho
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.