Nix - Kidhibiti Kifurushi Kinachofanya Kazi Kwa Linux


Nix ni mfumo wenye nguvu, unaofanya kazi kikamilifu wa usimamizi wa kifurushi ulioundwa kwa ajili ya usimamizi wa kifurushi unaotegemewa na unaozalishwa tena, iliyotolewa chini ya masharti ya GNU LGPLv2.1. Ni mfumo msingi wa usimamizi wa kifurushi katika NixOS, usambazaji wa Linux unaojulikana kidogo.

Nix inatoa uboreshaji wa atomiki na urejeshaji nyuma, matoleo mengi ya usakinishaji wa vifurushi, usimamizi wa vifurushi vya watumiaji wengi na usanidi rahisi wa mazingira ya kifurushi, bila kujali lugha na zana za programu ambazo msanidi anatumia.

Chini ya Nix, vifurushi hujengwa kutoka kwa lugha ya kifurushi tendaji inayoitwa \Nix usemi. Mbinu hii ya utendaji ya usimamizi wa kifurushi huhakikisha kwamba kusakinisha au kuboresha kifurushi kimoja hakuwezi kuvunja vifurushi vingine.

Nix pia ina usaidizi wa watumiaji wengi, ambayo inamaanisha kuwa watumiaji wa mfumo wa kawaida (au wasio na upendeleo) wanaweza kusakinisha vifurushi kwa usalama na kila mtumiaji anatambuliwa na wasifu (mkusanyiko wa vifurushi katika duka la Nix vinavyoonekana kwenye PATH ya mtumiaji).

Ikiwa mtumiaji mmoja amesakinisha kifurushi, ikiwa mtumiaji mwingine atajaribu kusakinisha kifurushi sawa, kifurushi hakitajengwa au kupakuliwa mara ya pili.

Kwa sasa inasaidia Linux (i686, x86_64) na Mac OS X (x86_64). Walakini, inabebeka, unaweza kuijaribu kwenye majukwaa mengi ambayo yanaauni nyuzi za POSIX na kuwa na mkusanyaji wa C++11.

Katika nakala hii, tutaonyesha jinsi ya kusanikisha (katika hali ya watumiaji wengi) na kutumia meneja wa kifurushi cha Nix kwenye Linux. Tutajadili baadhi ya kazi za msingi za usimamizi wa kifurushi kuhusiana na zana zinazotumiwa sana.

Jinsi ya Kufunga Kidhibiti cha Kifurushi cha Nix kwenye Linux

Tutasakinisha toleo jipya zaidi la Nix (v2.1.3 wakati wa kuandika) katika hali ya watumiaji wengi. Kwa bahati nzuri, kuna hati ya usakinishaji iliyoandaliwa tayari ambayo unaweza kukimbia kutoka kwa ganda lako kama mtumiaji wa kawaida kwa kutumia amri ifuatayo ya curl kwenye mfumo wako.

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

Kuendesha amri iliyo hapo juu kutapakua tarball ya hivi punde ya nix, na utatua kwenye skrini ya usakinishaji ya nix ya watumiaji wengi kama inavyoonyeshwa kwenye picha ya skrini.

Ili kuona orodha ya kina ya kile kitakachotokea wakati wa usakinishaji, chapa y na ubonyeze Enter. Ikiwa umeridhika na uko tayari kuendelea, chapa y na ubonyeze Enter.

Hati itaomba amri ya sudo mara nyingi kama inahitajika. Unahitaji kuiruhusu kutumia sudo kwa kujibu y na kugonga Enter.

Kisha kisakinishi kitaendesha majaribio machache na kutoa ripoti ya usanidi wa Nix, kuunda watumiaji wa kujenga kati ya Vitambulisho vya mtumiaji 30001 na 30032, na kikundi kilicho na Kitambulisho cha kikundi 30000. Weka y ili kuendelea unapoombwa. Itaanzisha vikundi vya ujenzi kwa watumiaji tofauti wa ujenzi, tengeneza muundo wa saraka ya msingi ya Nix.

Itarekebisha faili /etc/bashrc, (na /etc/zshrc kwa zsh) ikiwa zipo. Kumbuka kwamba kwanza huhifadhi nakala za faili zilizotajwa kwa kiendelezi cha .backup-before-nix na kisakinishi pia huunda faili /etc/profile.d/nix.sh.

Kisakinishi pia kitaanzisha huduma ya nix-daemon na huduma ya soketi ya nix-daemon, hupakia kitengo cha systemd kwa nix-daemon na kuanza huduma mbili zilizotajwa hapo juu.

Mara baada ya usakinishaji kukamilika, unahitaji kufungua dirisha la terminal ili kuanza kutumia Nix. Vinginevyo, funga na ufungue tena ganda lako ili kutumia mabadiliko ya hivi majuzi. Kisha chanzo faili /etc/profile.d/nix.sh (kwa sababu sio faili ya kuanza kwa ganda, kufungua ganda mpya haitaitoa).

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

