NixOS - Полный Разбор: Nixpkgs, Flakes, home-manager
Видео, которое я обещал ещё полгода назад наконец вышло. Здесь я подробно разберу дистрибутив NixOS, его пакетный менеджер и язык Nix: Флейки, home-manager, установка, настройка, работа языка Nix на более низком уровне и многое другое.
Мой конфиг: github.com/Andrey0189/nixos-c...
Скачать NixOS: nixos.org/download/
Nixpkgs search: search.nixos.org/packages
Disko примеры: github.com/nix-community/disk...
NixOS Manual: nixos.org/manual/nixos/stable/
Nix Reference Manual: nixos.org/manual/nix/stable/i...
Nix pills: nixos.org/guides/nix-pills/06...
Home manager option search: home-manager-options.extranix...
Zero to Nix: zero-to-nix.com/
Диссертация: edolstra.github.io/pubs/phd-t...
Команды для установки home-manager:
$ nix-channel --add github.com/nix-community/home... home-manager
$ nix-channel --add github.com/nix-community/home... home-manager
Музыка из видео:
• Creo - Flow
• LAKEY INSPIRED - Blue Boi
• LAKEY INSPIRED - The P...
• Dream Speedrun Music
• 3 A.M Chill Session 🌌 ...
• LEMMiNO - Cipher (BGM)
Автору огромная благодарность! В РУ-сегменте мало кто так подробно касается данной темы.
благодаря нему я еще больше начал изучать линукс, очень информативно подает, реально respect!!!
это мы смотрим обязательно
НАКОНЕЦ ТО, ВЫПУСКАЙ БОЛЬШЕ РОЛИКОВ
Лучший и самый подробный обзор NixOS, который я видел. Очень здорово все объяснешь. Похоже пора наконец попробовать NixOS
На этом фоне у меня возникает вопрос, будут ли плюсы для пользователя если он не занимается сборкой и поддержкой пакетов.
Не ну скажи честно - оно тебе надо?😅
@@beotiger Ну чет меня заинтересовала данная тема. Хочу попробовать его как декстоп для дома и работы. Отказаться всегда можно.
Wow Ampersand У меня такое ощущение как будто то я на лекцию в Стэнфорде попал😅. Такой объем информации... Нужно пересматривать и пересматривать👍🙂 Спасибо за твой огромный труд!)
Ру-линукс-ютуб, живи! Видос огненный, наверное самый лучший у тебя сейчас. Посмотрел с удовольствием.
Ещё не посмотрел даже половину видео, но это шедевр.
Спасибо!! Вы очень заинтересовал! Буду изучать!
Пожалуй реально лучший видос по Nix OS во всем ютубе. Отдельное спасибо за конфиг, взял как стартовый, настраиваю под себя потихоньку. Пришлось правда чуть поднапрячься при установке, не сразу понял, что нужно юзернейм во всех конфигах заменить, да хардавар конфиг реплейснуть.
Спасибо Андрей ,хотелось бы больше таких видео ,НО ,но с учетом того что вас смотрят обычные пользователи ,не разработчики и даже не продвинутые .а просто "только что от винды отошедшие" но Линукс полюбившие.Дай бог вам крепкого здоровья )
Оооооо, вот и нашёлся повод разобаться в никсах
как обычно чётко и по делу. автор маладец
Замотивировал че)) Спасибо за ролик!
Хороший обзор, молодец!!! На некоторые вещи я даже внимания не обращал, спасибо
Наканецта. Свершилось) Лайк автоматом
Видео пушка! Лайк
Наконец-то дождались 😊
Я новичок в линуксе, недавно наткнулся на твой канал и подписался. Делаешь круто!
Сложно, но очень интересно. Спасибо за ролик, видно что очень старались)
Очень классный ролик, спасибо! Дистриб заинтересовал, надо будет попробовать
огромное спасибо сам недавно перешел на никс гдето окола месяца уже сижу очень интересная система счас только поверхностно разобрался теперь надо дальше узучать углублятся
Вот это да! Никогда не слышал раньше про NixOS, но он меня действительно заинтриговал. Спасибо автору! Всё чётко, понятно и без воды.👍
Спасибо за это крутое видео!
Выглядит очень круто
Господи, это гениально, прям видно как ты всю душу вложил в этот ролик
Грамотная и приятная подача. Спасибо!
Мощно. Никс хоть и очень глубокая кроличья нора, но для краткого разбора - хорошо.
Замечательное видео, благодарю
ТАКИ ДОЖДАЛСЯ
Nix OS крутая, раньше работал на Ubuntu, но после того как в журнале посвященной вычислительной химии узнал об nix os, понял для моих целей самое то. Благодарю!
Дождались получается
Только вчера я снёс никс с компа, спасибо, пойду ставить ещё раз)
ОО, ты из Узбекистана? Ну там у тебя таймзона Ташкент) Привет Земляк)
мощно. Про то что git через home-manager можно настроить, не знал, полезно.
Теперь ждем гикс)
легенда не слился, лайк
НАКОНЕЦ ТО
Спасибо за неплохой обзор. Жду видео с разбором как самом создать пакет nix, а еще докер образ который компилируется с помошью nix из исходников. Это оказалось не так легко нагуглить
Когда обзор на никсос?
Сейчас
Когда нибудь в будущем
Интересно. Спасибо.
Ты днлаешь очень интересные видео спасибо
делаешь *
Годный контент. Реально годный. Прям руки зачесались поиграться с nixos. Пили ещё ролики по этой теме. Что там в подводной части?
Я конечно ,не фанат Lunux ,больше по части dos или cmd ,но даже мне стало интересно!) Спасибо за легкую восприимчивость))!❤❤❤
Вообще согласен с комментариями, по-моему единственный канал на ру сегменте с инфой о nixos, да есчо и не перевод 🔥
спс, теперь я еще больше хочу никсу.
Отлично, в качестве контента для виндузятника прекрасно подходит
Система для людей которы любят все делать руками , или для специфических рабочих задач, когда-то я до этого дойду ) ПОсмотрел и вспомнил как у меня горело когда тольео перешел на linux и настраивал NVIM coc , а после не мог запустить davinci resolve тоже головняка было много ) Спасибо за видео было полезно послушать
Спасибо, посмотрел, кушайте сами. Я на арче останусь ))
Мемы в видео имба
Спасибо будем изучать как
Полагаю, всю прелесть никсов поймут только те, кто при очередном обновлении арча внезапно выяснят, что что-то перестало запускаться, при этом откатиться назад никак, потому что тогда перестанет запускаться другая часть софта. И потом сиди пирди разруливай всё это. Уже больше года, наверное, на никос сижу и в кайф. Хотя флейки ещё не освоил
отличное видео ! есть неплохой цикл у Erik Dubois, но тут всё кратко и по полочкам разложил, Спасибо !
Не стоит забывать про shell
Привет, Ampersand! Очень интересный видос, большое спасибо! Ты не мог бы пожалуйста обьяснить зачем нужен nixos, если есть такие инструменты как ansible? С ansible можно выбрать любой понравившийся дистр, также написать код для развертывания и удобно устанавливать систему. Плюс можно выбрать дистр без systemd, например void. Мне понравилось твое заключение, но если подумать, то 1) Репродуцируемость - ansible. Но, конечно будет сложно(или невозможно) собирать систему с идентичными версиями пакетов, а не самыми новыми. 2) Контроль - да, тут ты прав, но как будто это скорее не про контроль, а про удобность. Удобно когда у тебя все лежит в одном месте(и понятно как именно это лежит). В разных дистрах бывают разные правила, это да. 3) Откаты - бекапы 4) Неубиваемость, да, это правда, выглядит круто, но на практике, если в течении обновления не произойдет сбоя, то вроде все должно работать. Я не часто удаляю какой то пакет из системы, если он находятся в зависимости. 5) Огромное количество пакетов - да, несомненно плюс, согласен. Мне очень понравилось, как ты привел параллели между языками программирования. Это правда, что nix ос это чтото большее чем просто очередной дистр и единственное, что меня останавливает в том, чтобы его попробовать это непонимание его принципиального отличия от связки дискр+ansible. Если дашь свой ответ, буду оооочень благодарен, для себя в инете я как то ответа не нашел...
Приветствую. Отвечая на вопрос насчёт Ansible, у NixOS есть неоспоримое преимущество - флейки. На императивных пакетниках будет довольно проблематично выбрать конкретный коммит используемого репозитория. А NixOS позволяет сделать это с помощью flake.lock. Для предсказуемости и стабильности это опредёленно плюс. А так, большую часть нужд Ansible покрывает. Nix создан для более функционального подхода к развёртке софта
@@ampersand3636 большое спасибо!
Подход NixOS выглядит стабильным. Я, как пользователь artix, не одобряю такое.
Ничего не понял, но очень интересно)))
26:52 Безбожные гуглы! Только утки)
Ничем не помог, но было интересно. Спасибо за видео)
ахах, спидран по языку Nix был великолепен
Бдагодарю, за проделаную работу и желание делится со всеми своим опытом. Вторая часть будет? Как обсоят дела с удалением systemd из системы?
Удаление systemd решил не затрагивать, т. к. в этом видео я приводил практические рекомендации по использованию никсы и proof of concept здесь был бы немного не к месту. Насчёт второй части... Может быть...
@@ampersand3636 есть ещё одна причина заняться удалением systemd - это тестирование прочности системы. Если nixos можно снести systemd без пересборки дистрибутива - то это будет поистине царская система. Почти. Каждый раз пересобирать систему при любой установке пакетов - это боль, особенно для новичка, что ещё не определился с тем что ему реально нужно... Зато дисциплинирует, вынуждая искать варианты вообще без установки лишних пакетов.
Ты следишь за мной? Только позавчера искал нормальный свежий обзор на nix os.
Я правильно понимаю, что nix хранит сразу много копий одних и тех же пакетов для того, чтобы поддерживать такую систему независимых пакетов? Если да, то это получается какой-то flatpack, но в масштабах всей системы. Не бьет ли это по производительности и (особенно) памяти?
Еб?*ит
по идее, если использовать это в связке с btrfs - это не должно создавать слишком много проблем, так как btrfs по умолчанию - не создает более одного экземпляра одних и тех же файлов.
Я вот пользуюсь арчем, но мне прям надоело каждый раз все настраивать, а потом все чинить после pacman -Syu. Хочется такого решения, чтобы сделал себе один раз все конфиги а потом пользуешься ими. Мне кажется nixos здесь будет идеален для desktop-as-a-code
Расскажи про guix linux
Автор, спасибо за качественный контент! И если не сложно, объясни пожалуйста ламерским языком, в чем разница "nix-shell -p" и "nix-env -iA", двух способов установки программ в Nix (в качестве пакетника, а не ОС), и можно ли приучить "nix-store --gc" не трогать отдельно взятые программы установленные именно первым способом, а не вторым?
Возможно я неправильно понимаю назначение "nix-shell -p" и он не предназначен для бытового применения, лишь для тестирования пакетов в изолированной среде, а ходовой способ установки программ это именно "nix-env -iA"
Хотелось бы узнать будет ли обзор на какой-нибудь оконный менеджер?
Прям от души постарался - респект! Маленький вопросик: Вот ты установил минимальный дефолтный НиксОс, например. В конфиге нет указания на то, что в системе есть редактор нано, а по факту он есть.. Почему?
NixOS с пустым конфигом установленных программ даст систему со всеми необходимыми пакетами для дальнейшей разёртки, то есть nano, sudo, perl и другие. Они эксплицитно не указаны в конфиге, но устанавливаются после nixos-install
@@ampersand3636 Спасибо за быстрый ответ. Но как это контроллить? Где увидеть-то что установленно-таки в системе, даже минимальной?
За это отвечает сет environment.defaultPackages. Не путать с "environment.systemPackages". Увидеть все установленные пакеты можно с помощью команды "nix-store --query --requisites /run/current-system" Небольшая документация: search.nixos.org/options?channel=unstable&show=environment.defaultPackages Список дефолтных пакетов: github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/config/system-path.nix
@@ampersand3636 Копаешь на полный штык 👍🏻 Ресёчь - моё почтение. Ктобы мог подумать, что когда они пишут, мол: в одном файле описаны ВСЕ пакеты системы, то это не так). Прости, но ещё один тупой вопросик: как перед установкой, на ливе изменить ттл перед подключением к сети? В арче и войде это легко - просто меняешь ттл в sysctl. А в никсе это реально вообще?
Спасибо огромное что ты сделал видео по данной системе, обзоров по ней очень мало и было не понятно а здесь все было рассказано по полкам. Я хочу попробовать зимой ее опробовать но наверное огэ меня затушит если я начну изучать сам никс. Только не понятно, смогу ли я в 15 лет разобраться или нет
Верь в себя и всё получится. В интернете много информации, главное уметь гуглить и хоть как-то знать английский). Попробуй её на виртуальной машине для начала, самые основные ошибки схватишь и потом будет проще. Единственное что, если не изучаешь языки программирования - присмотрись к Си; он как раз функциональный, и есть структуры, которые похожи на описанное в видео организацию пакетов.
@@randomcraft2345 Хорошо, понял, благодарю за рекомендацию!
@@randomcraft2345с каких пор Си - функциональный? Он процедурным всегда был...
@@d4vlL не поверите, в Си можно писать функции без побочных эффектов, тоесть, делать настоящие функции. Все эти "процедурный" и "функциональный" - имеют смысл только для нас; а для тех, кто и 5 дней не трогал любой язык, эти слова особо ничего не значат, а даже если загуглят - не поймут. Так зачем усложнять. Может вообще отказаться от "функциональный" и заменить на "отображаемый"?)
Полный вперёд, парень
станет ли nix твоей основной осью? как тебе наличие systemd? кривая обучения язіка и системы стоит ли того, есть ли перспектива популяризации nixOS так что бы встретить где-нибудь в проде. Видео отличное, но так очень много вещей отличных от дефолтных линуксов, некоторые штуки кажется показаны мельком и поверхностно, но в целом понятно, это не дип дайв.
Из разбора не очень ясно является ли такое хранение пакетов избыточным и на сколько больше занимает места чем например в убунту. Может кто-то скинуть сравнение?
А тестировать как? На изменения... По сути это теже снап пакеты?
Декларативная модель: "Покушай!" (не указан способ стать сытым) Императивная модель: "Съешь яблоко" (тут уже без вариантов, что делать)
Звучит очень интересно но че там по systemd который прибит гвоздями к никсу как говорят? есть конечно guix но это слишком
Репродуцируемость хорошо. А могу ли я как пользователь запускать и устанавливать любой софт, не беспокоясь чтт программа полезет не туда и не удалит все файлы в моей home директории?
Ждем FreeBSD ещё через год
Ну в целом хорошо, нового не много, но если бы я посмотрел это видео пол года назад, возможно сэкономи себе какое-то количество времени. Теперь о грустном: Тема flakes так и не расрыта! Серьёзно, но я не понял даже какую проблему ими пытаются решить в системе. 1. Не раскрыто flakes - эксперементальный функционал и что это значит в мире nixos? Его использовать, что сторонний "твикер" в этой вашей винде? В любой момент всё может сломаться, а на вопрос какого фига, скажут чё вы хотели эксперимент был неудачным. 2. flakes - это true way в мире nixos или игрушка для хипстеров? 3. По вашей конфигурации похоже, что с помощью flakes вы в целом подменяете configuration.nix? А зачем? Что от этого стало лучше? Если даже при неудачном обновлении всей системы что-то произойдёт нехорошее откат назад - это одна перезагрузка?... Отредактировать configuration.nix - не сложно, так зачем размазывать декларативную конфигурацию между flake и configuration.nix? 4. где примеры настройки develop окружения через nix.shell и flake, почему не показали. Например, вот хочу две папки с исходниками для разных версий питона и чтоб всё изалировано через venv и с дополнительными зависимости из pip, а так если python-зависимости нету в пактах nix начинается какой-то оверинжениринг... Ещё Совсем не согласен с минусами, они есть но другие (ИМХО): 1. Долгая установка пактов, хз ни минус не разу - не заметил, убунту и rpm-based дистрибутивы у меня обновляется дольше, чем nixos. 2. Сложность... скорее не сложность, а проблемы со стандартизацией и структурой системы - например, действие: установка пакета для конкретного пользователя может быть сделано несколькими рвнозначными способами в Homemaner, flake и configuration.nix - и это напрочь убивает всю красоту, репродуцируемость и контроль, т.к. позволяет сделать непрозрачную сложно воспроизводимую конфигурацию, которую уже не перенсёшь двумя файликами, нужно ещё не забыть папки ~/nix у каждого пользователя забрать, да и мало ли где пользователь flakes накидал... 3. Вы установили павкет, даже нет, просто позвали его через nix-shell какой-нибудь и эта программулина обязательно насрёт вам в домашней директории дотфайлами и в ~/.config и этот мусор уже навсегда и это так просто уже не откатишь. 4. homemanager - это нечто, больше всего напоминающее системный реестр винды только в текстовых файликах и не менее запутанный, при этом пользоваться им так же неудобно, особенно если нужно поменять не настройки консольных утилит, а что-нибудь черз GUI конфигуратор, например, в KDE, для удобного руления просто нету инструментов...
Парень из матричного чатика по NixOS сказал, что у тебя дикция не очень. Лично моё мнение: мне нравится повествование как у Изи, как у Самойлова, при этом у них не идеальный микрофон, не идеально чёткая речь, но их интересно слушать, думаю это главное. Главное чтобы голос, музыка были увлекательными, захватывающими, но не слишком хаотичными. У тебя же в основном расслабляющая музыка. Парень из чатика привёл пример хорошей дикции kzhead.info/sun/dKuPiK5li3usZpE/bejne.html (не моё мнение), это всё не реклама, если что.
А мне Изя больше не нравится, он на самом деле ничем не лучше. Просто ИМХО нужны паузы-заставки между частями видео (и само разделение на части). Дикция у автора огонь, тоже ИМХО.
какие есть дистры на базе nixos без systemd?
по своему опыту могу добавить, что nixos в силу своей специфики будет использовать гораздо больше дискового пространства, чем другие линукс дистрибутивы. При чем в разы больше. Много вопросов вызывает то, с помощью чего (nixos-install или home-manager) ставит софт и в какой ситуации. Далеко не все опции конфигурации поддерживаются в декларативном стиле. Это касается как самого nix, так и home-manager. Некоторые вещи придется подкадывать в виде dotfiles, что слегка портит впечатление. Все очень непросто когда вопрос касается установки не системных пакетов, а пакетов языка (привет python, nodejs) или приклыдных пакетов приложений (neovim plugins, etc.). Но все это конечно же можно решить тем или иным способом. В целом, это не серебряная пуля, но точно стоит того, что это попробовать!
Но больше для серверно-рабочей машинки, чем для домашней Хотя я, что дома, что на сервере использую arch
@@elpsykongr00 Особо не вижу смысла ставить ее на сервер, учитывая что большинство крутит все в кубере
А какой смысл использования btrfs на nix, если сама система поддерживает откаты? Я сейчас использую btrfs в первую очередь из-за снапшотов, чтобы была возможность откатиться, если накосячу. Какие ещё плюсы у btrfs?
Если ты амперсанд, то я чум чум слеш чум слеш
безумие какое то, видос хороший
Что за wm или рабочий стол в самом начале? На кадре с neofetch
hyprland, есть отдельный ролик у ампера про него
В ру-сегменте про никс реально ничего инетересного нету. По работе познакомился с никсом 3 месяца назад - и уже как месяц использую никс как единственную OS на домашнем десктопе - счастлив как в детстве на ДР. Тоже подумывал позаписывать видосы своего пути освоения это святыни... триединый никс
Каталог с образом системы... Сим (или хард) линки на файлы внутри этого каталога с образом... Ага, теперь я понял, откуда Windows взяла свою систему развёртывания и обновлений!
Что у тебя за редактор? Я вот решил на Helix перелезть, ибо nixvim очень муторно настраивать (дело не в нём, а в самом виме), а lunarvim как будто не то.
Я использую свою конфигурацию Nixvim. Если муторно настраивать, всегда можно скопировать готовую чужую конфигурацию с гитхаба
Docker дистрибутив
норм
Я думал, использовать ли Disko, но меня остановил один маленький момент: Этот киборг-убийца может почикать разделы на диске, если что-то пойдёт не так, и потом их уже будет не восстановить (вероятнее всего).
Пробуй на сначала на виртуалке.
6:49 Ну это какой-то сюр.... Что значит, что в асме мы надеемся, а в си - уже всё ок? Чем код отличается-то?
Он так принципиальную разницу подходов объяснил. Мол готовый инструмент и он просто работает сам все гарантируя. Мы просто используем. В асме мы делаем тоже самое, но сами, используя свои знания(предположения так как ничего это формально не гарантирует).
@@covid-2284 Код, что он показал, ничем не отличается. Т.е. разницы в подходах нет?
@@covid-2284 Разницы в том коде, что показал автор, нет.
@@covid-2284 Что за цензура? Почему коммент "test" проходит модерацию, а коммент "Между кодами, что показал автор, никакой разницы нет" не проходит??
@@covid-2284(Оба вопроса очевидно были не вам, но вот коммент, не проходивший модерацию, - вам)
Ты из Таша? Го прогуляемся
Зачем никсос устанавливать на btrfs если она и так поддерживает откаты?
Но ведь только для пакетов вродь..
Атомные? Может атомические?
Издержки любительского перевода
Тогда уж атомарные :)
@@user-km7vn7et8l Точняк! Я сам забыл как оно правильно называется 😆
Как мне показалось никсы очень тяжёлые по размеруза счёт того, что слишком много функциональности.
Я бы хотел попробовать nixos, но принципиально не пользуюсь дистрибутивами которые невозможно поставить на корень с zfs. Отказаться от неё не готов...
nixos.wiki/wiki/ZFS
@@ampersand3636 Это возможно, но лишь с mountpoint=legacy. Этот вариант не подходит!
It's gonna be that whole flakes and home manager thing all over again. I understand that Dolstra is in the love with the developer of home manager, since he is promoting this stupid crutch so much. Author, please tell us about flakes flaws, update problems, brakes. About the fact that at some point users of flakes configurations start to realize that they are on their own, without any support from developers. Also tell us that home manager is a pathetic attempt to make NixOS as shitty as ̶A̶r̶c̶h̶ ̶L̶i̶n̶u̶x̶ all other Linuxes. And that there is no practical sense in all this bullshit. NixOS is perfectly customizable and duplicatable with a single file. Anyone who thinks it's not that easy is an Arch Linux sectarian.
интересно очень, но тем не менее не понимаю, кому такое нужно:))
Звучит как неплохой вариант для сервера. Не люблю debian
@@covid-2284 если бы вот эта легкая откатываемость была реализована в имперском стиле я думаю, я бы задумался, а так умудряться, изучать язык, постоянно лазить в конфигах, как-то не особо
ок, а теперь гикс?
диклоративация головного мозга
Derivation дословно с английского - производная, но хз что уж бывалые никсоюзеры употребляют.
Такой перевод, потому что в PhD диссертации Элко Долстра есть цитата , что деривация - это "build action, which *derives* the component from its inputs". Что можно условно перевести, как "действие сборки, которое *ответвляет* компонент из исходных данных". поэтому я перевёл "derivation" как "вывод" или "ответвление". Звучит не очень, поэтому мы просто говорим "деривация". А производная - это derivative
@@ampersand3636 Хм, не знал.
дай обои плиз