The OpenNET Project / Index page

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

Выпуск дистрибутива NixOS 20.09, использующего пакетный менеджер Nix

28.10.2020 22:56

Представлен выпуск дистрибутива NixOS 20.09, основанного на пакетном менеджере Nix и предоставляющего ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS используется единый файл системной конфигурации (configuration.nix), предоставляется возможность быстрого отката обновлений, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится в домашний каталог), возможна одновременная установка нескольких версий одной программы, обеспечены воспроизводимые сборки. Размер полного установочного образа с KDE 1.2 ГБ, GNOME - 1.3 ГБ, сокращённого консольного варианта - 571 МБ.

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

  • Добавлено 7349 пакетов, удалён 8181 пакет, обновлено 14442 пакета. Обновлены версии компонентов дистрибутива, в том числе gcc 9.3.0, glibc 2.31, mesa 20.1.7, Python 3.8, PHP 7.4, MariaDB 10.4, Zabbix 5.0. Ядро Linux оставлено 5.4.
  • Рабочие столы обновлены до KDE 5.18.5 (+ KDE Applications 20.08.1) и GNOME 3.36. Добавлена поддержка композитного сервера Cage. Добавлено окружение Сinnamon 4.6. Началось формирование официальных сборок с GNOME.
  • Добавлен модуль для быстрого развёртывания сервера видеоконференция на базе Jitsi Meet.
  • Добавлен модуль c инструментарием для управления изолированными контейнерами Podman, который может использоваться для замены инструментария командной строки Docker.
  • Добавлена поддержка LCD-экранов, встроенных в клавиатуры и колонки Logitech.
  • В модуль GRUB добавлена поддержка защиты доступа к элементам загрузочного меню при помощи пароля.
  • Добавлен модуль для оптимальной настройки экранов с высокой плотностью пикелей (HiDPI).
  • Добавлена поддержка Trusted Platform Module 2 и токенов Yubikey.
  • Добавлена поддержка doas (альтернатива sudo).
  • Добавлена поддержка kubernetes-дистрибутива k3s.
  • Добавлен 61 новый сервис.

