Nik - Linux üçin Purely Funksional Package Manager


Nik, GNU LGPLv2.1 şertlerine laýyklykda ygtybarly we köpelip bilýän paket dolandyryşy üçin döredilen güýçli, arassa işleýän paket dolandyryş ulgamy. Linux-yň has az paýlanyşy bolan NixOS-da esasy paket dolandyryş ulgamy.

Nik atom kämilleşdirişleri we yza gaýtaryşlary, paket gurnamagyň birnäçe wersiýasyny, köp ulanyjy paket dolandyryşyny we bir programma üpjünçiliginiň haýsy programma dillerini we gurallaryny ulanýandygyna garamazdan paket üçin gurşaw gurşawyny synap görmegi hödürleýär.

“Nik” -iň aşagynda paketler\Nik aňlatmalary diýilýän funksional paket dilinden gurulýar. Paket dolandyryşyna bu funksional çemeleşme, bir bukjany gurmagyň ýa-da kämilleşdirmegiň beýleki paketleri döwüp bilmejekdigini kepillendirýär.

Şeýle hem, “Nik” -iň köp ulanyjy goldawy bar, bu adaty (ýa-da artykmaç däl) ulgam ulanyjylarynyň paketleri ygtybarly gurnap biljekdigini we her bir ulanyjynyň profil (ulanyjynyň PATH-da görünýän Nik dükanyndaky paketler ýygyndysy) tarapyndan kesgitlenýändigini aňladýar.

Bir ulanyjy paket guran bolsa, başga bir ulanyjy şol bir bukjany gurnamaga synanyşsa, paket ikinji gezek gurulmaz ýa-da göçürilmez.

Häzirki wagtda Linux (i686, x86_64) we Mac OS X (x86_64) goldaýar. Şeýle-de bolsa, gaty göçme, POSIX sapaklaryny goldaýan we C ++ 11 düzüjisi bolan platformalaryň köpüsinde synap bilersiňiz.

Bu makalada Linux-da Nix paket dolandyryjysyny nädip gurmalydygyny (köp ulanyjy re modeiminde) görkezeris. Köplenç ulanylýan gurallar bilen baglanyşykly paket dolandyryş meseleleriniň käbirini ara alyp maslahatlaşarys.

Linux-da Nix Package Manager nädip gurmaly

Niksiň iň soňky wersiýasyny (ýazylanda v2.1.3) köp ulanyjy re iniminde gurarys. Bagtymyza, ulgamyňyzda aşakdaky curl buýrugyny ulanyp, adaty ulanyjy hökmünde gabygyňyzdan işledip boljak taýýar gurnama skripti bar.

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

Aboveokardaky buýrugy işletmek iň soňky nix ikilik tarbolyny göçürip alar we skrinshotda görkezilişi ýaly köp ulanyjy nix gurmak ekranyna düşersiňiz.

Gurmak prosesinde nämeleriň boljakdygyny jikme-jik görmek üçin y ýazyň we Enter basyň. Eger razy bolsaňyz we dowam etdirmäge taýyn bolsaňyz, y ýazyň we Enter basyň.

Scriptazgy, zerur bolanda sudo buýrugyny birnäçe gezek ulanar. y jogap bermek we Enter düwmesini basyp sudo ulanmagyna rugsat bermeli.

Gurnaýjy soňra birnäçe synag geçirer we Nix konfigurasiýa hasabatyny döreder, 30001 bilen 30032 ulanyjy ID-leri we 30000 topar topary bolan topar döreder. Soralanda dowam etmek üçin y giriziň. Dürli gurluşyk ulanyjylary üçin gurluşyk toparlaryny döreder, “Nix” -iň esasy katalog gurluşyny döreder.

Bar bolsa,/etc/bashrc, (we/etc/zshrc) faýly üýtgeder. Ilki bilen görkezilen faýllary .backup-before-nix giňeltmesi bilen ätiýaçlandyrýar we gurnaýjy /etc/profile.d/nix.sh faýlyny hem döredýär.

Gurnaýjy, şeýle hem, nix-daemon hyzmatyny we nix-daemon rozetka hyzmatyny gurar, nix-daemon üçin systemd bölümini ýüklär we ýokarda agzalan iki hyzmaty başlar.

Gurmak gutaransoň, Nix ulanyp başlamak üçin täze terminal penjiresini açmaly. Ativea-da bolmasa, soňky üýtgeşmeleri ulanmak üçin gabygyňyzy ýapyň we açyň. Soňra /etc/profile.d/nix.sh faýlyny gözläň (sebäbi bu gabyk başlangyç faýly däl, täze gaby açmak çeşmesi bolmaz).

$ source /etc/profile.d/nix.sh

Ondan soň, Nikiň işlemegi üçin zerur bolan resmi taslama web sahypasyndan käbir ýollary göçürip almak üçin aşakdaky buýrugy işlediň. Allhli ýollar göçürilip, dogry ýerlere göçürilenden soň, skrinshotda görkezilişi ýaly ulgam we nix gurnama görnüşiniň gysgaça mazmunyny görersiňiz.

