Photo

💼 NixOS или Linux для тех, кому хочется ещё больше экзотики и контроля

Последнее время я постоянно замечаю упоминания NixOS в разных источниках — поначалу казалось, что это очередной дистрибутив для вымышленных программистов, но соблазн попробовать оказался сильнее предубеждений, и это было оправдано! И для первого знакомства я решился установить её как основную систему и жалел, но только иногда, больше всё-таки доволен. Теперь спустя неделю активного пользования хочу рассказать о том, почему стоит точно попробовать данный мазохизм и почему он будет полезен 👄

🔍 О плюсах этого дистрибутива

1. Всё управляется одним файлом конфигурации. Здесь нет привычных каталогов /etc,** .config** и прочих разбросанных файлов. Вся настройка осуществляется через единый configuration.nix. Этот подход делает работу над системой гораздо проще и понятней. Хотите поменять браузер или обновить драйвера видеокарты? Достаточно изменить соответствующую строку в файле и применить изменения командой nixos-rebuild switch! Сначала это кажется странным, но потом это так удобно…

2. Декларативный подход. Вместо последовательной настройки отдельных компонентов здесь описывается желаемое состояние всей системы целиком в том же configuration.nix или Home Manager-е. Благодаря этому каждое обновление происходит целостно и безопасно: если что-то пошло не так во время апдейта, вы легко вернетесь к предыдущей рабочей конфигурации буквально одной командой nixos-rebuild switch --rollback

3. Воспроизводимая среда. С помощью NixOS ваша рабочая среда становится абсолютно переносимой между машинами. Например, при смене компьютера достаточно скопировать ваш основной конфигурационный файл и запустить сборку заново — система автоматически развернется точно такой же, какой была ранее! Если вы любите менять ОС или в вашей работе есть такая потребность, то **NixOS **это 100% что вам нужно 🍷

4. Изоляция пакетов и управление зависимостями. Каждая версия программного обеспечения хранится отдельно благодаря уникальной структуре хранения (/nix/store), исключающей конфликты между библиотеками и приложениями. Вы можете иметь разные версии одного приложения параллельно, при этом сохранятся ресурсы памяти за счёт автоматической оптимизации дублирующихся элементов

5. Управление пакетами без root-прав. Пользователи сами устанавливают необходимые инструменты локально, создавая собственные профили без вмешательства администратора. Более того, пользователи даже могут сосуществовать с разными версиями одних и тех же приложений без конфликтов, сохраняя безопасность и изоляцию окружения! Данный пункт будет тем более удобен, если всё-таки вы занимаетесь переносом ОС на другие ПК или администрированием 😎

6. Среда разработки без виртуализации. Система Flakes позволяет создавать полноценную среду разработки с нужными инструментами прямо внутри рабочего пространства без необходимости установки сторонних менеджеров вроде pip или npm. Это упрощает процесс и повышает производительность разработчика

🤬 Мой опыт с NixOS

Первые дни работать с данным дистрибутивом достаточно сложно, но не невозможно. И в один момент простота управления, чёткость структуры и высокая надежность смогут вас убедить и дальше пользоваться плюшками данного дистрибутива. Местами сложный, местами грубый, но всё-таки по своему интересный и необычный опыт, который хорошо разминает мозг после привычных дистрибутивов. Да и кроме того, Nix сейчас имеет более 100 000 пакетов в своём репозитории, где точно могут быть пакеты которые нужны вам, может всё-таки стоит попробовать? 🤡