При использовании Nix пакеты устанавливаются в отдельное дерево директорий /nix/store или поддиректорию в каталоге пользователя. Например, пакет устанавливается как /nix/store/f2a4...8a153-firefox-82.0.0/, где "f2a4..." является уникальным идентификатором пакета, используемым для контроля зависимостей. Пакеты оформляются в виде контейнеров, содержащих необходимые для работы приложений компоненты. Аналогичный подход применяется в пакетном менеджере GNU Guix, который основан на наработках Nix.

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

  1. Главная ссылка к новости (https://discourse.nixos.org/t/...)
  2. OpenNews: Выпуск дистрибутива NixOS 20.03, использующего пакетный менеджер Nix
  3. OpenNews: Уязвимость в пакетном менеджере GNU Guix
  4. OpenNews: Доступен пакетный менеджер GNU Guix 1.1 и дистрибутив на его основе
  5. OpenNews: Доступен пакетный менеджер Nix 2.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53986-nixos
Ключевые слова: nixos, nix
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, JL2001 (ok), 23:05, 28/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот откуда openSUSE может взять chromium и так, чтоб опенсузевские мантейнеры не работали бесполезно и впустую
     
  • 1.2, Аноним (2), 23:17, 28/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Да мне и на guix'е нормально, ежжи.
     
     
  • 2.3, PHPoenX (ok), 01:46, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Почти тот же nixos, только пакетов меньше
     
     
  • 3.8, Аноним (8), 09:57, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И Shepherd вместо NotabugD.
     
  • 2.15, Аноним не забывает (?), 14:36, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Хорошо, что есть два дистрибутива и друг на друга положительно влияют.

    Лично мне в Guix не нравится его политизированность. Не только GNU. Основоположники Guix - лютые SJW, которые и в Guix активно борются с инакомыслием и свободой слова. Запрещают упоминать nonguix - репозиторий с несвободными пакетами, например. Я сам всей душой за свободное ПО и копилефт, но когда какие-то активисты начинают навязывать своё видение остальным, и устраивают Репрессии Ради Светлого Будущего... где-то я такое уже видел. А NixOS абсолютно вне политики и идеологии, над ним работают люди самых разных убеждений и прекрасно уживаются. Так приятно в наше дикое время.

     
     
  • 3.21, Ph0zzy (ok), 19:34, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а можно поподробнее про nonguix репозиторий? хочу попробоваться Guix, но боюсь, что может подвести поддержка железа, уж слишком libre он.
     
     
  • 4.22, Аноним (22), 19:38, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://gitlab.com/nonguix/nonguix
     
     
  • 5.23, Ph0zzy (ok), 20:45, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > https://gitlab.com/nonguix/nonguix

    wow! круто! это в корне меняет дело! можно пробовать. Using Nonfree Firmware and Drivers - особенно вот это понравилось.

     
     
  • 6.24, microsoft (?), 22:04, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ущербные вы.
     
  • 2.28, Аноним (28), 10:31, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Да мне и на guix'е нормально, ежжи.

    А можете порекомендовать какой-нибудь более чайникоориентированную инструкцию по установки этого дистрибутива?

     

  • 1.4, Аноним (4), 07:16, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто-нибудь его реально использовал? Для чего он вообще нужен? Какие есть проблемы?

    Подойдёт ли как замена Fedora 33 для рабочего компьютера?

     
     
  • 2.5, Минона (ok), 07:41, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    No.
     
  • 2.10, Аноним (8), 10:14, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для замены компьютера не подойдёт, а для замены ОС на нём, может быть.
     
     
  • 3.20, Аноним (20), 19:33, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так он и написал "для замены Fedora(ОС то есть)"
    Алкаш что ле?
     
  • 2.13, Домохозяйка анонима (?), 12:47, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    > Кто-нибудь его реально использовал?

    Перешёл на него с генты года три назад. Потом и серваки с дебиана перевёл. Очень удобно.

    > Для чего он вообще нужен?

    Состояние всей системы описывается в едином конфигурационном файле /etc/nixos/configuration.nix. На основе этого файла устанавливаются все необходимые пакеты, генерируются конфиги, создаются юзеры и т. д. Можно скопировать этот файл на другую машину, запустить nixos-rebuild и получить идентичную систему. Очень удобно, когда переезжаешь на новую рабочую машину или развёртываешь новый сервер. Конфигурационный файл получается на удивление небольшим. Можно положить его в git и фактически получить полный бэкап всей системы. Гораздо удобнее, чем Ansible, и гораздо надёжнее: Ansible работает через раз, потому что применяет изменения к существующей системы, находящейся в неизвестно, каком состоянии. NixOS, в отличие от Ansible, каждый раз пересобирает систему абсолютно с нуля. Поэтому результат не зависит от неизвестного начального состояния и всегда получается одним и тем же. "Абсолютно с нуля" звучит страшно, но на самом деле пересобирается только те части системы, которые изменились с прошлых раз, остальные используются повторно, и "полная пересборка" обычно занимает несколько секунд. Потом происходит атомарное переключение со старой системы на новую. Примерно как Silverblue, только намного продвинутее. NixOS, например, позволяет параллельно устанавливать любое количество версий любого пакета, и они не конфликтуют. Если хранить несколько состояний системы, одинаковые пакеты хранятся на диске только один раз.

    Далее, огромные плюс - это пакетный менеджер Nix, на котором основан сабж. Для разработчика это идеальный инструмент. Не нужно вручную устанавливать dev-пакеты и засирать ими систему - вместо этого для каждого проекта пишется файлик shell.nix, где декларативно описаны все зависимости. Потом запускаешь nix-shell и получаешь рабочее окружение, где доступны все зависимости. Опять же, разные проекты могут использовать разные версии одной библиотеки, и они не будут друг другу мешать. Можно для каждого проекта зафиксировать версию репозитория nixpkgs и получить абсолютно воспроизводимое окружение со строго фиксироанными версиями всех зависимостей. На работе стали юзать - очень удобно. Когда приходит новый сотрудник, ему не надо два дня объяснять, как запустить проект - он просто делает git clone, nix-shell - и получает полностью готовое рабочее окружение. До сих не верится, но это работает. Nix можно использовать независимо от NixOS, хоть на убунте, хоть на федоре - везде работает одинаково.

    > Какие есть проблемы?

    Главный минус - NixOS не использует FHS. Там никакого глобального /usr/lib нет, все пакеты живут в каталогах типа /nix/store/shs8kax43dk69fh94g5w4bc1ra3nv2j2-gcc-9.3.0. Поэтому всякая бинарная проприетарщина сходу не запустится. При желании запустить можно, но нужны дополнительные шаги. В остальном - даже не знаю, для меня одни плюсы. Это дистрибутив будущего, и он настолько крут, что многие даже не в состоянии осознать.

     
     
  • 3.18, Аноним (18), 17:48, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По поводу FHS, там есть прекрасная утилита buildFHSUserEnv. Правда зависимости надо в явном виде прописать, но лично мне было достаточно один раз прописать всякие стандартные библиотеки, чтобы с удобстом пользоваться. (может кому понадобится - https://pastebin.com/fk1cp5B1)
     
     
  • 4.19, Аноним (22), 17:56, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можно через steam-run запускать бинарники. Там как раз стандартный набор библиотек, достаточный для 99% совта.
     
  • 3.25, microsoft (?), 22:09, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, можноб еще было вменяемо работать с nix файлами как с ebuild то да, ценыб не было. А так супер запутаные файлы, с супер запутанным и неконсистентным синтаксисом. Да и каждый разраб пакета разную ахинею творит с пакетами как хочет. Мнда... а идея стстемы хорошая.
     
  • 2.14, Аноним (14), 13:58, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Запускал на нём сборку LineageOS с помощью robonix (https://github.com/danielfullmer/robotnix)
     

  • 1.6, ryoken (ok), 08:18, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >> Добавлена поддержка LCD-экранов, встроенных в клавиатуры и колонки Logitech.

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

     
  • 1.7, Аноним (7), 08:22, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится в домашний каталог),

    Разрешение установки ПО в /home пользователю и исполнения с /home -- рассадник вирей.

     
     
  • 2.9, Аноним (8), 10:02, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В пределах /home/user. В местах, где системные бинарники rwxr-xr-x.
     
  • 2.11, iPony129412 (?), 10:36, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Разрешение установки ПО в /home пользователю и исполнения с /home -- рассадник вирей.

    Так речь про линуксовые локалхосты... Какой рассадник?

    https://xkcd.com/1200/

     
  • 2.12, ним (?), 12:31, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все пакеты ставятся в /nix/store. В /home только симлинки.
     
  • 2.26, NULL (??), 04:56, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как уже написали, все пакеты ставятся в /nix/store. Суть установки в пользовательский профиль в том, что генерится новый метапакет user-environment, на который переключается симлинк текущего профиля пользователя /nix/var/nix/profiles/per-user/${username}/profile . В результате этого:
    - установленные пакеты защищаются от удаления сборщиком мусора (наподобие добавления в файл world в генте или apt-mark manual в дебиане)
    - их бинари добавляются в $PATH пользователя (т. к. симлинки на них собраны в поддиректории bin/ метапакета user-environment, на который ссылается симлинк, который добавлен в $PATH)

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

     
     
  • 3.27, NULL (??), 05:10, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, если кто-то подумал про установку setuid бинарника: нельзя. Это могут только nix модули, выполняемые посредством nixos-rebuild, пересобирающим всю систему по глобальному конфигу, который может запускать только root.

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

     
     
  • 4.29, Аноним (29), 15:55, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > По умолчанию пользователь может ставить в свой профиль что угодно, но выполнять - только от своего имени.

    Это и есть самый настоящий рассадник вирей.

    В нормальных дистрах /home монтируют с опциями nodev,noexec,nosuid специально, чтобы юзвери ничего себе не ставили и не запускали. Даже дополнения в бровзере надо запретить устанавливать.

     
     
  • 5.31, Ordu (ok), 22:57, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В нормальных дистрах /home монтируют с опциями nodev,noexec,nosuid специально, чтобы юзвери ничего себе не ставили и не запускали.

    Ну и кому они нужны эти "нормальные" дистры? Хрен с ним с запуском скомпилированных бинарей -- не все занимаются разработкой, но ведь даже скрипт себе в $PATH не закинуть, не запустить.

    И главное -- ради чего? Чтобы малварь не могла бы выполнить код? У тебя в $HOME есть куча файликов/директорий с именами, начинающимися с точки, ты проверял сколько среди них таких, которые позволяют вписать в них произвольные команды шелла и потом с радостью запускают их?

     
  • 5.32, Аноним (32), 23:07, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    noexec не защищает ни от чего по факту. Добрый вечер.
     

  • 1.16, Аноним (16), 14:51, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Пакеты оформляются в виде контейнеров, содержащих необходимые для работы приложений компоненты.

    Не совсем. Пакеты не содержат в себе все зависимости, как в венде, они ссылаются на зависимости из других пакетов. Например, если пакету нужна библиотека zlib, он использует, например, /nix/store/lxbxwg609cw3zby7ba78h0992hp9rcfy-zlib-1.2.11/lib/libz.so. Это, с одной стороны, позволяет точно зафиксировать все зависимости, как в контейтенере. И позволяет одновременно использовать разные версии одного пакета в одной системе. А с другой стороны, в отличие от контейнеров, позволяет разным пакетам ссылаться на один и тот же пакет с зависимостью. Это экономит кучу места на диске и кучу трафика при обновлениях. И контейнеры как таковые не нужны, не надо никуда чрутиться, гораздо удобнее.

     
  • 1.17, Аноним (17), 15:32, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В свое время, хотелось покрутить в руках, но показалось что для десктопа - это довольно экстремально и подходит слабо. К тому же, необходимость осваивать новый язык - так же не добавляет привлекательности.
     
     
  • 2.30, макароновирус (?), 21:39, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лет 5 назад просидел на нем полгода на ноуте.
    Все работало нормально до определенного момента. История закончилась тем, что что-то поломалось и пакеты я вообще не мог ставить. Сыпались ошибки.
    Никакие шаманства и советы не помогли и в итоге снес.
    Дистр для тех, кто осознает какие плюшки можно получить используя его.
    Ставить его взамен классического дистра нет смысла, если не предполагается использование фич.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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