$ nix-shell -p nix-info --run "nix-info -m"

Linux-da Nix Package Manager nädip ulanmaly

“Nix” -iň aşagynda bukjany dolandyrmak nix-env kömekçi programmasy tarapyndan amala aşyrylýar. Paketleri gurmak, kämilleşdirmek we aýyrmak/aýyrmak we haýsy paketleriň gurnalandygyny ýa-da gurnamak üçin elýeterlidigini soramak üçin ulanylýar.

Packhli paketler Nix kanalynda ýerleşýär, bu bolsa Nix aňlatmalarynyň ýygyndysyny we ikili keş keşbini görkezýän ammarlary görkezýän URL.

Bellenen kanal Nixpkgs we abuna ýazylan kanallaryň sanawy ~/.nix-kanallarda saklanýar, aşakdaky buýrugy ulanyp sanap bilersiňiz (hiç hili kanal ýok diýmek däl).

$ nix-channel --list

Nik kanalyny goşmak üçin aşakdaky buýrugy ulanyň.

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

Islendik paket gurmazdan ozal, “Nix” kanalyny täzeläp başlaň; bu, APT paket dolandyryjysynyň aşagyndaky apt täzelenmesine meňzeýär.

$ nix-channel --update

Aşakdaky buýrugy ulanyp gurnamak üçin haýsy paketleriň bardygyny sorap bilersiňiz.

$ nix-env -qa

Bu mysalda, görkezilişi ýaly gurnamak üçin elýeterli bukjany tapmak üçin grep gurarys.

$ nix-env -qa | grep "apache-tomcat"

Bukja gurmak üçin, paket wersiýasyny görkezip, aşakdaky buýrugy ulanyň, mysal üçin apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

Systemerli ulgamda, Nix paketleri Nix dükanynda saklaýar, bu her paketiň özboluşly kiçi bukjasy bolan/nix/store katalogy. Mysal üçin, apache-tomcat paketleri şu ýerde saklanýar:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

Bu ýolda, 95gmgnxlrcpkhlm00fa5ax8kvd6189py tötänleýin nyşanlar, ähli baglylyklary göz öňünde tutýan paket üçin özboluşly kesgitleýji.

Gurlan paketleri aşakdaky buýruk bilen sanap bilersiňiz.

$ nix-env -q

Apache-tomcat paketini täzelemek üçin, görkezilişi ýaly -u täzelenme wyklýuçatelini ulanyp bilersiňiz.

$ nix-env -u apache-tomcat

Apache-tomcat aýyrmak/pozmak isleseňiz, -e baýdagyny ulanyň. Bu ýerde bir paket ulgamdan derrew pozulmaýar, diňe ulanylmaýar. Bu peýdaly, sebäbi yza gaýdyp gelmek isleýärsiňiz ýa-da beýleki ulanyjylaryň profilinde bolup biler.

$ nix-env -e apache-tomcat

Bukjany aýyranyňyzdan soň, nix-collect-zibil kömegi bilen zibil ýygnamagy edip bilersiňiz.

$ nix-collect-garbage

Linux-da Nix Package Manager-i nädip aýyrmaly

Niks-i aýyrmak üçin, bir gezekde ähli nik bilen baglanyşykly faýllary aýyryň.

$ sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

Systemd ulgamlarynda ähli nix bilen baglanyşykly hyzmatlary duruzmak we öçürmek üçin aşakdaky buýruklary işlediň.

$ sudo systemctl stop nix-daemon.socket
$ sudo systemctl stop nix-daemon.service
$ sudo systemctl disable nix-daemon.socket
$ sudo systemctl disable nix-daemon.service
$ sudo systemctl daemon-reload

Mundan başga-da, bu faýllardaky Nix-e salgylanmalary aýyrmaly:/etc/profile,/etc/bashrc, we/etc/zshrc.

Has giňişleýin maglumat üçin seredip geçen ýokardaky kömekçi enjamlaryň adam sahypalaryna serediň.

$ man nix-channel
$ man nix-env

Nix Package Manager resminamalaryny taslama web sahypasynda tapyp bilersiňiz: https://nixos.org/nix/.

Nik, ygtybarly we köpelip bilýän paket dolandyryşy üçin döredilen, diňe işleýän paket dolandyryjysy. Linux-da APT ýaly köp ulanylýan gurallardan gaty tapawutly paket dolandyryşy barada gyzykly düşünje berýär.

Bu makalada, köp ulanyjy re modeiminde nix nädip gurmalydygyny görkezdik we Nix bilen paket dolandyryşyny nädip etmelidigini ara alyp maslahatlaşdyk. Pikirleriňizi biziň bilen paýlaşyň ýa-da aşakdaky düşündiriş formasy arkaly sorag beriň. Ahyrynda, indiki makalada has köp Nix paket dolandyryş buýruklaryny düşündireris. Oňa çenli baglanyşykda boluň.