Ifuatayo, endesha amri ifuatayo ili kupakua baadhi ya njia kutoka kwa tovuti rasmi ya mradi, inayohitajika kwa Nix kufanya kazi. Baada ya njia zote kupakuliwa na kunakiliwa kwa maeneo sahihi, utaona mfumo na muhtasari wa aina ya usakinishaji nix kama inavyoonyeshwa kwenye picha ya skrini.

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

Jinsi ya kutumia Kidhibiti cha Kifurushi cha Nix kwenye Linux

Chini ya Nix, usimamizi wa kifurushi unafanywa na matumizi ya nix-env. Inatumika kusakinisha, kuboresha, na kuondoa/kufuta vifurushi, na kuuliza ni vifurushi vipi vimesakinishwa au vinavyopatikana kwa usakinishaji.

Vifurushi vyote viko katika chaneli ya Nix, ambayo ni URL inayoelekeza kwenye hazina inayojumuisha mkusanyiko wa misemo ya Nix na kielekezi kwa kache ya binary.

Chaneli chaguo-msingi ni Nixpkgs na orodha ya vituo unavyofuatilia huhifadhiwa katika ~/.nix-channels, unaweza kuorodhesha kwa kutumia amri ifuatayo (hakuna matokeo inamaanisha hakuna chaneli).

$ nix-channel --list

Ili kuongeza chaneli ya Nix, tumia amri ifuatayo.

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

Kabla ya kusakinisha vifurushi vyovyote, anza kwa kusasisha kituo cha Nix; hii ni sawa na kusasisha apt chini ya msimamizi wa kifurushi cha APT.

$ nix-channel --update

Unaweza kuuliza ni vifurushi gani vinavyopatikana kwa usakinishaji kwa kutumia amri ifuatayo.

$ nix-env -qa

Katika mfano huu, tutasakinisha grep ili kupata kifurushi kinapatikana ili kusakinisha kama inavyoonyeshwa.

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

Ili kufunga kifurushi, tumia amri ifuatayo kwa kutaja toleo la mfuko, kwa mfano apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

Kwenye mfumo wa ndani, Nix huhifadhi vifurushi kwenye duka la Nix, ambalo kwa chaguo-msingi ni saraka ya /nix/store, ambapo kila kifurushi kina saraka yake ndogo ya kipekee. Kwa mfano, vifurushi vya apache-tomcat vimehifadhiwa katika:

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

Katika njia hii, herufi nasibu 95gmgnxlrcpkhlm00fa5ax8kvd6189py ni kitambulisho cha kipekee cha kifurushi ambacho huzingatia utegemezi wake wote.

Unaweza kuorodhesha vifurushi vilivyosakinishwa na amri ifuatayo.

$ nix-env -q

Ili kuboresha kifurushi cha apache-tomcat, unaweza kutumia swichi ya kuboresha -u kama inavyoonyeshwa.

$ nix-env -u apache-tomcat

Ikiwa ungependa kuondoa/kufuta apache-tomcat, tumia alama ya -e. Hapa, kifurushi hakijafutwa kutoka kwa mfumo mara moja, hutolewa tu bila kutumiwa. Hii ni muhimu kwa sababu unataka kufanya urejeshaji, au inaweza kuwa katika wasifu wa watumiaji wengine.

$ nix-env -e apache-tomcat

Baada ya kuondoa kifurushi, unaweza kufanya mkusanyiko wa takataka na matumizi ya nix-kukusanya-taka.

$ nix-collect-garbage

Jinsi ya kuondoa Kidhibiti cha Kifurushi cha Nix kwenye Linux

Ili kusanidua Nix, ondoa faili zote zinazohusiana na nix mara moja.

$ 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

Kwenye mifumo iliyo na systemd, endesha amri zifuatazo ili kusimamisha huduma zote zinazohusiana na nix na kuzizima.

$ 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

Kwa kuongezea, unahitaji kuondoa marejeleo yoyote ya Nix katika faili hizi: /etc/profile, /etc/bashrc, na /etc/zshrc.

Kwa habari zaidi, angalia kurasa za mtu za huduma zilizo hapo juu ambazo tumeangalia.

$ man nix-channel
$ man nix-env

Unaweza kupata hati za Kidhibiti cha Kifurushi cha Nix kwenye tovuti ya mradi: https://nixos.org/nix/.

Nix ni kidhibiti cha kifurushi kinachofanya kazi kikamilifu iliyoundwa kwa ajili ya usimamizi wa kifurushi unaotegemewa na unaoweza kuzalishwa tena. Inatoa dhana ya kuvutia ya usimamizi wa kifurushi, tofauti sana kwa zana zinazotumiwa kawaida katika Linux kama vile APT, na wengine wengi.

Katika nakala hii, tulionyesha jinsi ya kusakinisha nix katika hali ya watumiaji wengi na tukajadili jinsi ya kufanya usimamizi wa kifurushi na Nix. Shiriki mawazo yako nasi au uulize maswali yoyote kupitia fomu ya maoni hapa chini. Mwishowe, katika nakala inayokuja, tutaelezea maagizo zaidi ya usimamizi wa kifurushi cha Nix. Hadi wakati huo, endelea kushikamana.