LINUX.ORG.RU

NixOS 17.09 Hummingbird

 ,


0

6

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

Основные изменения:

  • GNOME обновлён до версии 3.24, KDE Plasma до 5.10, KDE Applications до 17.08.1 и KDE Frameworks до 5.37. Python 3 обновлён до версии 3.6.
  • Механизм управления пользователями теперь ведёт учёт освобождённых UID/GID, соответственно однажды занятый UID/GID не может переиспользоватся другим пользователем/группой.
  • Изменено управление настройками SSL для модуля services.nginx. Опция enableSSL переименована в onlySSL для большего соответствия своей сути. Также добавлена опция addSSL для использования общей конфигурации для виртуальных хостов с использованием SSL и без него.
  • Добавлено 72 новых сервиса (полный список).
  • Из состава репозитория Nixpkgs удалены пакеты compiz, wvdial, aiccu и fanctl.
  • Прекращена поддержка ядер на основе Grsecurity/PaX в связи предоставлением наборов патчей для ядер младше 4.9 только для подписчиков Grsecurity (подробности).
  • Поддержка тачпадов теперь по умолчанию предоставляется с помощью libinput в связи с устареванием synaptics.

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



Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 6)
Ответ на: комментарий от Jopich1

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

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

Автор никса просто проанализировал все существующие пакетные менеджеры, без труда заключил что они все мягко говоря плохие, и написал свой. Вот его диссертация в которой все ясно и подробно объяснено: https://nixos.org/~eelco/pubs/phd-thesis.pdf

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

Но snapper работает так же с ext4.

Пошёл читать каким таким образом он работает с ext4 и оказалось что только с форком next4, в общем нужное кастомное ведро.

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

Дык, он же умер (последний коммит в 2009) и не компилируется с новыми версиями openssl о чём и указано в release notes.

Singularity
() автор топика
Ответ на: комментарий от Jopich1

Нет, для этого нужно их изолировать, «держать при себе», как в каком-нибудь snap — не единственный способ этого добиться.

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

Пишется патч либо делается форк..

Выкидывать не самое лучшее решение.

wvdial всеж может использоваться для выхода в интернеты)

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

все зависимости держать при себе

И будет как с докером:

Almost 40% of general images have high priority vulnerabilities. Even if we just look at images created this year or ones with the latest tag, the percentage of vulnerable images hovers between 30-40%. If we include images that have medium vulnerability, this number jumps up to more than 70% for all the time frames.

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

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

Clayman 🤡
()
Ответ на: комментарий от Slackware_user

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

Clayman 🤡
()
Ответ на: комментарий от NextGenenration

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

я, например, версионировал конфиграцию системы с помощью гита

т.е. можно откатиться на нужный тэг и запустить никс-билд

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

но в случае повреждения диска/рм-рф только внешнее хранилище спасёт, просто бэкапить нужно только единый конфиг системы (который, при этом, может быть разбит на модули) и данные

хотя, из-за самодельного языка в никсе, guile кажется гораздо более интересным

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

ну так давай сравним с аналогичным конфигом из никса

ну, плюс к этому, лиспы обычно лучше читаются в редакторе с rainbow parentheses

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

в никсовых пакетах я такого ужаса не вижу. потому что 1) нет такой дикой вложенности, там как там это решается неймспейсами 2) все кроме декларативного описания - это обычные команды баша, как если бы ты собирал пакет руками, так что чтобы написать пакет не требуется писать программу, как в случае с гуиксом

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

К примеру есть такой пакет как systemd-swap. Каким образом будет в едином конфиге помечено что я в нём менял?

хотя, из-за самодельного языка в никсе, guile кажется гораздо более интересным

Писать на +1 языке не проблема, проблема когда софт отсутствует в репах

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

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

  systemd.services.myservice = {
    description = "My service is responsible for ...";
    after = [ "multi-user.target" ];
    wantedBy = [ "multi-user.target" ];
    path = [ pkgs.bash ];
    environment = {
      MY_SERVICE_HOME = "/my/path/here";
      MY_SERVICE_MAX_CONNS = toString myVar;
    };
    serviceConfig = {
      User = "myuser";
      ExecStart = path;
      Restart = "always";
    };
  };

