Direnv - Linux-da taslama aýratyn gurşaw üýtgeýjilerini dolandyryň
direnv, Linux we macOS ýaly UNIX operasiýa ulgamynda gabygyňyz üçin elli açyk çeşme. Stateke-täk statiki ýerine ýetirilip bilner we bash, zsh, tcsh we balyk ýaly gabyklary goldaýar.
Direnv-iň esasy maksady, ~/.profile
ýa-da şoňa degişli gabyk başlangyç faýllaryny gysmazdan taslama aýratyn gurşaw üýtgeýjilerine rugsat bermekdir. Häzirki kataloga baglylykda daşky gurşaw üýtgeýjilerini ýüklemegiň we düşürmegiň täze usuly bar.
12 faktorly programmalary (programma üpjünçiligi-hyzmat ediş programmalaryny gurmagyň usulyýeti) daşky gurşaw üýtgeýjilerini ýüklemek, taslama boýunça izolirlenen ösüş gurşawyny döretmek we ýerleşdirmegiň syrlaryny ýüklemek üçin ulanylýar. Mundan başga-da, rbenv, pyenv we phpenv ýaly köp wersiýaly gurnama we dolandyryş çözgütlerini gurmak üçin ulanylyp bilner.
Direnv nähili işleýär?
Gabyk buýruk görkezmesini ýüklemezden ozal, direnv tokda (pwd buýrugyny ulanyp görkezip bilersiňiz) we ene katalogynda .envrc
faýlynyň bardygyny barlaýar. Barlamak prosesi çalt we her haýyşda üns berilmeýär.
Degişli rugsatlar bilen .envrc
faýly tapylansoň, ony baş kiçi gabyň içine ýükleýär we eksport edilen ähli üýtgeýänleri ele alýar we häzirki gabykda elýeterli edýär.
Linux ulgamlarynda direnv gurmak
Linux paýlamalarynyň köpüsinde direnv bukjasy, görkezilişi ýaly ulgam paket dolandyryjyňyzy ulanyp, adaty ammarlardan gurmak üçin elýeterlidir.
$ sudo apt install direnv #Debian,Ubuntu and Mint $ sudo dnf install direnv #Fedora
Red Hat Enterprise Linux (RHEL) we CentOS ýaly beýleki paýlamalarda ýa-da ulgamyňyzda gurnalan snapdy goldaýan islendik paýlamada.
$ sudo snap install direnv
Baş gabygyňyza direnw nädip girmeli
Direnv guranyňyzdan soň, ony häzirki Linux gabygyna dakmaly. Mysal üçin Baş üçin, ~/.bashrc
faýlynyň soňuna aşakdaky setiri goşuň.
Rvm, git-prompt we haýyşy dolandyrýan beýleki gabyk giňeltmelerinden soň hem peýda bolýandygyna göz ýetiriň.
eval "$(direnv hook bash)"
Aşakdaky setiri ~/.zshrc
faýlynyň soňuna goşuň:
eval "$(direnv hook zsh)"
Aşakdaky setiri ~/.config/fish/config.fish
faýlynyň soňuna goşuň:
eval (direnv hook fish)
Soňra işjeň terminal penjiresini ýapyň we täze gabyny açyň ýa-da görkezilişi ýaly faýly çeşme ediň.
$ source ~/.bashrc $ source ~/.zshrc $ source ~/.config/fish/config.fish
Linux Shell-de direnv nädip ulanmaly
Direnv-iň nähili işleýändigini görkezmek üçin, tecmint_projects
atly täze katalog dörederis we oňa geçeris.
$ mkdir ~/tecmint_projects $ cd tecmint_projects/
Indiki, buýruk setirinde TEST_VARIABLE
atly täze üýtgeýjini döredeliň we ol gaýtalananda bahasy boş bolmaly:
$ echo $TEST_VARIABLE
Indi direnv tarapyndan ýüklenjek Baş kody öz içine alýan täze .envrc
faýly dörederis. Şeýle hem, echo buýrugyny we çykyş gönükdirme nyşany (>)
ulanyp, içindäki TEST_VARIABLE=tecmint eksport setirini goşmaga synanyşýarys.
$ echo export TEST_VARIABLE=tecmint > .envrc
Düzgüne görä, howpsuzlyk mehanizmi .envrc
faýlynyň ýüklenmegini bökdeýär. Ygtybarly faýl bilýändigimiz üçin, aşakdaky buýrugy işledip, mazmunyny tassyklamaly:
$ direnv allow .
Indi .envrc
faýlynyň mazmuny ýüklenmäge rugsat berlensoň, geliň öň bellän TEST_VARIABLE
bahasyny barlap göreliň:
$ echo $TEST_VARIABLE
tecmint_project
katalogyndan çykanymyzda direnv düşüriler we TEST_VARIABLE
bahasyny ýene bir gezek barlasak, boş bolmaly:
$ cd .. $ echo $TEST_VARIABLE
Her gezek tecmint_projects katalogyna geçeniňizde, .envrc
faýly aşakdaky skrinshotda görkezilişi ýaly ýüklener:
$ cd tecmint_projects/
Berlen .envrc
ygtyýarnamasyny ýatyrmak üçin inkär buýrugyny ulanyň.
$ direnv deny . #in current directory OR $ direnv deny /path/to/.envrc
Has giňişleýin maglumat we ulanyş görkezmeleri üçin direnv adam sahypasyna serediň:
$ man direnv
Mundan başga-da, direnv stdlib-i ulanýar (direnv-stdlib), PATH-a täze kataloglary aňsatlyk bilen goşmaga we başga-da köp zatlary etmäge mümkinçilik berýän birnäçe funksiýa bilen gelýär.
Availablehli elýeterli funksiýalar üçin resminamalary tapmak üçin direnv-stdlib el bilen giriş sahypasyna göz aýlaň:
$ man direnv-stdlib
Bu siziň üçin bar zat! Biziň bilen paýlaşmak üçin soraglaryňyz ýa-da pikirleriňiz bar bolsa, aşakdaky jogap görnüşini ulanyň.