Поиск по сайту:

Nix — мощный менеджер пакетов для Linux и Unix

Некоторое время назад мы писали о Linuxbrew, общем менеджере пакетов для Linux и Mac OS X. Отличительной особенностью Linuxbrew является то, что вы можете устанавливать пакеты без root или sudo. привилегия. Сегодня в этом руководстве мы поговорим об еще одном подобном менеджере пакетов. Встречайте Nix, чисто функциональный и надежный менеджер пакетов для Linux и других вариантов Unix. В отличие от других менеджеров пакетов, он обеспечивает параллельную установку нескольких версий одного и того же пакета, поддержку атомарности и отката, управление пакетами для каждого пользователя, простую настройку сред разработки пакетов и многое другое. Менеджер пакетов Nix изначально был разработан для NixOS, дистрибутива GNU/Linux с уникальным подходом к управлению пакетами и конфигурациями. Первоначально NixOS был запущен как исследовательский проект компанией Eelco Dolstra в 2003 году.

Функции

Менеджер пакетов Nix немного отличается от других менеджеров пакетов Linux с точки зрения функциональности и возможностей. Что касается особенностей, то можно перечислить следующее:

  • Многопользовательская система управления пакетами. Это означает, что у каждого пользователя в системе может быть свой набор установленных пакетов.
  • Пользователи могут устанавливать пакеты без прав root или sudo.
  • Менеджер пакетов Nix хранит пакеты в магазине Nix, обычно в каталоге /nix/store. Каждый пакет имеет свой собственный уникальный подкаталог. Скажем, например, пакет gzip будет храниться в уникальном каталоге /nix/store/c5y9w08xkiz6kvnscpjv3205gyr6iybz-gzip-1.8/ вместе со всеми необходимыми зависимостями и библиотеками.
  • Разные пользователи могут одновременно устанавливать разные версии одного и того же пакета. Это полезно для разработчиков, которые хотят протестировать свои приложения, созданные с использованием различных версий пакетов и зависимостей.
  • Поскольку все пакеты устанавливаются в уникальные каталоги, один пользователь не может вмешиваться (например, удалять, обновлять или обновлять пакеты) в пакеты, установленные другим пользователем. Кроме того, обновление пакета не влияет на другую версию того же пакета или его зависимости.
  • Возможен откат пакетов к предыдущим версиям.
  • Поддержка атомного обновления. Это означает, что при обновлении пакета существующая версия не заменяется. Каждая новая версия будет храниться в новом уникальном каталоге. Поскольку пакет не перезаписывается, старые версии остаются доступными даже после обновления.
  • Неиспользуемые пакеты можно безопасно удалить.
  • Менеджер пакетов, удобный для DevOps. Nix помогает пользователям собирать пакеты из исходников, если они еще недоступны в репозиториях. Таким образом, Nix чрезвычайно полезен для разработчиков, поскольку позволяет легко автоматически настроить среду сборки для пакета.
  • Менеджер пакетов Nix можно использовать в GNU/Linux и Mac OS X.

Теперь мы увидим, как установить менеджер пакетов Nix в Unix-подобных операционных системах.

Установить менеджер пакетов Nix в Linux

Установка менеджера пакетов Nix тривиальна.

Чтобы установить его на свой компьютер Linux, запустите от имени обычного пользователя:

curl https://nixos.org/nix/install | sh

Пример вывода:

 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
 100 2354 100 2354 0 0 833 0 0:00:02 0:00:02 --:--:-- 833
 downloading Nix 1.11.9 binary tarball for x86_64-linux from 'https://nixos.org/releases/nix/nix-1.11.9/nix-1.11.9-x86_64-linux.tar.bz2' to '/tmp/nix-binary-tarball-unpack.SoCHJhv4Vz'...
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
 100 27.3M 100 27.3M 0 0 525k 0 0:00:53 0:00:53 --:--:-- 248k
 performing a single-user installation of Nix...
 directory /nix does not exist; creating it by running ‘mkdir -m 0755 /nix && chown sk /nix’ using sudo
 [sudo] password for sk:
 copying Nix to /nix/store...............................
 initialising Nix database...
 creating /home/sk/.nix-profile
 installing ‘nix-1.11.9’
 building path(s) ‘/nix/store/7dv1lghxz40rbvv9ffg7fq2as972a4r7-user-environment’
 created 6 symlinks in user environment
 downloading Nix expressions from ‘https://d3g5gsiof5omrk.cloudfront.net/nixpkgs/nixpkgs-17.09pre108299.ec9a23332f/nixexprs.tar.xz’...
 downloading ‘https://d3g5gsiof5omrk.cloudfront.net/nixpkgs/nixpkgs-17.09pre108299.ec9a23332f/nixexprs.tar.xz’... [7625/8656 KiB, 403.0 KiB/s]
 unpacking channels...
 created 2 symlinks in user environment
 modifying /home/sk/.bash_profile...

Installation finished! To ensure that the necessary environment
 variables are set, either log in again, or type

. /home/sk/.nix-profile/etc/profile.d/nix.sh

in your shell.

После установки Nix выйдите из системы и снова войдите в нее, чтобы убедиться, что необходимые переменные среды установлены правильно. Альтернативно, чтобы убедиться в этом, запустите следующую команду из терминала.

. /home/sk/.nix-profile/etc/profile.d/nix.sh

Обратите внимание, что в начале стоит точка (.). Если вы не видите никаких результатов, значит, все готово! Менеджер пакетов Nix успешно установлен в вашей системе. Кроме того, добавьте указанную выше строку в PATH своего профиля, чтобы избежать запуска указанной выше команды каждый раз после входа в систему.

Для этого отредактируйте ~/.profile или ~/.bashrc (или аналогичный):

vi ~/.bashrc

Добавьте следующую строку в конце.

. /home/sk/.nix-profile/etc/profile.d/nix.sh

Сохраните и закройте файл. Перезагрузите систему. Теперь вам не нужно запускать указанную выше команду каждый раз после входа в систему.

В следующем руководстве объясняется, как использовать диспетчер пакетов Nix для выполнения общих операций управления пакетами, таких как установка, удаление, обновление, обновление и сборка пакетов.

  • Начало работы с диспетчером пакетов Nix

Ресурс:

  • Веб-сайт Nix

Статьи по данной тематике