Direnv - Hallitse projektikohtaisia ympäristömuuttujia Linuxissa
direnv on näppärä avoimen lähdekoodin laajennus kuorillesi UNIX-käyttöjärjestelmässä, kuten Linuxissa ja macOS:ssä. Se on käännetty yhdeksi staattiseksi suoritettavaksi tiedostoksi ja tukee komentotulkoja, kuten bash, zsh, tcsh ja fish.
direnv:n päätarkoitus on sallia projektikohtaiset ympäristömuuttujat ilman, että ~/.profile
tai siihen liittyvät shell-käynnistystiedostot sotkeutuvat. Se toteuttaa uuden tavan ladata ja poistaa ympäristömuuttujia nykyisestä hakemistosta riippuen.
Sitä käytetään 12-tekijän sovellusten (metodologia ohjelmisto-as-a-service -sovellusten rakentamiseen) ympäristömuuttujien lataamiseen, projektikohtaisten eristettyjen kehitysympäristöjen luomiseen ja myös salaisuuksien lataamiseen käyttöönottoa varten. Lisäksi sitä voidaan käyttää useiden versioiden asennus- ja hallintaratkaisujen rakentamiseen, jotka ovat samanlaisia kuin rbenv, pyenv ja phpenv.
Joten miten direnv toimii?
Ennen kuin komentotulkki lataa komentokehotteen, direnv tarkistaa, onko .envrc
-tiedosto nykyisessä (jotka voit näyttää pwd-komennolla) ja päähakemistossa. Tarkastusprosessi on nopea, eikä sitä voi havaita jokaisessa kehotteessa.
Kun se löytää .envrc
-tiedoston, jolla on tarvittavat oikeudet, se lataa sen bash-alikuoreen ja kaappaa kaikki viedyt muuttujat ja asettaa ne nykyisen kuoren saataville.
Direnv:n asentaminen Linux-järjestelmiin
Useimmissa Linux-jakeluissa direnv-paketti on asennettavissa oletusvarastoista käyttämällä järjestelmäpakettien hallintaa kuvan mukaisesti.
sudo apt install direnv #Debian,Ubuntu and Mint
sudo dnf install direnv #Fedora
Muissa jakeluissa, kuten Red Hat Enterprise Linux (RHEL) ja CentOS tai missä tahansa jakelussa, joka tukee snapsia, voit asentaa sen >napsauttaa. Tämä edellyttää, että snapd on asennettu järjestelmään.
sudo snap install direnv
Kuinka kytkeä direnv Bash Shelliisi
Kun olet asentanut direnv-sovelluksen, sinun on kytkettävä se nykyiseen Linux-kuoreseesi. Esimerkiksi Bash:lle lisää seuraava rivi ~/.bashrc
-tiedoston loppuun.
Varmista, että se näkyy myös rvm-, git-prompt- ja muiden komentotulkkilaajennusten jälkeen, jotka käsittelevät kehotetta.
eval "$(direnv hook bash)"
ZSH Shellille
Liitä seuraava rivi ~/.zshrc
-tiedoston loppuun:
eval "$(direnv hook zsh)"
FISH Shellille
Liitä seuraava rivi ~/.config/fish/config.fish
-tiedoston loppuun:
eval (direnv hook fish)
Sulje sitten aktiivinen pääteikkuna ja avaa uusi komentotulkki tai lähde tiedostosta kuvan mukaisesti.
source ~/.bashrc
source ~/.zshrc
source ~/.config/fish/config.fish
Direnv:n käyttäminen Linux Shellissä
Osoittaaksemme, miten direnv toimii, luomme uuden hakemiston nimeltä tecmint_projects
ja siirrymme siihen.
mkdir ~/tecmint_projects
cd tecmint_projects/
Luodaan seuraavaksi komentoriville uusi muuttuja nimeltä TEST_VARIABLE
ja kun se kaiutetaan, arvon tulee olla tyhjä:
echo $TEST_VARIABLE
Nyt luomme uuden .envrc
-tiedoston, joka sisältää Bash-koodin, jonka direnv lataa. Yritämme myös lisätä siihen rivin "export the TEST_VARIABLE=tecmint" käyttämällä echo-komentoa ja tulosteen uudelleenohjausmerkkiä (>)
:
echo export TEST_VARIABLE=tecmint > .envrc
Oletusarvoisesti suojausmekanismi estää .envrc
-tiedoston lataamisen. Koska tiedämme sen olevan suojattu tiedosto, meidän on hyväksyttävä sen sisältö suorittamalla seuraava komento:
direnv allow .
Nyt kun .envrc
-tiedoston sisällön on sallittu latautua, tarkistetaan aiemmin asettamamme TEST_VARIABLE
-arvo:
echo $TEST_VARIABLE
Kun poistumme hakemistosta tecmint_project
, direnv puretaan, ja jos tarkistamme TEST_VARIABLE
-arvon vielä kerran, sen pitäisi olla tyhjä:
cd ..
echo $TEST_VARIABLE
Aina kun siirryt tecmint_projects-hakemistoon, .envrc
-tiedosto ladataan seuraavan kuvakaappauksen mukaisesti:
cd tecmint_projects/
Voit peruuttaa tietyn .envrc
-luvan käyttämällä deny-komentoa.
direnv deny . #in current directory
OR
direnv deny /path/to/.envrc
Lisätietoja ja käyttöohjeita on direnv -manuaalisivulla:
man direnv
Lisäksi direnv käyttää myös stdlib-tiedostoa (direnv-stdlib), joka sisältää useita toimintoja, joiden avulla voit helposti lisätä uusia hakemistoja PATH ja tee paljon muuta.
Löydät kaikkien käytettävissä olevien toimintojen dokumentaation direnv-stdlib manuaalisen syöttösivun:
man direnv-stdlib
Siinä kaikki, mitä meillä oli sinulle! Jos sinulla on kysyttävää tai ajatuksia jakaa kanssamme, käytä alla olevaa palautelomaketta.