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.