Direnv - Sarrafa -a'idodi na Musamman Masu Canjin yanayi a cikin Linux


direnv shimfida ce mai budewa don kwasfa akan tsarin aiki na UNIX kamar Linux da macOS. An tattara shi a cikin aiki guda ɗaya wanda za'a iya aiwatar dashi kuma yana tallafawa bawo kamar bash, zsh, tcsh, da kifi.

Babban mahimmancin direnv shine a ba da izinin masu canjin yanayi na takamaiman aikin ba tare da haɗuwa ~/.profile ko fayilolin farawa bawo ba. Yana aiwatar da sabuwar hanya don ɗorawa da sauke sauyin yanayi dangane da kundin adireshi na yanzu.

Ana amfani da shi don loda aikace-aikacen 12factor (hanya don gina ƙa'idodin software-a-sabis) masu canjin yanayi, ƙirƙirar yanayin ci gaban keɓaɓɓu na ci gaba, da kuma ɗora bayanan sirri don turawa. Bugu da ƙari, ana iya amfani da shi don gina shigarwa mai yawa-da yawa da kuma hanyoyin gudanarwa kamar rbenv, pyenv, da phpenv.

Don haka Yaya direnv ke aiki?

Kafin harsashi ya ɗora wa umarnin sauri, direnv yana bincika kasancewar fayil .envrc a halin yanzu (wanda zaku iya nunawa ta amfani da umarnin pwd) da kuma kundin adireshin mahaifa. Tsarin dubawa yana da sauri kuma ba za a iya lura da shi akan kowane saurin ba.

Da zarar ya sami fayil ɗin .envrc tare da izinin da ya dace, sai ya loda shi a cikin ƙaramin ƙaramin harsashi kuma yana kama duk masu canji da aka fitarwa kuma ya samar da su ga harsashin na yanzu.

Shigar da direnv a cikin Linux Systems

A mafi yawan abubuwan rarraba Linux, ana samun kunshin direnv don girkawa daga tsoffin wuraren ajiya ta amfani da mai sarrafa kunshin tsarin kamar yadda aka nuna.

$ sudo apt install direnv		#Debian,Ubuntu and Mint
$ sudo dnf install direnv		#Fedora

A kan wasu rarraba kamar Red Hat Enterprise Linux (RHEL) da CentOS ko kowane rarraba wanda ke tallafawa snapd da aka sanya akan tsarin ku.

$ sudo snap install direnv

Yadda ake Kug direnv a cikin Shehun Bash naka

Bayan shigar direnv, kuna buƙatar haɗa shi a cikin kwasfan Linux ɗinku na yanzu. Misali don Bash, ƙara layi mai zuwa a ƙarshen fayil ɗin ~/.bashrc .

Tabbatar cewa ya bayyana koda bayan rvm, git-prompt, da sauran kari na harsashi wanda ke sarrafa saurin.

eval "$(direnv hook bash)"

Appara layi mai zuwa a ƙarshen fayil ɗin ~/.zshrc :

eval "$(direnv hook zsh)" 

Appara layi mai zuwa a ƙarshen fayil ɗin ~/.config/fish/config.fish fayil:

eval (direnv hook fish)

Sannan rufe taga mai aiki kuma bude sabon harsashi ko samo fayil din kamar yadda aka nuna.

$ source ~/.bashrc
$ source  ~/.zshrc 
$ source ~/.config/fish/config.fish

Yadda ake Amfani da direnv a cikin Shell na Linux

Don nuna yadda direnv yake aiki, zamu ƙirƙiri sabon kundin adireshi da ake kira tecmint_projects sannan mu matsa zuwa ciki.

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

Na gaba, bari mu kirkiri wani sabon canji da ake kira TEST_VARIABLE akan layin umarni kuma idan aka yi amo, darajar ta zama fanko:

$ echo $TEST_VARIABLE

Yanzu zamu kirkiri sabon .envrc fayil wanda ya ƙunshi lambar Bash wacce za a ɗora ta direnv. Mun kuma yi ƙoƙari don ƙara layin\"fitarwa da TEST_VARIABLE = tecmint" a ciki ta amfani da umarnin amsa kuwwa da haruffan juyawar fitarwa (>) :

$ echo export TEST_VARIABLE=tecmint > .envrc

Ta hanyar tsoho, hanyar tsaro tana toshe lodin fayil .envrc . Tunda mun san shi amintaccen fayil, muna buƙatar amincewa da abubuwan da ke ciki ta hanyar tafiyar da umarni mai zuwa:

$ direnv allow .

Yanzu an ba da damar shigar da abun cikin .envrc fayil, bari mu bincika ƙimar TEST_VARIABLE da muka saita a gaban:

$ echo $TEST_VARIABLE

Lokacin da muka fita daga kundin adireshin tecmint_project , za a sauke direnv ɗin kuma idan muka sake duba darajar TEST_VARIABLE sau ɗaya, ya zama fanko:

$ cd ..
$ echo $TEST_VARIABLE

Duk lokacin da kuka shiga cikin kundin adireshin tecmint_projects, za a ɗora fayil ɗin .envrc kamar yadda aka nuna a cikin hoton da ke tafe:

$ cd tecmint_projects/

Don soke izinin da aka bayar .envrc , yi amfani da umarnin musun.

$ direnv deny .			#in current directory
OR
$ direnv deny /path/to/.envrc

Don ƙarin bayani da umarnin amfani, duba shafin direnv ɗin mutum:

$ man direnv

Allyari, direnv yana amfani da stdlib (direnv-stdlib) ya zo tare da ayyuka da yawa waɗanda zasu ba ku damar sauƙaƙe sabbin kundin adireshi a PATH ɗinka kuma yin ƙari da yawa.

Don neman takaddun aiki don duk ayyukan da ke akwai, bincika shafin shigarwa na direnv-stdlib:

$ man direnv-stdlib

Abin da muke da shi kenan! Idan kuna da wasu tambayoyi ko tunani don rabawa tare da mu, yi amfani da fom ɗin da ke ƙasa.