Как использовать диспетчер пакетов(FM) NixOS

Как использовать диспетчер пакетов(FM) NixOS


#nix #установканикс #установкаnix

Что делает диспетчер пакетов Nix(FM)?

Большинство диспетчеров пакетов используют файл, содержащий исполняемый файл или исходный код. Затем они вычисляют, что ему нужно в системе, а затем проверяют его наличие. В Nix все работает очень похоже. Большая разница в том, что Nix создает все файлы и при необходимости компилирует их, а затем помещает в одно место; nix-store. Первый вопрос, который у вас может возникнуть, будет: «У файлов разные имена?» Система избегает этого, создавая по одному каталогу для каждой версии и называя все файлы хешем. Чтобы приложение «чувствовало себя как дома», все зависимости затем связываются с их правильными каталогами с помощью обычных символических ссылок. Профиль отслеживает, какую версию использует каждый пользователь.

Многопользовательская установка Nix(FM) (рекомендуется)

  • $ sh <(curl -L https://nixos.org/nix/install) –daemon

Мы рекомендуем многопользовательскую установку, если вы работаете в Linux с systemd, с отключенным SELinux и вы можете пройти аутентификацию с помощью sudo. Однопользовательская установка

Установите Nix(FM) через однопользовательская установка

$ sh <(curl -L https://nixos.org/nix/install) –no-daemon

Приведенная выше команда выполнит однопользовательскую установку Nix, что означает что /nix принадлежит вызывающему пользователю. Вы должны бежать это под вашей обычной учетной записью пользователя, а не как root. скрипт вызовет sudo создавать /nix если его еще не существует.

Какой тип установки выбрать?

Это зависит от ваших требований, но вот краткий список Причины, по которым мы рекомендуем многопользовательскую установку

Плюсы

Лучшая изоляция сборки (и это то, что касается Nix)
Лучшая безопасность (сборка не может быть записана где-то в вашем доме)
Обмен сборками между пользователями

Минусы

Требует root запустить демон
Более сложная установка (создание nixbld* users, установка модуля systemd, ...
Сложнее удалить

Добавление вашей первой программы в NixOS

Для установки программного обеспечения и настройки, когда оно может быть использовано , у вас есть nix-env. Параметр установки (-i) является наиболее распространенным, поскольку вы всегда используете его и указываете пакет в качестве аргумента.

- $ nix-env -i firefox

- $ nix-env -iA nixpkgs.ripgrep-all

Это выглядит так же, как в других дистрибутивах, как и аргумент запроса. Однако установка займет некоторое время. Причина в том, что он должен скомпилировать программное обеспечение, если в Nix Cache нет предварительно скомпилированной версии. Добраться до кеша тоже не всегда очень быстро. Есть разница, на которую вы должны обратить внимание; вы можете выбрать версию! Если вам нужна специальная версия, вы должны найти, какие из них доступны, используя регулярные выражения..

  • $ nix-env -qa ‘firefox. *’

Вы получите список всех доступных пакетов. Вы можете установить его таким же образом, но используя значение из списка.

  • $ nix-env –install ‘firefox-78.4.0ser’ –preserve-installed

Это может привести к сбою, если у вас уже есть установленная версия. Опция «–preserve-installed» не удаляет установленную версию. У вас может получиться две версии с одинаковым приоритетом, что вы можете исправить, установив приоритет.

  • $ nix-env –set-flag priority 2 ‘firefox-82.0. 2 ‘

Теперь вы запустите старую версию при следующем запуске Firefox. Чтобы выбрать, какой из них вы запускаете, вы можете установить соответствующий приоритет. Вы также можете запустить оболочку, чтобы выбрать двоичный файл. Это вариант разработчика, и это команда nix-shell.

Где находятся установленные пакеты(программы)

Nix — чисто функциональный менеджер пакетов . Это означает, что это рассматривает пакеты как значения в чисто функциональных языках программирования такие как Haskell — они построены с помощью функций, у которых нет побочные эффекты, и они никогда не меняются после создания. Никс хранит пакеты в магазине Nix , обычно в каталоге /nix/store, где каждый пакет имеет свой собственный уникальный подкаталог, например как

  • /nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/

где b6gvzjyb2pg0…уникальный идентификатор пакета, который фиксирует все его зависимости.

Обновление Nix(FM)

Если у вас есть коллекция программного обеспечения, вы хотите оставаться в курсе. Как всегда, вы используете ту же команду с аргументом. Но вы также должны постоянно обновлять канал. Это команда nix-channel.

  • $ nix-channel –update

Читает текущие версии всех доступных пакетов . После этого вы можете начать обновление своего программного обеспечения с помощью nix-env.

  • $ nix-env –upgrade

Обновление, подобное это обновит вашу старую версию программного обеспечения. В этом случае старый Firefox будет заменен на новейшую версию. Вы можете не захотеть этого по какой-либо причине, обычно при разработке.

Удаление приложений из Nix(FM)

Удаление приложений также просто, но с небольшой оговоркой. Никакие приложения не удаляются командой удаления.

  • $ nix-env –uninstall ‘firefox-78.4.0ser’

Это Команда удалит ссылки на текущую сборку этой версии Firefox. Все файлы всегда останутся на диске. У вас есть эти версии для отката. Откат означает, что вы вернетесь к старой версии. Это может быть полезно, если вы пробовали новейшую версию и у нее возникли непредвиденные проблемы.

  • $ nix-env –rollback

Вы откатить целое поколение, то есть все программы, которые были обновлены с момента последнего поколения. Опция запускает две команды; этот список, а затем переключается на старые поколения. Все установленные пакеты существуют в поколении на диске.

Откат Nix(FM) и очистка

Функция отката приведет к тому, что старые версии. Вы можете очистить это (вам нужно это очистить!). Когда у вас будет достаточно продолжительный период, по вашему выбору, вы также можете очистить эти старые поколения, чтобы сэкономить место на диске.

  • $ nix-env –delete-generations old

С помощью этой команды вы удаляете все поколения, кроме двух последних. Вы можете перемещаться взад и вперед по списку с более сложными параметрами, чтобы оставить конкретное поколение, которое лучше всего подходит для вас.. Если у вас нет многих проектов тестирования или разработки, которым требуется много версий для тестирования, вам следует использовать запланированное удаление всех старых поколений.

Простой скрипт для поддержания чистоты ваших поколений поставляется с установкой диспетчера пакетов Nix. .

  • $ nix-collect-garbage

Вы также должны настроить сборщик для автоматического запуска с использованием systemd или других систем.