Direnv - Dhibiti Vigeu vya Mazingira mahususi vya Mradi katika Linux


direnv ni kiendelezi cha chanzo-wazi nafty kwa ganda lako kwenye mfumo wa uendeshaji wa UNIX kama vile Linux na macOS. Imekusanywa katika muundo mmoja wa kutekelezwa na inasaidia makombora kama vile bash, zsh, tcsh, na samaki.

Kusudi kuu la direnv ni kuruhusu vigeu vya mazingira mahususi vya mradi bila kusumbua ~/.profile au faili zinazohusiana za kuanzisha shell. Inatumia njia mpya ya kupakia na kupakua anuwai za mazingira kulingana na saraka ya sasa.

Inatumika kupakia programu za 12factor (mbinu ya kujenga programu-kama-huduma) vigezo vya mazingira, kuunda mazingira ya maendeleo yaliyotengwa kwa kila mradi, na pia kupakia siri za kupelekwa. Zaidi ya hayo, inaweza kutumika kujenga usakinishaji wa matoleo mbalimbali na ufumbuzi wa usimamizi sawa na rbenv, pyenv, na phpenv.

Kwa hivyo direnv Inafanyaje kazi?

Kabla ya ganda kupakia kidokezo cha amri, direnv hukagua kuwepo kwa .envrc faili katika sasa (ambayo unaweza kuonyesha kwa kutumia pwd amri) na saraka ya mzazi. Mchakato wa kukagua ni mwepesi na hauwezi kutambuliwa kwa kila kidokezo.

Mara tu inapopata faili ya .envrc iliyo na ruhusa zinazofaa, inapakia kwenye ganda ndogo ya bash na inanasa anuwai zote zilizosafirishwa na kuzifanya zipatikane kwa ganda la sasa.

Kufunga direnv katika Mifumo ya Linux

Katika usambazaji mwingi wa Linux, kifurushi cha direnv kinapatikana kusakinishwa kutoka kwa hazina chaguomsingi kwa kutumia kidhibiti kifurushi chako cha mfumo kama inavyoonyeshwa.

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

Kwenye usambazaji mwingine kama vile Red Hat Enterprise Linux (RHEL) na CentOS au usambazaji wowote unaoauni snapd iliyosakinishwa kwenye mfumo wako.

$ sudo snap install direnv

Jinsi ya kuunganisha direnv kwenye Shell yako ya Bash

Baada ya kusakinisha direnv, unahitaji kuiweka kwenye ganda lako la sasa la Linux. Kwa mfano kwa Bash, ongeza laini ifuatayo mwishoni mwa ~/.bashrc faili.

Hakikisha kuwa inaonekana hata baada ya rvm, git-prompt, na viendelezi vingine vya ganda ambavyo vinadhibiti arifa.

eval "$(direnv hook bash)"

Ongeza laini ifuatayo mwishoni mwa ~/.zshrc faili:

eval "$(direnv hook zsh)" 

Ongeza laini ifuatayo mwishoni mwa ~/.config/fish/config.fish faili:

eval (direnv hook fish)

Kisha funga kidirisha kinachotumika na ufungue ganda jipya au chanzo faili kama inavyoonyeshwa.

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

Jinsi ya kutumia direnv kwenye Shell ya Linux

Ili kuonyesha jinsi direnv inavyofanya kazi, tutaunda saraka mpya inayoitwa tecmint_projects na kuingia humo.

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

Kisha, hebu tuunde kigezo kipya kiitwacho TEST_VARIABLE kwenye mstari wa amri na inapotolewa mwangwi, thamani inapaswa kuwa tupu:

$ echo $TEST_VARIABLE

Sasa tutaunda faili mpya ya .envrc ambayo ina msimbo wa Bash ambayo itapakiwa na direnv. Pia tunajaribu kuongeza laini \hamisha TEST_VARIABLE=tecmint ndani yake kwa kutumia amri ya mwangwi na herufi ya uelekezaji upya wa pato (>):

$ echo export TEST_VARIABLE=tecmint > .envrc

Kwa chaguo-msingi, utaratibu wa usalama huzuia upakiaji wa faili ya .envrc. Kwa kuwa tunajua kuwa ni faili salama, tunahitaji kuidhinisha yaliyomo kwa kutekeleza amri ifuatayo:

$ direnv allow .

Kwa kuwa sasa maudhui ya faili ya .envrc yameruhusiwa kupakia, hebu tuangalie thamani ya TEST_VARIABLE ambayo tuliweka awali:

$ echo $TEST_VARIABLE

Tunapotoka kwenye saraka ya tecmint_project, direnv itapakuliwa na tukiangalia thamani ya TEST_VARIABLE mara nyingine tena, inapaswa kuwa tupu:

$ cd ..
$ echo $TEST_VARIABLE

Kila wakati unapoingia kwenye saraka ya tecmint_projects, faili ya .envrc itapakiwa kama inavyoonyeshwa kwenye picha ya skrini ifuatayo:

$ cd tecmint_projects/

Ili kubatilisha uidhinishaji wa .envrc uliyopewa, tumia amri ya kukataa.

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

Kwa habari zaidi na maagizo ya utumiaji, angalia ukurasa wa mtu wa direnv:

$ man direnv

Kwa kuongeza, direnv pia hutumia stdlib (direnv-stdlib) inakuja na kazi kadhaa ambazo hukuruhusu kuongeza saraka mpya kwa urahisi kwenye PATH yako na kufanya mengi zaidi.

Ili kupata hati za vitendaji vyote vinavyopatikana, angalia mwongozo wa mwongozo wa direnv-stdlib:

$ man direnv-stdlib

Hiyo ndiyo yote tuliyokuwa nayo kwa ajili yako! Ikiwa una maswali au mawazo ya kushiriki nasi, tumia fomu ya maoni iliyo hapa chini.