Direnv - Jikwaa mgbanwe mgbanwe gburugburu ebe ọrụ akọwapụtara na Linux
direnv bụ ndọtị mepere emepe nke ọma maka shei gị na sistemụ arụmọrụ UNIX dị ka Linux na macOS. Achịkọtara ya n'ime otu static executable ma na-akwado shells dị ka bash, zsh, tcsh, na azụ.
Ebumnuche bụ isi nke direnv bụ inye ohere maka mgbanwe gburugburu ebe ọrụ akọwapụtara na-enweghị ntukọ ~/.profile
ma ọ bụ faịlụ mmalite shei metụtara. Ọ na-arụ ọrụ ọhụrụ iji budata na budata mgbanwe gburugburu ebe obibi dabere na ndekọ aha ugbu a.
A na-eji ya na-ebunye ngwa 12factor (usoro maka iwulite ngwa ngwa-dị ka ngwa ọrụ) mgbanwe gburugburu ebe obibi, mepụta gburugburu mmepe dịpụrụ adịpụ nke ọ bụla, ma na-ebukwa ihe nzuzo maka ibugharị. Na mgbakwunye, enwere ike iji ya wuo nrụnye ụdị dị iche iche na ngwọta njikwa dị ka rbenv, pyenv, na phpenv.
Yabụ kedu ka direnv si arụ ọrụ?
Tupu shei ahụ ebuo ngwa ngwa iwu, direnv na-enyocha ịdị adị nke faịlụ .envrc
dị ugbu a (nke ị nwere ike igosipụta site na iji iwu pwd) yana ndekọ ndị nne na nna. Usoro nlele ahụ dị ngwa ma enweghị ike ịhụ ya na ngwa ngwa ọ bụla.
Ozugbo ọ chọtara faịlụ .envrc
nwere ikike kwesịrị ekwesị, ọ na-ebuba ya na bash sub-shell wee weghara mgbanwe niile ebupụ ma mee ka ha dị na shei ugbu a.
Ịwụnye direnv na Linux Systems
N'ọtụtụ nkesa Linux, ngwugwu direnv dị maka ịwụnye site na ebe nchekwa ndabara site na iji njikwa ngwugwu sistemụ gị dịka egosiri.
$ sudo apt install direnv #Debian,Ubuntu and Mint $ sudo dnf install direnv #Fedora
Na nkesa ndị ọzọ dị ka Red Hat Enterprise Linux (RHEL) na CentOS ma ọ bụ nkesa ọ bụla na-akwado snapd arụnyere na sistemụ gị.
$ sudo snap install direnv
Otu esi ejikọta direnv n'ime bash Shell gị
Mgbe ị wụnye direnv, ịkwesịrị itinye ya na shei Linux gị ugbu a. Dịka ọmụmaatụ maka Bash, tinye ahịrị na-esote na njedebe nke faịlụ ~/.bashrc
.
Gbaa mbọ hụ na ọ pụtara ọbụlagodi mgbe rvm, git-prompt na ndọtị shei ndị ọzọ na-emegharị ngwa ngwa.
eval "$(direnv hook bash)"
Tinye ahịrị ndị a na njedebe nke faịlụ ~/.zshrc
:
eval "$(direnv hook zsh)"
Tinye ahịrị na-esote na njedebe nke faịlụ ~/.config/fish/config.fish
:
eval (direnv hook fish)
Mgbe ahụ mechie windo ọnụ ọnụ na-arụ ọrụ wee mepee shei ọhụrụ ma ọ bụ wepụta faịlụ dị ka egosiri.
$ source ~/.bashrc $ source ~/.zshrc $ source ~/.config/fish/config.fish
Otu esi eji direnv na Linux Shell
Iji gosi ka direnv si arụ ọrụ, anyị ga-emepụta ndekọ ọhụrụ akpọrọ tecmint_projects
wee banye na ya.
$ mkdir ~/tecmint_projects $ cd tecmint_projects/
Na-esote, ka anyị mepụta mgbanwe ọhụrụ a na-akpọ TEST_VARIABLE
n'ahịrị iwu na mgbe ọ na-emegharị ya, uru kwesịrị ịbụ ihe efu:
$ echo $TEST_VARIABLE
Ugbu a, anyị ga-emepụta faịlụ .envrc
ọhụrụ nwere koodu Bash nke direnv ga-ebu. Anyị na-agbalịkwa itinye ahịrị \bupụ TEST_VARIABLE=tecmint n'ime ya site na iji iwu echo na agwa redirection (>)
:
$ echo export TEST_VARIABLE=tecmint > .envrc
Site na ndabara, usoro nchekwa na-egbochi nbudata faịlụ .envrc
. Ebe anyị maara na ọ bụ faịlụ echekwara, anyị kwesịrị ịkwado ọdịnaya ya site na iji iwu a:
$ direnv allow .
Ugbu a ahapụla ọdịnaya nke .envrc
faịlụ ka ibu, ka anyị lelee uru TEST_VARIABLE
nke anyị debere na mbụ:
$ echo $TEST_VARIABLE
Mgbe anyị pụọ na ndekọ tecmint_project
, a ga-ebutu direnv ma ọ bụrụ na anyị lelee uru TEST_VARIABLE
ọzọ, ọ ga-abụ ihe efu:
$ cd .. $ echo $TEST_VARIABLE
Oge ọ bụla ị banyere na ndekọ ndekọ tecmint_projects, a ga-ebunye faịlụ .envrc
dị ka egosiri na nseta ihuenyo na-esonụ:
$ cd tecmint_projects/
Iji kagbuo ikike nke .envrc
enyere, jiri iwu ngọnarị.
$ direnv deny . #in current directory OR $ direnv deny /path/to/.envrc
Maka ozi ndị ọzọ na ntuziaka ojiji, lee direnv man page:
$ man direnv
Na mgbakwunye, direnv na-ejikwa stdlib (direnv-stdlib) na-abịa na ọtụtụ ọrụ na-enye gị ohere itinye akwụkwọ ntuziaka ọhụrụ na PATH gị ngwa ngwa wee mee ọtụtụ ihe ndị ọzọ.
Iji chọta akwụkwọ maka ọrụ niile dị, lelee ibe ntinye akwụkwọ ntuziaka direnv-stdlib:
$ man direnv-stdlib
Nke ahụ bụ naanị ihe anyị nwere maka gị! Ọ bụrụ na ị nwere ajụjụ ọ bụla ma ọ bụ echiche ị ga-ekerịta anyị, jiri ụdị nzaghachi n'okpuru.