а для существующух сервисов можно, соответственно, переопределить только отдельные параметры

--------------

касательно количества пакетов в репах — если чего-то нет в официальных репах, то можно поискать конфиг для нужного пакета в неофициальных источниках, вот пример простого: https://github.com/actionless/dotfiles/blob/master/workstation-dell/nixos/pkg...

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

Писать на +1 языке не проблема

Ну знаешь, такое себе удовольствие. Писать программу ради опакечивания очередного софта.

проблема когда софт отсутствует в репах

А кто должен пакетить, как не юзеры? Вспомним Арч с Ауром

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

если чего-то нет в официальных репах, то можно поискать конфиг для нужного пакета в неофициальных источниках, вот пример простого: https://github.com/actionless/dotfiles/blob/master/workstation-dell/nixos/pkg...

А почему в официальный репозитарий не толкаешь? В отличие от того же дебиана, в nixpkgs довольно легко проталкивать пакеты. Считай как Аур с ревьюверами и несложными требованиями.

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

Нафиг такое счастье.

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

Ну конечно всякие шаблонные вещи типа "(c)make; make install" описываются декларативненько одной строчкой на никсланге, а вот какие-нибудь нешаблонные манипуляции с файлами - на баше. Да потому как я уже сказал, это банально удобно. В простынях также можно обращаться к зависимостям (типа ${pkgs.bash}/bin/bash), если нужно.

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

От баша то требуются в основном шел команды (cp, rm, ...), да циклы. Этой чистый дебилизм выражать сие на непривычном всем язычке. У тебя же в качестве шелла не лисп репл используется, я надеюсь? :D

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

bash — это худший недоязык программирования. Единственная область его применения — мелкие, некритичные к надёжности скрипты на пару десяток строк кода (просто потому что на таких масштабах недостатки баша не успевают проявиться) и скрипты инициализации системы (проще дебажить если нормальная загрузка не удалась). Да и в последнем случае rc из plan9 предпочтительнее.

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

ugoday ☕☕☕☕☕
()
Ответ на: комментарий от perfectcolors

Господи, какое программирование из-за простого пакетирования?

А зачем тогда bash? Тут eDSL в самый раз.

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

Там и есть DSL. Называется Nix. Баш для билд-инструкций и только. Не нравится тебе bash, можешь мысленно заменить sh'ом. Ничего башеспецифичного я в пакетах не видел. Еще раз: билд-инструкция это то что человек набивал бы в терминале, операции над файлами и запуск команд в основном. У большинства людей шел sh совместимый, а не что-то другое.

Что тут обсуждать из пустого в порожню. Посмотри сам пример никсового пакета https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/pakcs... Очень легко читается и пишется в сравнении с гуиксом

perfectcolors
()

Нужно.

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

Значит конфиг юнита встраивается в единый конфиг. Понятно.

касательно количества пакетов в репах — если чего-то нет в официальных репах, то можно поискать конфиг для нужного пакета в неофициальных источниках

Несколько лень менять дистрибутив и опакечивать то что уже есть

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

Ну знаешь, такое себе удовольствие

Что scheme что nix для меня одинаково незнакомы.

Писать программу ради опакечивания очередного софта.

Это нужно в любом дистре. Разве что кроме тех в которых делают make install

А кто должен пакетить, как не юзеры? Вспомним Арч с Ауром

В nix есть некторые пакеты, в guixsd нет. Если нет какой-то автоматической миграции(с добавлением в официальный реп), то у пользователя прибавится проблем.

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

Посмотри сам пример никсового пакета

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

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

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

Как же это напоминает все остальные системы сборки пакетов

NextGenenration
()

Не готов

