Direnv - Stjórna verkefnissértækum umhverfisbreytum í Linux


direnv er sniðug opinn uppspretta viðbót fyrir skelina þína á UNIX stýrikerfi eins og Linux og macOS. Það er sett saman í eina kyrrstæða keyrslu og styður skeljar eins og bash, zsh, tcsh og fish.

Megintilgangur direnv er að gera ráð fyrir verkefnissértækum umhverfisbreytum án þess að klúðra ~/.profile eða tengdum ræsingarskrám. Það útfærir nýja leið til að hlaða og afhlaða umhverfisbreytum eftir núverandi möppu.

Það er notað til að hlaða 12-þátta öppum (aðferðafræði til að byggja upp hugbúnað sem þjónustuforrit) umhverfisbreytur, búa til einangrað þróunarumhverfi fyrir hvert verkefni og einnig hlaða leyndarmálum til dreifingar. Að auki er hægt að nota það til að byggja uppsetningar- og stjórnunarlausnir í mörgum útgáfum svipaðar rbenv, pyenv og phpenv.

Svo hvernig virkar direnv?

Áður en skelin hleður skipanalínu, athugar direnv hvort .envrc skrá sé til staðar í núverandi (sem þú getur birt með pwd skipuninni) og yfirmöppu. Athugunarferlið er hratt og ekki er hægt að taka eftir því við hverja vísbendingu.

Þegar það hefur fundið .envrc skrána með viðeigandi heimildum, hleður það henni inn í bash undirskel og það fangar allar útfluttar breytur og gerir þær aðgengilegar núverandi skel.

Að setja upp direnv í Linux kerfum

Í flestum Linux dreifingum er hægt að setja upp direnv pakkann frá sjálfgefnum geymslum með því að nota kerfispakkastjórann eins og sýnt er.

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

Á öðrum dreifingum eins og Red Hat Enterprise Linux (RHEL) og CentOS eða hvaða dreifingu sem er sem styður snapd uppsett á vélinni þinni.

$ sudo snap install direnv

Hvernig á að tengja direnv í Bash Shell þína

Eftir að direnv hefur verið sett upp þarftu að tengja það við núverandi Linux skel þína. Til dæmis fyrir Bash, bættu eftirfarandi línu við í lok ~/.bashrc skráarinnar.

Gakktu úr skugga um að það birtist jafnvel á eftir rvm, git-prompt og öðrum skeljaviðbótum sem vinna með hvetjunni.

eval "$(direnv hook bash)"

Bættu við eftirfarandi línu í lok ~/.zshrc skráarinnar:

eval "$(direnv hook zsh)" 

Bættu við eftirfarandi línu í lok ~/.config/fish/config.fish skráarinnar:

eval (direnv hook fish)

Lokaðu síðan virka flugstöðinni og opnaðu nýja skel eða fáðu skrána eins og sýnt er.

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

Hvernig á að nota direnv í Linux Shell

Til að sýna fram á hvernig direnv virkar munum við búa til nýja möppu sem heitir tecmint_projects og fara inn í hana.

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

Næst skulum við búa til nýja breytu sem heitir TEST_VARIABLE á skipanalínunni og þegar hún er endurómuð ætti gildið að vera tómt:

$ echo $TEST_VARIABLE

Nú munum við búa til nýja .envrc skrá sem inniheldur Bash kóða sem verður hlaðinn af direnv. Við reynum líka að bæta við línunni \export the TEST_VARIABLE=tecmint í hana með því að nota echo skipunina og úttaksframvísunarstafinn (>):

$ echo export TEST_VARIABLE=tecmint > .envrc

Sjálfgefið er að öryggisbúnaðurinn lokar hleðslu .envrc skráarinnar. Þar sem við vitum að það er örugg skrá, þurfum við að samþykkja innihald hennar með því að keyra eftirfarandi skipun:

$ direnv allow .

Nú þegar innihald .envrc skráarinnar hefur verið leyft að hlaðast, skulum við athuga gildi TEST_VARIABLE sem við settum áður:

$ echo $TEST_VARIABLE

Þegar við förum úr tecmint_project skránni verður direnv afhlaðinn og ef við athugum gildi TEST_VARIABLE einu sinni enn þá ætti það að vera tómt:

$ cd ..
$ echo $TEST_VARIABLE

Í hvert skipti sem þú ferð inn í tecmint_projects möppuna verður .envrc skráin hlaðin eins og sýnt er á eftirfarandi skjámynd:

$ cd tecmint_projects/

Til að afturkalla heimild tiltekins .envrc, notaðu neita skipunina.

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

Fyrir frekari upplýsingar og notkunarleiðbeiningar, sjá direnv man síðuna:

$ man direnv

Að auki notar direnv einnig stdlib (direnv-stdlib) kemur með nokkrum aðgerðum sem gera þér kleift að bæta nýjum möppum við PATH auðveldlega og gera svo miklu meira.

Til að finna skjölin fyrir allar tiltækar aðgerðir skaltu skoða handbókarsíðu direnv-stdlib:

$ man direnv-stdlib

Þetta er allt sem við áttum fyrir þig! Ef þú hefur einhverjar spurningar eða hugsanir til að deila með okkur, notaðu athugasemdareyðublaðið hér að neðan.