NixOS

NixOS


NixOS удивительный проект с очень хорошей документацией и большим мега-активным сообществом (NixOS). Поэтому нет смысла дублировать документацию, опишу лишь некоторые команды в сравнении с пакетным менеджером apt.

Установка пакетов:

apt

  • $ sudo apt-get install firefox python vim

nix

  • $ nix-env -i firefox python vim

Удаление:

apt

  • $ sudo apt-get remove python

nix

  • $ nix-env -e python

Обновление реп:

apt

  • $ sudo apt-get update

nix

  • $ nix-channel –update

Обновление пакетов:

apt

  • $ sudo apt-get upgrade

nix

  • $ nix-env -u

Информация о пакете:

apt

  • $ apt-cache search vim

nix

  • $ nix-env -qaP grep vim

Описание пакета:

apt

  • $ apt-cache show vim

nix

  • $ nix-env -qaP –description grep vim

Вопрос:

Как я могу убедиться, что все пакеты, которые я устанавливаю при установке системы nixos (т.е. пакеты, перечисленные в /etc/nixos/configuration.nix, которые я устанавливаю с помощью sudo nixos-rebuild switch), используют последнюю (нестабильную) версию nixos/nixpkgs?

Лучший ответ:

Как объяснено в в разделе руководства по обновлению, если вы выполните следующую команду с правами root:

  • nix-channel –list

вы, скорее всего, увидите что-то вроде следующего (если вы, например, следили за ветвью 16.09):

  • nixos https://nixos.org/channels/nixos-16.09

Выпустив следующую команду (все еще как root):

  • nix-channel –add https://nixos.org/channels/nixos-unstable nixos

вы удалите канал 16.09 и замените его на nixos-unstable.

Теперь этого пока недостаточно. Чтобы действительно обновить вашу систему, вам понадобится одна последняя команда:

  • nixos-rebuild switch –upgrade

который собирается перестроить вашу систему с вашей текущей конфигурацией и обновленными пакетами с канала, на который вы переключились.

Ответ №1

Выполните следующие команды:

  • sudo nix-channel –add https://nixos.org/channels/nixos-unstable

  • sudo nix-channel –add https://nixos.org/channels/nixpkgs-unstable

Обратите внимание, что требуется sudo: если вы не используете sudo, это будет влиять только на пакеты пользовательского уровня (т.е. вещи, которые вы устанавливаете с помощью nix-env -i), а не на пакеты системного уровня.

откаты системы:

  • nix-env –list-generations

  • sudo nix-channel –rollback