Пользователи NixOS сами знают, чем их дистр лучше импотентной негибкой допотопщины, а гентушники только и могут, что лениво клянчить за них разжевать, в каком каменном веке они застряли.
Декларативный конфиг, версионирование обновлений системы.
Вообще nixos штука одновременно очень крутая, но также полная всяких странных порезов.
На десктоп я бы ставить не стал, но накатил её на впску и подкроватный сервер, очень нравится. Жду следующего поколения таких систем, когда на всяких nix/guix набьют шишек.
Я NixOS уже 4 года на досктопе гоняю – полёт отличный. Как раз с Gentoo на неё перешёл. Даже на Unstable всё довольно гладко, разве что если на unstable-small сидеть (считай, master-ветка репозитария), иногда что-то бывает не собирается. Но это чинят в течение дня.
Извини, я просто привык что на ЛОРе обычно технари сидят.
Декларативная настройка системы - это когда вместо изменения состояния (запуска команд установки пакетов, настройки фаервола, etc.), ты прописываешь какое должно быть конечно состояние системы. Типа пакеты стоять такие-то, порты открыты такие-то. При том что если что-то не указано, то оно откатывается до дефолта.
Версионирование обновлений - каждое обновление системы или реконфигурация создаёт новую версию системы, между ними можно свободно переключаться, если что-то пошло не так можно перезагрузиться в прошлый вариант.
Много слишком порезов, нет понятия версий пакетов в привычном смысле слова, очень загрязнённые дефолтные настройки компиляторов, медленный nix-shell, пока высокий для меня порог вхождения чтоб допиливать что-то (нужно знать язык + постоянно копаться в nix-pkgs). А ещё я на десктопе кодирую на плюсах по работе, мне надо чтоб 100 всяких разных либ собиралось нормально на не-FHS системе.
В общем погоняю на серваках, может научусь языку и посмотрим. Но мне кажется что в какой-то момент у этих NixOS/Guix должен появиться ещё один приемник с исправлениями всех этих порезов из коробки.
Извини, я просто привык что на ЛОРе обычно технари сидят
Откуда такое заблуждение?
Спасибо за разъяснение, стало понятно, что оно не нужно.
Версионирование обновлений - каждое обновление системы или реконфигурация создаёт новую версию системы, между ними можно свободно переключаться, если что-то пошло не так можно перезагрузиться в прошлый вариант.
Вот это жесть конечно. Я вас правильно понял, пересборка одной либы ведет к почкованию?
Это примерно так же полезно, как «пакетный менеджер». Пройти мимо можно, большинство проходит и сидит себе на винде, пользы этой штуки в 21 веке миллионы пролетевших мимо мух нисколько не умаляют.
Звучит как что-то на эльфийском. Или на хинди, вечно их путаю.
В конфиге описано состояние системы, от настроек пакетов до установленного по и запущенных сервисов. При этом ты можешь загрузиться в нужное состояние системы.
Какой профит на практике от этого и какой ценой он дается - сложный вопрос. Версионирование не защитит от сломанного загрузчика, не поможет обновить/откатить базу под новую версию ПО, не поможет с пользовательскими настройками или проблемами с кэшем. Возможность загрузиться в старое состояние для диагностики порой полезно, но для этого его надо у себя держать.
Хехе, а не случилось ли так, что пакетов небыло потому что «рассово нечистые»? Если там концентрация на чистый опенсорс, то и вот тебе. А про 404... хм... я на такое не натыкался.
Смотрю на этот ваш никс ос. Говорят есть фича, что в случае проблем можно откатится на предыдущее рабочее состояние. Ну я у себя в арчике делаю btrfs снапшот перед обновлением и тоже могу в два клика восстановить предыдущее состояние. Получается одна фича ФС делит на ноль nix os.
Я не понял метафору. У вас же там космический корабль на колесах, хочешь ездить в магаз — становись космонавтом. Хотя может для программистов там два пальца об асфальт?
В случае с никсом функциональщина - цель, а вытекающие в процессе достижения этой цели плюшки - побочные эффекты, даже если они на прямую не связанны с функциональщиной.
Мои снапшоты это diff’ы, а у тебя полная копия файлов. Так что мои десять занимают места меньше, чем твой один. Что как бы намекает какой инструмент более совершенен.
допотопными пакетными менеджерами.
А твои никсокостыли как по скорости работы в сравнении с этими ой-ой-ой допотопными менеджерами? На порядок медленнее или два порядка?
Так что мои десять занимают места меньше, чем твой один.
Все наоборот.
А твои никсокостыли как по скорости работы в сравнении с этими ой-ой-ой допотопными менеджерами?
Обновить систему неделькой апдейтов — пусть будет минута против трех минут. Предоставить пользователю шелл с патченным rsyslog с патченным gnutls — пусть будет день страданий против пяти минут ожидания компиляции.
Ты точно хочешь продолжить сравнивать пакетный менеджер лучшей ОС с охранником городской свалки?
btrfs — мгновенные снапшоты. Где ты там тяжесть нашёл?
Просто нет.
Именно так. Иначе ждать пока пакеты скачаются из интернета. При отсутствии доступа к сети и вовсе нет альтернативы хранению полных копий файлов. Моим снапшотам не нужна сеть, чтобы откатится.
Все наоборот.
Пруфы.
пусть будет день страданий
Нет. Скачиваешь сборочные скрипты своего дистрибутива, добавляешь патч, собираешь и устанавливаешь. Пусть будет три минуты против твоей одной. Это несущественная разница и она не компенсирует красноглазие, требуемое никсом.
Скачиваешь сборочные скрипты своего дистрибутива, добавляешь патч, собираешь и устанавливаешь.
Все, проиграл, устанавливать в систему ничего нельзя, только запустить шелл с юзающим патченным gnutls rsyslog.
Пусть будет три минуты
Там пять только потому, что gnutls собирается пять.
пакетный менеджер лучшей ОС
Ни на чём не основанное утверждение.
Nix/Guix менеджат пакеты. Остальные типа-ПМ распаковывают помойку в / и скрещивают пальчики, чтобы админы сквозь стокгольмский синдром не смогли увидеть, как есть правильно.
Если ты сейчас приведешь справку по созданию virtualenv в твоём дистре (да, это есть и за пределами nix/guix), то может и снизойду показать, где тут спрятались десять «затолёгких» вместо мерседеса. Если в твоём недоПМ нельзя даже запустить софт, не установив — не переживай сильно. Посмотри, вот тут я описываю целые классы проблем, которых в NixOS тупо нет и добавлением костылей типа снапшотов ФС их решать не надо, когда можно просто не создавать: https://discourse.nixos.org/t/half-a-presentation-i-had-in-my-company-about-nixos/16467
Смотри такой сценарий. Например я сделал btrfs снапшот, потом пропатчил библиотеку. После патча поведение внешнего API не изменилось. Соответственно пересобирать зависимые от неё программы нет смысла, т.к. динамическая линковка.
У меня в снапшоте будет diff одной библиотеки. Всё.
В твоём снапшоте будет изменённая библиотека и все программы, которые от неё зависят. Динамическая линковка не поможет. Потому что дюже умный никсовый менеджер не понимает что конкретно изменилось в библиотеке и триггерит пересборку всех зависимых программ на всякий случай.
Так что ты давай не маняврируй и сравнивай эти размеры файлов, а не то что там тебе удобно.
Все, проиграл, устанавливать в систему ничего нельзя
Кто запретил? Откатится я могу по снапшоту в любой момент.
Nix/Guix менеджат пакеты.
Ага. Мои снапшоты смогут откатить не только пакеты, но и все изменения, которые они делают в моей ФС. Никакой поддержки пилить не нужно. А твои никсы только те конфиги, которые закрасноглазили. Если мейнтейнеры не накросноглазили на dsl поддержку для программы, то никакой магии для её конфигов не будет. Закат солнца вручную. У меня же работает всегда и со всем из КО-РО-БО-ЧКИ.
Есть статья на ЛОРе vim для самых маленьких , которая возникла из ооочень подробного комментария в другой теме nano для самых маленьких (комментарий).
Автор не пытался объять необъятное и ‘пронзить’ все глубины vim. Эта статья, как напоминалка о часто используемых хоткеях.
Может тоже, забабахать статью о NixOS по тому же принципу, которая состояла бы из ответов на частые вопросы ЛОРовцев? Наверно раскрыть декларативность и как уживаются пакеты разных версий…
А потом уже можно будет давать на статью ссылку, в ответ на повторяющиеся вопросы.
Все же интерес к NixOS есть, как к странной и непонятной зверюшке. )
Декларативность не может являться целью. Компьютер нужен, чтобы работать, а не настраивать. Ну если ты только не красноолазик. Тогда да.
Декларативные модели всегда более дружелюбны к человеку, чем императивные. Потому что для них не надо держать в голове состояния, последовательность действий и т.п. Тот же Ansible на верхнем уровне тоже декларативный.
Пока твои задачи вписываются в реализацию NixOS, это самая минимально красноглазая и простая в настройке система.
Кто запретил? Откатится я могу по снапшоту в любой момент.
Я запретил. Мне на этой системе еще разработу разрабатывать. Может эта версия gnutls валится при инициализации, а я ее «в систему поставлю». Вы эти доисторические практики ешьте сами.
У меня же работает всегда и со всем из КО-РО-БО-ЧКИ.
Разве что потому что ты ешь из репозиториев, что дают, и ничего интересного от системы не хочешь. Весело ты съехал на конфиги, кстати, слив засчитан или еще с императивным Ansible посравниваем?
У меня есть только видео. Но статью надо, а то как ни релиз, так вскукареки набегают. Как виндузятники vs линуксоиды, право слово: «репозитории не нужны, next-next-finish наше все, консоль это разве что для программеров, у нас все и так работает», вот это все.
Тот же Ansible на верхнем уровне тоже декларативный.
Звучит как «а мой кошелек снаружи полный».
Подход либо декларативный, либо нет. Если к императивному Ansible приделали декларативный верхний уровень, то теперь проблемы две: неадекватность декларативного языка императивности Ansible и сама императивность Ansible.
Будет, если хочешь откатится. Отвечаешь односложно, не раскрывая мысль. Да да, это он — СЛИВ. Давая, делись мудростью откуда ты возьмёшь файлы в твоём случае. И сколько это занимает на твоей системе.
Я запретил. Мне на этой системе еще разработу разрабатывать.
Нет проблем. Делаю снапшот, монтирую в папку и чрутуюсь туда. Вот у меня и консоль. Могу там любые эксперименты проводить. И пердолится с dsl не надо. И работает для любых файлов и состояний, а не только для закрасноглаженных через dsl.
Разве что потому что ты ешь из репозиториев
А ты сборочные скрипты все сам написал или ешь из репозитория? Ай-ай-ай.
ничего интересного от системы не хочешь
Вот и подтвердился мой тезис про систему исключительно для красноглазия. Людям обычно требуется не интересное, а работающее. Если я вместо работы буду красноглазить, то ничего не успею сделать.
Весело ты съехал на конфиги, кстати, слив засчитан
Съехал? Для тебя консистентное состояние программ и конфигов после восстановления из снапшота это ерунда? Без этого всё развалится. У тебя всё держится на вере в то, что красноглазик, писавший пакет для никс, всё правильно описал и ничего не забыл. Иначе после восстановления из снапшота получишь кирпич. Не тебе говорить про сливы после игнорирования размера снапшота.
Но если тебе мало, могу подкинуть ещё.
Возьмём проприетарщину, которая в рантайме загружает библиотеку через dlopen. Игра например или САПР какой. Тысячи их. Путь до библиотеки вычисляется каким-то алгоритмом и не прошит жёстко. Что на это скажет твой костыльный nixos? У тебя то библиотеки лежат в папочке с хэшем вместо имени.