237
المشتركون
لا توجد بيانات24 ساعات
لا توجد بيانات7 أيام
لا توجد بيانات30 أيام
أرشيف المشاركات
237
Repost from Розробка третьої хвилі
Зараз знову пробую перенести частину роботи у віртуалку.
Цього разу не Ubuntu, а NixOS.
Багато хто з моєї бульбашки юзає Nix devenv, flakes і т.д. Все заради того, щоб залежності проекту жили в скоупі проекту, а не глобально в системі, і без запуску цілої VM. Але це саме ізоляція залежностей, а не ізоляція процесів - nix-шел бачить твої файли і твою мережу, на відміну від віртуалки.
Я ще надто мало знаю, щоб це гарно пояснити, але на прикладі NixOS спробую описати філософію. Хоча варто розділяти: є окремо NixOS як ОС, і є інструменти Nix, які працюють без цілої ОС - на macOS це nix-darwin і home-manager.
NixOS - це дистрибутив Linux, в якому немає звичного пакетного менеджера. Ні apt, ні dnf. Є Nix: ти не ставиш пакет командою, а описуєш його в конфігурації. Немає і звичного /usr/bin - усе лежить у /nix/store, кожен пакет під своїм хешем.
Зате є конфігурація, файлом. Це дозволяє тримати цілу ОС в описаному і відтворюваному стані. Плюс система лишає попередні генерації, тому завжди можна завантажитись у стан "як було до мого експерименту".
Уявіть, що це як поставити npm пакет, і зміни будуть у
package.json і package-lock.json. Тут те саме роблять flake.nix і flake.lock. А тепер масштабуйте це на цілу ОС.
І воно йде ще далі. Кожен пакет описаний рецептом збірки, тому будь-що можна зібрати з сорсів, а будь-яка зміна вхідних даних дає новий шлях у сторі. За замовчуванням, щоправда, готові бінарники просто тягнуться з кешу - локально збирається лише те, чого в кеші немає.
Гаразд, менше цих деталей.
Я вибрав це, щоб мати можливість декларативно описати, що має мати моя віртуалка, і розгорнути її по цьому файлу будь-де (в межах Linux, звісно). В тебе там всі потрібні інструменти: claude code, codex, pi, herdr, кастомні скрипти, будь-що інше.
А весь цей геморой потрібен, щоб спробувати трохи оркеструвати агентів у більші системи. Якщо матиму вдалий досвід - то напишу і про це потім.237
Repost from N/a
i forgot to setup auto-deletion for older nix generations, and now it filled my / partition to 100%
