Какво прави NixOS Package Manager?
Повечето мениджъри на пакети използват файл, който съдържа изпълнимия или изходния код. След това изчисляват от какво се нуждае системата и след това се уверяват, че тя съществува. В Nix нещата работят много подобно. Голямата разлика е, че Nix създава всички файлове и ги компилира, ако е необходимо, след което ги поставя на едно място; магазина nix. Първият въпрос, който имате, може да бъде: „Дали файловете няма да имат едно и също име?”Системата избягва това, като разполага с по една директория за всяка версия И именува всички файлове с хеш. За да накара приложението да се чувства като у дома си, всички зависимости след това се свързват с правилните им директории, като се използват обикновени символни връзки. Профилът проследява коя версия изпълнява всеки потребител.
Потребителски инсталирания на NixOS
С тази система можете да инсталирате различни версии в директорията на всеки потребител. Ако те са едни и същи при няколко потребители, администраторът може да позволи на Nix да свърже повторно двоични файлове, така че да съществува само по едно в даден момент. Това е полезно за спестяване на дисково пространство. Можете също така да създадете специфични среди за всяка версия на пакета. Това е особено полезно, когато искате да тествате нова версия или да разработите софтуер.
Инсталиране за общо разпространение
За най-често срещаните платформи можете да инсталирате Nix, мениджъра на пакети с прост скрипт. Този скрипт е достъпен на уебсайта на Nix. Скриптът ще се нуждае от root потребителски достъп, но ако сте много съобразени със сигурността, трябва да прочетете скрипта, преди да го използвате. Ако искате да избегнете използването на root в скрипта, просто създайте директорията / nix във вашата система.
$ ш <(curl -L https://nixos.org/nix/install)Ако нямате root достъп или просто сте много предпазливи, можете да имате Nix като мениджър на пакети само за потребители.
$ ш <(curl -L https://nixos.org/nix/install) -no-daemonТози двоичен файл работи добре за повечето, ако не и за всички дистрибуции. Платформите са x8664, т.е?86, aarch64 и x8664-darwin, които покриват почти всички налични платформи. Ако използвате други платформи, вероятно можете да използвате изходния код и да създадете свой собствен. Когато инсталацията приключи, ще имате куп нови команди.
Добавяне на първата ви програма към NixOS
За да инсталирате софтуер и да зададете кога може да се използва, имате nix-env. Опцията за инсталиране (-i) е най-често срещаната, тъй като я използвате винаги и поставяте пакет като аргумент.
$ nix-env -i firefoxТова изглежда по същия начин, както при другите дистрибуции, както и аргументът за заявка. Инсталацията обаче ще отнеме известно време. Причината е, че той трябва да компилира софтуера, освен ако в кеш Nix няма предварително компилирана версия. Достигането до кеша също не винаги е много бързо. Има разлика, която трябва да вземете под внимание; можете да изберете версия! Ако искате специална версия, трябва да намерите кои са налични с помощта на регулярни изрази.
$ nix-env -qa 'firefox.* 'Ще получите списък с всички налични пакети. Можете да го инсталирате по същия начин, но като използвате стойността в списъка.
$ nix-env -инсталирайте 'firefox-78.4.0ser '-запазване-инсталиранТова може да се провали, ако вече имате инсталирана версия. Опцията '-preserve-installed' няма да изтрие инсталираната версия. Може да се окажете с две версии с един и същ приоритет, които можете да коригирате, като зададете приоритета.
$ nix-env -set-flag приоритет 2 'firefox-82.0.2 'Сега ще стартирате старата версия при следващото стартиране на Firefox. За да превключите кой от тях изпълнявате, можете съответно да зададете приоритета. Можете също така да стартирате черупка, за да изберете двоичен файл. Това е опция за разработчици и командата е nix-shell.
Актуализиране на NixOS
След като имате колекция от софтуер, искате да останете актуализирани. Както винаги, вие използвате същата команда с аргумент. Но вие също трябва да поддържате канала актуализиран. Командата е nix-channel.
$ nix-channel -updateТова чете текущите версии на всички налични пакети. След това можете да започнете да надграждате софтуера си с nix-env.
$ nix-env -upgradeПодобна надстройка ще надстрои старата ви версия на софтуера. В този случай старият Firefox ще бъде заменен с най-новата версия. Може да не искате това по някаква причина, обикновено развитие.
Премахване на приложения от NixOS
Премахването на приложения е също толкова просто, с малко предупреждение. Не се премахват приложения с команда за премахване.
$ nix-env -деинсталирайте 'firefox-78.4.0ser 'Тази команда ще премахне връзките към текущата компилация на тази версия на Firefox. Всички файлове винаги ще останат на диск. Имате тези версии на разположение, за да направите възстановяване. Възстановяването означава, че се връщате към използването на старата версия. Това може да бъде полезно, ако сте изпробвали най-новото и има непредвидени проблеми.
$ nix-env -rollbackОтменяте цяло поколение, което означава всички програми, които са надстроени от последното поколение. Опцията изпълнява две команди; този списък и след това преминава към това старо поколение. Всички инсталирани пакети съществуват в поколение на диск.
Отмяна и почистване на NixOS
Функцията за връщане ще доведе до много дисково пространство, използвано от старите версии. Можете да почистите това (трябва да го почистите!). Когато имате достатъчно дълъг период, по ваш избор, можете също да почистите тези стари поколения, за да спестите дисково пространство.
$ nix-env -delete-generations oldС тази команда изтривате всички поколения с изключение на двете последни. Можете да вървите напред-назад в списъка с по-сложни параметри, за да оставите конкретното поколение, което е работило най-добре за вас. Освен ако нямате много проекти за тестване или разработка, които се нуждаят от много версии за тестване, трябва да използвате планирано премахване на всички стари поколения.
Един прост скрипт за поддържане на чистотата на вашите поколения идва с инсталирането на Nix package manager.
$ nix-collect-garbageТрябва също така да настроите колектора да работи автоматично, използвайки systemd или други системи.
Заключение
Мениджърът на пакети Nix е мощна система, която може да ви накара да управлявате сложни среди за разработка на вашата машина. Можете също да го използвате, за да поддържате вашия софтуер подреден и да имате лесен начин за възстановяване на нова машина, в случай че се случи катастрофата при срив на диска.