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)

в NixOS вся настройка системы происходит посредством единого файла системной конфигурации

была б эта конфигурация на питоне, цены бы ему не было

FishHook
()

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

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

Ну, как сказать. Крутил я GuixOS, то ж самое, только на Лиспе. Да, гораздо понятнее. Но не сказать чтоб просто.

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

Шо вы такое странное говорите? Рестарт демона делается командой herd и не надо переконфигурировать всю систему. И на кой вам десятки систем? У меня две генты, дома и на работе, так я затрудняюсь сказать, чем они отличаются. Всё никак не могу синхронизировать, от чего некие странности наблюдаю. А уж хотя бы десяток поддерживать… Да лучше повеситься!

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

Так понимаю, у вас все файлы и папки на диске имеют красивые, приятные глазу имена?

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

Никого больше не раздражают каталоги с именами вроде /1onlv5pc3ed6n5nskg8ew4twcfd0d5ae4ec5d ?

Очень раздражают, даже приходится ходить к психотерапевту!

theNamelessOne ★★★★★
()

Кто это юзает, подскажите, какие там сейчас есть костыли, чтобы запускать произвольные бинарники под стандартное линукс-окружение. Чтобы, условно говоря, я мог запустить условный ./pussy_exe и он бы нашёл все необходимые динамические библиотеки?

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

но переконфигурация всей системы с созданием точки восстановления ради рестарта любого демона

Зачем ты переконфигурировал всю систему? Демон рестартуется через systemctl.

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

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

steam-run

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

Не лучше. Префикс имеет одинаковую длину для всех пакетов. Можно просто взять первые 43 символа пути файла, отрезать первые 11 (/nix/store/) и получить хеш.

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

Префикс имеет одинаковую длину для всех пакетов

Лучше, чтобы таких суффиксов и префиксов не было вообще. Зачем вообще этот хэш в названиях, по другому никак?

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

Зачем вообще этот хэш в названиях

Потому что в /nix/store может лежать несколько сборок одного пакета одной версии.

по другому никак

А зачем?

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

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

(лучше не запускать)

Я разок успешно пользовался nix-alien. Довольно экзотичная задача, мне кажется.

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

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

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

была б эта конфигурация на питоне, цены бы ему не было

Это сделано для того, чтобы не быть завязанным на каком-то ЯП

serg002 ★★★
() автор топика

На сайт distrowatch.com есть список популярных дистрибутивов Linux. Упомянут там и NixOS. Пишу сие с дистрибутива Ubuntu.

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

Ага. Даже Nix лучше пистона.

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

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

Зачем вообще этот хэш в названиях, по другому никак?

Ну, кроме того, что вам написали, по этому хэшу опознаются бинарные сборки на сервере. То бишь, при обновлении пакета он не компилируется, а, если есть бинарник, то он и тянется. По факту, как мне показалось, ничего крупного на этом не сэкономишь, тот же libreoffice таки каждый раз.

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

Как считали там популярность?

The DistroWatch Page Hit Ranking statistics have attracted plenty of attention and feedback over the years. Originally, each distribution-specific page was pure HTML with a third-party counter at the bottom to monitor interest of visitors. In May 2004 the site switched from publicly viewable third-party counters to internal counters. This was prompted by a continuous abuse of the counters by a handful of undisciplined individuals who had confused DistroWatch with a poll station. The counters are no longer displayed on the individual distributions pages, but all visits are logged. Only one hit per IP address per day is counted.

The DistroWatch Page Hit Ranking statistics are a light-hearted way of measuring interest in Linux distributions and other free operating systems among the visitors of this website. They correlate neither to usage nor to quality and should not be used to measure the market share of distributions. They simply show the number of times a distribution page on DistroWatch was accessed each day, nothing more.

The tables below display the average number of page hits for each distribution over a given period of time. To see information on page hit trends over a set period of time, please see our Page Hit Ranking Trends page. To see how our readers rank distributions based on visitor-submitted ratings, please see our Ranking page.

The figures in the third column of each table represent the average number of hits per day (HPD) for the specified period. The tables are updated daily at around 30 minutes past midnight GMT.

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

Не лучше. Префикс имеет одинаковую длину для всех пакетов. Можно просто взять первые 43 символа пути файла, отрезать первые 11 (/nix/store/) и получить хеш.

Попробуйте взглянуть на это чуть шире: разве что-то мешает сразу взять последние 38 символов? Длина хеша же не меняется.

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

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

/nix/store/firefox-131.3.5-487g39kj4bh8935wb5303gb93j9g0fwher0dr1
/nix/store/firefox-133.0.0-1onlv5pc3ed6n5nskg8ew4twcfd0d5ae4ec5d4

гораздо удобнее чем

/nix/store/1onlv5pc3ed6n5nskg8ew4twcfd0d5ae4ec5d4-firefox-133.0.0
...
/nix/store/487g39kj4bh8935wb5303gb93j9g0fwher0dr1-firefox-131.3.5

