NixOS - это дистрибутив Linux с особым подходом к управлению пакетами и конфигурацией. NixOS построен на основе диспетчера пакетов Nix, который является декларативным и делает обновление систем надежным посредством атомарных обновлений и моментальных снимков пакетов. Nix также обеспечивает возможность отката вперед и назад через моментальные снимки пакетов, которые он называет поколениями, позволяя администратору откатывать изменения или переходить вперед по доступным версиям. Поскольку пакетные транзакции являются атомарными, это означает, что обновления и установки не приведут к поломке операционной системы в случае сбоя питания. Администратор может просто вернуться к исходному снимку установленных пакетов.
Nix может использовать декларативную конфигурацию, то есть мы можем использовать один и тот же файл конфигурации системы на нескольких машинах, чтобы все они были настроены одинаково, без необходимости использования клонирования диска.
В репозитории Nix более 60 000 пакетов. Поскольку Nix может быть установлен в большинстве дистрибутивов Linux, он обеспечивает отличный репозиторий программного обеспечения для любого дистрибутива, в котором мы хотим установить менеджер пакетов Nix.
Еще в 2017 году я говорил о запуске Nix на Debian. Тогда в репозитории Nix было всего 12860 пакетов. Репозиторий вырос, но советы по установке и запуску Nix остались прежними.
Существует две редакции NixOS. Первая - это Graphical edition, которая представляет собой 64-битную (x86_64) сборку и включает рабочий стол KDE Plasma. Версия Graphical - это образ объемом 1,2 ГБ. Другая редакция предоставляет минимальный интерфейс командной строки. Меньшая версия доступна в 32-битной и 64-битной сборках, а ее размер составляет примерно 550 МБ.
Последняя версия NixOS включает в себя в основном обновления пакетов, в результате чего KDE Plasma и GNOME обновляются до их стабильных исходных версий. Между тем менеджер пакетов Nix распознает более широкий спектр услуг и программ, которые мы можем включить.
Live-носитель
Я решил попробовать графическую версию NixOS. При загрузке с носителя появляется меню, в котором нам предлагается запустить рабочий стол Plasma с одним из трех вариантов: обычная загрузка, отказоустойчивый режим или запуск дистрибутива из ОЗУ. Выбор любого из этих параметров загружает рабочий стол KDE Plasma. Панель, содержащая меню приложений, переключатель задач и панель задач, находится в нижней части экрана. Значки на рабочем столе запускают GParted, открывают виртуальный терминал Konsole и руководство по NixOS. Руководство представляет собой локально сохраненную веб-страницу, которая открывается в Firefox. Это руководство очень полезно и содержит советы по использованию и установке операционной системы. Поскольку NixOS не имеет установщика системы в обычном понимании, я рекомендую прочитать руководство, чтобы узнать, как начать работу с операционной системой.
Установка
Когда дело доходит до установки NixOS, руководство указывает на несколько вещей, которые нам нужно сделать заранее. Например, нам нужно иметь работающее интернет-соединение. Нам также нужно выделить хотя бы один раздел на диске и отформатировать его. Эти шаги не выполняются за нас, но NixOS включает сетевые инструменты и редактор разделов GParted, чтобы помочь нам.
Когда у нас есть необходимый раздел, нам нужно смонтировать его в каталог /mnt и отредактировать файл конфигурации Nix. Этот файл объясняет Nix, как настроить операционную систему, это как рецепт. К счастью для нас, файл в основном заполнен хорошими значениями по умолчанию. Также есть много дополнительных функций, перечисленных в файле в комментариях. Это позволяет нам просто редактировать существующие строки, чтобы включить некоторые общие службы и настроить учетную запись пользователя.
После редактирования файла Nix мы запускаем скрипт установки, который настраивает операционную систему в соответствии с правилами, изложенными в файле. Нас также просят придумать пароль для учетной записи root. На этом этапе система полностью готова к работе, и мы можем перезагрузиться, чтобы попробовать нашу локальную копию NixOS.
Первые впечатления
Запуск моей новой копии NixOS вызвал графический экран входа в систему. По умолчанию экран входа предполагает, что мы хотим войти в систему как первый пользователь без полномочий root. Однако на этом этапе у меня не было возможности задать пароль для учетной записи, и я не мог войти в систему как обычный пользователь. Мы можем переключиться на консоль или нажать кнопку в нижней части экрана, чтобы войти в систему как root и задать пароль пользователя.
Как только я вошел в систему как обычный пользователь, запустился сеанс KDE Plasma. Интерфейс имеет светлую тему с панелью в нижней части экрана, как это было в живом сеансе. Иконки на рабочем столе для GParted, Konsole и руководства исчезли. Руководство все еще установлено, нам просто нужно просмотреть меню приложений, чтобы найти его. Также отсутствует веб-браузер Firefox. Он присутствует в живом сеансе, но не включен в установленную версию NixOS, что означает, что мы не можем открыть руководство, чтобы прочитать его в браузере. Мы можем добавить веб-браузер позже, используя менеджер пакетов Nix.
Поддержка железа
Я начал тестировать NixOS в VirtualBox и обнаружил, что система в целом работает хорошо. Производительность десктопа была хорошей, а система - стабильной. Загрузка программ и запуск рабочего стола Plasma происходили медленнее, чем в среднем, но в остальном рабочий стол был отзывчивым. При работе в VirtualBox рабочий стол Plasma не изменял размер автоматически, когда я менял размеры его окна. Однако я мог изменить разрешение рабочего стола на панели «System Settings» (чтобы быть более точным, я вообще не мог изменить размер рабочего стола Plasma, используя настройки видео по умолчанию VirtualBox. Мне пришлось переключиться с VMSVGA на контроллер VBoxVGA в настройках моего хоста, чтобы иметь возможность изменять размер рабочего стола).
Когда я попытался запустить NixOS на своем ноутбуке, все прошло хорошо. Программы загружались быстро, использовалось мое полное разрешение экрана и беспроводная сеть распозналась.
Новая установка NixOS относительно легкая и использует около 370 МБ памяти при входе в Plasma. Новая установка занимала около 4,1 ГБ дискового пространства. В большинстве случаев NixOS не использовала много ресурсов ЦП, хотя некоторые действия по управлению пакетами загружали ЦП и дисковый ввод-вывод, и могли замедлить работу.
Приложения
Новая установка NixOS с конфигурацией по умолчанию включает очень мало приложений. Кроме виртуального терминала Konsole, справочной документации KDE и панели настройки рабочего стола System Settings, здесь мало что можно найти.
Нет ни компилятора, ни веб-браузера, ни офисного пакета. На заднем плане мы находим обычную коллекцию утилит командной строки GNU и страниц руководства. systemd предоставляет программу инициализации дистрибутива. Новая установка выполняется на ядре Linux версии 5.4.
При запуске NixOS я заметил, что при вводе в терминале имени команды, которая еще не была установлена, появляется сообщение о том, какую команду Nix нам нужно запустить, чтобы установить недостающую программу. Это происходит быстро и не сильно нарушает рабочий процесс.
Вначале я обнаружил, что всякий раз, когда я пытался подключиться к новой беспроводной сети, система запрашивала у меня пароль кошелька. Это раздражающая функция, и это означало, что мне иногда приходилось несколько раз пытаться подключиться к новой сети, прежде чем система примет мой пароль Wi-Fi без соответствующего пароля кошелька.
Nix
Хотя NixOS можно использовать как повседневную операционную систему, она в основном существует как платформа для демонстрации мощного менеджера пакетов Nix. По большей части использование Nix похоже на использование большинства других менеджеров пакетов командной строки. Мы можем запустить «nix-env -i <имя пакета>», чтобы установить новую программу, «nix-env -e <имя пакета>», чтобы удалить элемент. Команда «nix-env -u» обновляет программное обеспечение, а «nix-env -qa <pattern>» выполняет поиск. Хотя выполняемые нами команды выглядят знакомо и дают результаты, аналогичные эквивалентным действиям APT и pacman, Nix делает несколько вещей по-другому.
Например, установка Nix является атомарной, а это означает, что если во время обновления питание отключается, с вашими пакетами или базой данных пакетов ничего плохого не произойдет. Мы можем просто перезагрузить компьютер и начать процесс заново. Еще одна интригующая функция - Nix создает снимки своих пакетов. Эти снимки состояния называются поколениями, и каждый раз, когда мы устанавливаем, удаляем или обновляем программное обеспечение, Nix фактически делает снимок установленного нами программного обеспечения. Затем мы можем почти мгновенно переключаться между снимками пакетов. На практике это означает, что мы можем откатить любое изменение, которое нарушает работу системы или вносит ошибку, выполнив «nix-env --rollback».
Мы также можем переходить к новым снимкам. Это особенно удобно, если мы хотим протестировать две версии одного и того же программного обеспечения. Мы можем запустить приложение, откатиться к предыдущей версии, а затем мгновенно перейти к более новому снимку состояния, чтобы снова протестировать новую версию. Мы можем увидеть список доступных снимков, выполнив "nix-env --list-generations".
Некоторые люди беспокоятся о том, что эти поколения будут использовать дополнительное дисковое пространство. Однако места для них требуется немного, по крайней мере, в краткосрочной перспективе. Через несколько недель после установки обновлений лишнее пространство даже не заметно. Тем не менее, для тех, кто заботится о дисковом пространстве, мы можем отказаться от старых поколений, чтобы освободить место.
Еще одна приятная особенность Nix заключается в том, что он обрабатывает конфигурацию операционной системы, а не только пакетов. Это, в сочетании с воспроизводимыми сборками Nix, означает, что мы можем взять файл конфигурации (рецепта) с одного компьютера и использовать его для установки NixOS на другой компьютер. У нас должны получиться идентичные операционные системы на каждой машине.
Короче говоря, Nix - отличный менеджер пакетов. Его функции, наряду с возможностью работать вместе с другими менеджерами пакетов в других дистрибутивах, делают его очень привлекательным инструментом. Однако у него есть несколько проблем. Я обнаружил, что Nix иногда работал медленнее по сравнению с другими основными менеджерами пакетов и не отображал почти никакой информации о ходе работы. Иногда это выглядит так, будто команда nix-env перестала работать. Фактически, однажды мне потребовалось некоторое время, чтобы понять, что рабочий стол завис и перестал отвечать, когда Nix устанавливал обновления программного обеспечения. Однако помимо этих мелких проблем, Nix довольно мощный и полезный инструмент, особенно для людей, которым нужна дополнительная надежность или которые хотят иметь возможность быстро откатить изменения программного обеспечения.
Заключение
Сам по себе дистрибутив NixOS ничем особо не выделяется. Помимо того, что у него очень минималистичный и очень удобный сеанс KDE Plasma, дистрибутив (с практической точки зрения) не очень привлекает пользователей. NixOS в основном функционирует как платформа для демонстрации Nix и демонстрации того, как можно формировать, управлять и даже реплицировать дистрибутив с помощью его диспетчера пакетов.
Репозиторий Nix стремительно вырос, добавив десятки тысяч новых пакетов за последние три года. Эти пакеты воспроизводимы, устанавливаются и обновляются атомарно, и их можно откатить практически мгновенно. Подход Nix к обеспечению безопасности транзакций с программным обеспечением и упрощению переключения между установленными версиями программ делает его очень привлекательным.
В последние годы некоторые файловые системы, такие как Btrfs и ZFS, также добавили моментальные снимки на уровне файловой системы, а не на уровне диспетчера пакетов. Это, на мой взгляд, нивелирует одно из основных преимуществ Nix. Однако Nix может работать с любой файловой системой Linux, избегая накладных расходов, связанных с расширенными файловыми системами, и работает независимо от дистрибутива (и любого другого установленного диспетчера пакетов). Это делает Nix очень привлекательным способом получить доступ к большему количеству программного обеспечения и дает возможность экспериментировать с новыми пакетами с минимальным риском. Независимо от того, пробовали вы NixOS или нет, я настоятельно рекомендую установить и попробовать Nix, особенно если вы следите за новейшими пакетами и хотите защитить свою систему от проблем из-за обновлений.
Оригинал: Review: NixOS 20.03
Комментариев нет:
Отправить комментарий