Кто-нибудь его юзает на десктопе? Искренне пытался сабж с кедами на запасном ноуте. Всюду сырость. Если сделать nixos-rebuild switch с-под кед - всё умирает, т. к. меняются пути в /nix/store. Если сделать nixos-rebuild switch не из-под кед - ломается восстановление сессии, т. к. меняются пути в /nix/store. Из-за этого случаются неочевидные баги, когда перестаёт отображаться статус батареи из-за незапущенного powerdevil и т. д. Или недавно пропали уведомления о прогрессе копирования файлов. И вот как-то так оно всё. На серверах оно уже употребимо и даже очень круто. Прозреваю ему великое будущее. Наконец-то цельное решение, а не эта puppet/ansible/docker/rkt/coreos/четамщасмодно костыльная клоунада. Но для десктопа в 2017 году чё-то пока не готово.

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

Неструктурированная простыня плохочитаемого текста

(Съешь (ещё (этих (вкусных (обрезков ногтей))) (да (выпей (йаду))))).

без корректной проверки входных данных и контроля ошибок

Поздравляю, гражданин, в лужу пёрднувши.

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

(Съешь (ещё (этих (вкусных (обрезков ногтей))) (да (выпей (йаду))))).

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

NextGenenration
()

Довольно интересный дистр, но так его и не попробовал.

filosof
()
Ответ на: Не готов от anonymous

Gnome работает. В Maxx поломаны ссылки у ярлыков на рабочем столе. На unstable ветке несколько раз откатывался после обновления, на стабильной ветке такого не наблюдал. Нормальный готовый десктоп.

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

Что scheme что nix для меня одинаково незнакомы.

Там и учить нечего. Смотришь как в других пакетах сделано + мануал. Их ревьюверы скажут, что поправить в случае чего.

Это нужно в любом дистре. Разве что кроме тех в которых делают make install

Ну на гуиксе надо писать именно программу. А в никсе все практически также как в других пакетных системах, обычная последовательность установочных шагов. И совсем небольшой процент Nix'а, там где он нужен.

В nix есть некторые пакеты, в guixsd нет. Если нет какой-то автоматической миграции(с добавлением в официальный реп), то у пользователя прибавится проблем.

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

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

Неструктурированная простыня плохочитаемого текста

Где? В гуиксе? Тут ты прав

без корректной проверки входных данных и контроля ошибок

Nix типизирован и ленив. Чо тебе еще надо? try съешь еще этих мягких булочек catch да выпей чаю. Может тебе еще монадок в чай положить? Тут люди вообще пакеты левой пяткой строчат, для такой задачи что угодно сгодится, лишь бы зависимостями само рулило.

Какой тебе контроль нужен? Сфейлилась у тебя команда в installPhase допустим -> сфейлился пакет. Чем не контроль.

perfectcolors
()
Ответ на: Не готов от anonymous

Яфз когда был кедерастом и сидел на стабильном 16.x ничего такого не было. Но с тех пор я верный пользователь i3. Там местный кутешник-кедераст вносил какие-то слишком радикальные изменения в пакеты кед с целью упрощения мейнтенинга, так что вполне возможно, что все поломалось и нужно время пока все эти дела поправят.

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

Maxx? Серьезно? Нагуглил тут что это такое Дефолт MaXX ну вроде ок ссылки, все запущено на скрине. Firefox только сломан, но он в состав этого макса не входит.

Но я не знаю зачем юзать эту жесть :D

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

Где? В гуиксе?

В guix приняли правильное решение использовать полноценный язык программирования.

Какой тебе контроль нужен?

Ну, почитай что-нибудь на тему defencive bash programming.

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

В guix приняли правильное решение использовать полноценный язык программирования.

А, ну наконец-то ты высказал свою любовь к гуиксу. Дальше можно не продолжать. Программируй и дальше пакеты, у меня есть дела поважнее.

Ну, почитай что-нибудь на тему defencive bash programming.

Everything is local

Переменные и есть локальные, т.к. область видимости ограничена phase'ом.

Everything is a function

Функции там не используются.

Короче это не баш :D Тебя тупо триггернуло на слово. Сразу думаешь, что используется баш во всем его безобразии.

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

у меня есть дела поважнее.

Экранировать символы, пробрасывать переменные из bash в awk и обратно, может ещё чего.

ugoday ☕☕☕☕☕
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.