чтобы это понять не нужно быть UX/UI дизайнером.

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

Попробуйте взглянуть на это чуть шире: разве что-то мешает сразу взять последние 38 символов? Длина хеша же не меняется.

Ага. Чуть сложнее код писать.

Но эти все твои аргументы в принципе не важны, потому что никто в /nix/store не смотрит никогда. Юзеру на названия файлов там должно быть наплевать. Это просто незначительная деталь реализации.

Алсо, мне шелл автодополнение делает по /nix/store/-firefox<TAB>, поэтому просто посрать.

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

Я в курсе.

Вот и прекрасно, что Вы знаете. А я-то хотел Вас просветить. Я только что прочитал перевод этого текста в google-переводчике.

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

Но эти все твои аргументы в принципе не важны

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

Это просто незначительная деталь реализации.

Линукс это сборник незначительных деталей реализации :)

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

Вообще лучше с подкаталогами, типа:

/nix/store/firefox/131.3.5/487g39kj4bh8935wb5303gb93j9g0fwher0dr1

тогда входя в store не придется видеть эту бесконечную портяну с хэшами

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

Я с вами полностью согласен, просто решил начать с малого и, как видите, уперся в непонимание.

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

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

James_Holden ★★★★
()

Никс это прекрасная, чудесная ось. Лучшее, что было с линуксом в последнее время. Потому что все пламенные фанбои by-the-way-I-m-using-arch наконец-то нашли себе новую игрушку и сконцентрировались на ней.

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

С одной стороны - этот ЯП нигде больше не применить. С другой - оно работает. Кому нужна декларативное описание конфигураций - тот будет применять

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

/nix/store/firefox/131.3.5/487g39kj4bh8935wb5303gb93j9g0fwher0dr1

Осталось только придумать, что делать с штуками, не являющимися пакетами в традиционном смысле. Например, с исходниками и патчами для сборки, которые там точно так же хранятся:

$ ls /nix/store/*.patch|head
001gp43bjqzx60cg345n2slzg7131za8-nix-nss-open-files.patch
00r3wz6naq0nmrg7jnf2bgsppkf1ia6f-use-dynamic-system-antlr4-runtime.patch
03ny4qci1pj87frmsiz83y1lhhkr0d4r-CVE-2023-52425.patch
03sl46khd8gmjpsad7223m32ma965vy9-fix-static.patch
03vkvvis4kzpab736wak9960cxbidgvz-0001-Start-device-units-for-uninitialised-encrypted-devic.patch
046vri33dmh9z8sl1l77mbyh2rc9wjis-paths-for-split-outputs.patch
04mv0qdi08gq7z1nnr9pi5sx6dk2hjrn-force-uid0-on-9p.patch
04x645nbjx6y8amb417pi84q7hwc25y4-fix-paths.patch
05pg9vk9bgv2fn6vvnvjv06d5jfxa7j8-0014-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
05w4wygzvfvbhhkm07rnapb8kz5m0zm9-remove-hatch-plugins.patch
hateyoufeel ★★★★★
()
Ответ на: комментарий от Obezyan

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

Мешает отсутствие необходимости это делать. /nix/store не является аналогом C:\Program Files из венды, это вообще крайне некорректное сравнение, хотя многие уверены в обратном. /nix/store является хранилищем, откуда Nix при запуске системы дёргает нужные куски чтобы создать тебе рабочую систему в /run/current-system. Поэтому то, как называются файлы в /nix/store, вообще не играет никакой роли.

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

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

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

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

чо? Ты правильность архитектуры определяешь по тому, нравятся ли тебе названия папочек?

hateyoufeel ★★★★★
()

в пакетном менеджере GNU Guix, который основан на наработках Nix

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

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

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

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

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

Здравый смысл измеряется непонятно в каких единицах

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

у текущего положения вещей есть вполне измеримые преимущества (простота парсинга…

Так с суффиком парсить хеш еще проще чем с префиксом. Если вы парсите по имени, то одинаково что спереди откусывать что сзади, а вот если вы парсите полные пути то вам сначала придется выкусить имя, а потом откусить спереди. В случае же суффикса можно пропустить парсинг имени и сразу кусать полный путь сзади (встретимся на середине! (с) котенок Гав).

На куче пакетов это будет работать шустрее. При этом кода меньше, отображение человекочитабельнее, проще сортировка и тд. Вот из таких мелочей и состоит хорошая архитектура приложения.

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

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

Он разбивается на модули, при желании

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

была б эта конфигурация на питоне

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

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

Никого больше не раздражают каталоги с именами вроде /1onlv5pc3ed6n5nskg8ew4twcfd0d5ae4ec5d ?

Это внутрянка, её все равно никогда не видно + это вынужденная мера для решения сразу ряда задач (установка нескольких версий, легкий откат системы, etc.)

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