Direnv - Immaniġġja Varjabbli Ambjentali Speċifiċi għall-Proġett fil-Linux
direnv hija estensjoni nifty open-source għall-qoxra tiegħek fuq sistema operattiva UNIX bħal Linux u macOS. Huwa miġbur f'eżekutibbli statiku wieħed u jappoġġja qxur bħal bash, zsh, tcsh, u fish.
L-iskop ewlieni ta' direnv huwa li jippermetti varjabbli ambjentali speċifiċi għall-proġett mingħajr ma jħoll ~/.profile
jew fajls tal-istartjar tal-qoxra relatati. Jimplimenta mod ġdid biex jgħabbi u jinħattu varjabbli ambjentali skont id-direttorju attwali.
Jintuża biex jgħabbi varjabbli ambjentali ta' apps 12factor (metodoloġija għall-bini ta' software-as-a-service), toħloq ambjenti ta' żvilupp iżolati għal kull proġett, u wkoll tagħbija sigrieti għall-iskjerament. Barra minn hekk, jista 'jintuża biex jinbnew soluzzjonijiet ta' installazzjoni u ġestjoni b'diversi verżjoni simili għal rbenv, pyenv, u phpenv.
Allura Kif Jaħdem direnv?
Qabel ma l-qoxra jgħabbi pront ta' kmand, direnv jiċċekkja għall-eżistenza ta' fajl .envrc
fid-direttorju kurrenti (li tista' turi bl-użu tal-kmand pwd) u parent. Il-proċess tal-iċċekkjar huwa mgħaġġel u ma jistax jiġi nnutat fuq kull pront.
Ladarba jsib il-fajl .envrc
bil-permessi xierqa, jgħabbih f'sub-shell bash u jaqbad il-varjabbli esportati kollha u jagħmilhom disponibbli għall-qoxra attwali.
Installazzjoni direnv fis-Sistemi Linux
Fil-biċċa l-kbira tad-distribuzzjonijiet tal-Linux, il-pakkett direnv huwa disponibbli biex jiġi installat mir-repożitorji default billi tuża l-maniġer tal-pakkett tas-sistema tiegħek kif muri.
$ sudo apt install direnv #Debian,Ubuntu and Mint $ sudo dnf install direnv #Fedora
Fuq distribuzzjonijiet oħra bħal Red Hat Enterprise Linux (RHEL) u CentOS jew kwalunkwe distribuzzjoni li tappoġġja snapd installat fis-sistema tiegħek.
$ sudo snap install direnv
Kif Hook direnv fil-Bash Shell Tiegħek
Wara li tinstalla direnv, għandek bżonn tgħaqqadha fil-qoxra attwali tal-Linux tiegħek. Per eżempju għal Bash, żid il-linja li ġejja fl-aħħar tal-fajl ~/.bashrc
.
Kun żgur li jidher anke wara rvm, git-prompt, u estensjonijiet oħra tal-qoxra li jimmanipulaw il-pront.
eval "$(direnv hook bash)"
Ehmeż il-linja li ġejja fl-aħħar tal-fajl ~/.zshrc
:
eval "$(direnv hook zsh)"
Ehmeż il-linja li ġejja fl-aħħar tal-fajl ~/.config/fish/config.fish
:
eval (direnv hook fish)
Imbagħad agħlaq it-tieqa tat-terminal attiva u tiftaħ qoxra ġdida jew sors il-fajl kif muri.
$ source ~/.bashrc $ source ~/.zshrc $ source ~/.config/fish/config.fish
Kif tuża direnv fil-Linux Shell
Biex nuru kif jaħdem direnv, aħna se noħolqu direttorju ġdid imsejjaħ tecmint_projects
u nimxu fih.
$ mkdir ~/tecmint_projects $ cd tecmint_projects/
Sussegwentement, ejja noħolqu varjabbli ġdida msejħa TEST_VARIABLE
fuq il-linja tal-kmand u meta ssir eku, il-valur għandu jkun vojt:
$ echo $TEST_VARIABLE
Issa se noħolqu fajl .envrc
ġdid li fih kodiċi Bash li se jitgħabba minn direnv. Nippruvaw inżidu wkoll il-linja \esporta t-TEST_VARIABLE=tecmint fiha billi tuża l-kmand tal-echo u l-karattru ta' direzzjoni mill-ġdid tal-output (>)
:
$ echo export TEST_VARIABLE=tecmint > .envrc
B'mod awtomatiku, il-mekkaniżmu tas-sigurtà jimblokka t-tagħbija tal-fajl .envrc
. Peress li nafu li huwa fajl sigur, irridu napprovaw il-kontenut tiegħu billi nħaddmu l-kmand li ġej:
$ direnv allow .
Issa li l-kontenut tal-fajl .envrc
tħalla jgħabbi, ejja niċċekkjaw il-valur ta' TEST_VARIABLE
li ssettjajna qabel:
$ echo $TEST_VARIABLE
Meta noħorġu mid-direttorju tecmint_project
, id- direnv jinħatt u jekk niċċekkjaw il-valur ta' TEST_VARIABLE
għal darb'oħra, għandu jkun vojt:
$ cd .. $ echo $TEST_VARIABLE
Kull darba li tiċċaqlaq fid-direttorju tecmint_projects, il-fajl .envrc
jitgħabba kif muri fil-screenshot li ġej:
$ cd tecmint_projects/
Biex tirrevoka l-awtorizzazzjoni ta' .envrc
partikolari, uża l-kmand deny.
$ direnv deny . #in current directory OR $ direnv deny /path/to/.envrc
Għal aktar informazzjoni u istruzzjonijiet dwar l-użu, ara l-paġna man direnv:
$ man direnv
Barra minn hekk, direnv juża wkoll stdlib (direnv-stdlib) jiġi b'diversi funzjonijiet li jippermettulek faċilment iżżid direttorji ġodda mal-PATH tiegħek u tagħmel ħafna aktar.
Biex issib id-dokumentazzjoni għall-funzjonijiet kollha disponibbli, iċċekkja l-paġna tad-dħul manwali direnv-stdlib:
$ man direnv-stdlib
Dak kollu kellna għalik! Jekk għandek xi mistoqsijiet jew ħsibijiet x'taqsam magħna, uża l-formola ta' feedback hawn taħt.