Direnv - Mengurus Pembolehubah Persekitaran Khusus Projek di Linux

Direnv - Mengurus Pembolehubah Persekitaran Khusus Projek di Linux

direnv adalah sambungan sumber terbuka yang bagus untuk shell anda pada sistem operasi Unix seperti Linux dan MacOS. Ia disusun menjadi satu statik yang boleh dilaksanakan dan menyokong kerang seperti bash, ZSH, tcsh, dan ikan.

Tujuan utama direnv adalah untuk membolehkan pembolehubah persekitaran khusus projek tanpa kekacauan ~/.profil atau fail permulaan shell yang berkaitan. Ia melaksanakan cara baru untuk memuat dan memunggah pembolehubah persekitaran bergantung pada direktori semasa.

Ia digunakan untuk memuat 12factor aplikasi (metodologi untuk membina aplikasi perisian-sebagai-perkhidmatan) pembolehubah persekitaran, membuat persekitaran pembangunan terpencil setiap projek, dan juga memuatkan rahsia untuk penempatan. Di samping itu, ia boleh digunakan untuk membina penyelesaian pemasangan dan pengurusan pelbagai versi yang serupa dengan rbenv, pyenv, dan phpenv.

Jadi bagaimana direnv berfungsi?

Sebelum shell memuatkan arahan arahan, direnv pemeriksaan untuk kewujudan a .envrc fail dalam arus (yang boleh anda paparkan menggunakan arahan PWD) dan direktori induk. Proses pemeriksaan pantas dan tidak dapat diperhatikan pada setiap petikan.

Setelah mendapat .envrc Fail dengan keizinan yang sesuai, ia memuatkannya ke dalam sub-shell bash dan ia menangkap semua pembolehubah yang dieksport dan menjadikannya tersedia untuk cangkang semasa.

Memasang direnv dalam sistem linux

Dalam kebanyakan pengagihan Linux, direnv Pakej tersedia untuk dipasang dari repositori lalai menggunakan pengurus pakej sistem anda seperti yang ditunjukkan.

$ sudo apt pasang direnv #debian, ubuntu dan pudina $ sudo dnf pasang direnv #fedora 

Mengenai pengagihan lain seperti Red Hat Enterprise Linux (RHEL) dan Centos atau sebarang pengedaran yang menyokong snap, anda boleh memasangnya sebagai snap. Ini memerlukan anda memasang SNAPD pada sistem anda.

$ sudo snap pasang direnv 

Cara menghubungkan direnv ke dalam kulit bash anda

Selepas memasang direnv, anda perlu menyambungkannya ke dalam shell linux semasa anda. Sebagai contoh untuk Bash, Tambahkan baris berikut pada akhir ~/.Bashrc fail.

Pastikan bahawa ia muncul walaupun selepas itu RVM, git-prompt, dan sambungan shell lain yang memanipulasi petunjuk.

Eval "$ (Direnv Hook Bash)" 

Untuk shell ZSH

Tambahkan baris berikut pada akhir ~/.ZSHRC Fail:

Eval "$ (Direnv Hook ZSH)" 

Untuk shell ikan

Tambahkan baris berikut pada akhir ~/.konfigurasi/ikan/konfigurasi.Ikan Fail:

eval (ikan cangkuk direnv) 

Kemudian tutup tetingkap terminal aktif dan buka shell baru atau sumber fail seperti yang ditunjukkan.

$ sumber ~/.Bashrc $ Sumber ~/.zshrc $ source ~/.konfigurasi/ikan/konfigurasi.Ikan 

Cara Menggunakan Direnv di Linux Shell

Untuk menunjukkan bagaimana direnv berfungsi, kami akan membuat direktori baru yang dipanggil tecmint_projects dan bergerak ke dalamnya.

$ mkdir ~/tecmint_projects $ cd tecmint_projects/ 

Seterusnya, mari buat pemboleh ubah baru yang dipanggil Test_variable Pada baris arahan dan apabila ia bergema, nilai harus kosong:

$ echo $ test_variable 

Sekarang kita akan mencipta yang baru .envrc fail yang mengandungi kod bash yang akan dimuatkan oleh direnv. Kami juga cuba menambah garis "Eksport test_variable = tecmint"Di dalamnya menggunakan perintah echo dan watak pengalihan output (>):

$ echo eksport test_variable = tecmint> .envrc 

Secara lalai, mekanisme keselamatan menghalang pemuatan .envrc fail. Oleh kerana kita tahu fail yang selamat, kita perlu meluluskan kandungannya dengan menjalankan arahan berikut:

$ direnv membenarkan . 

Sekarang kandungannya .envrc fail telah dibenarkan untuk memuatkan, mari kita periksa nilai Test_variable yang kami tetapkan sebelum ini:

$ echo $ test_variable 

Semasa kita keluar tecmint_project Direktori, yang direnv akan dibongkar dan jika kita memeriksa nilai Test_variable Sekali lagi, ia harus kosong:

$ cd ... $ echo $ test_variable 
Demonstrasi bagaimana direnv berfungsi di linux

Setiap kali anda bergerak ke tecmint_projects Direktori, yang .envrc Fail akan dimuat seperti yang ditunjukkan dalam tangkapan skrin berikut:

$ cd tecmint_projects/ 
Memuatkan fail ENVRC dalam direktori

Untuk membatalkan kebenaran yang diberikan .envrc, menggunakan menafikan perintah.

$ direnv menafikan . #dalam direktori semasa atau $ direnv deny/path/to/.envrc 

Untuk maklumat lanjut dan arahan penggunaan, lihat direnv Halaman lelaki:

$ man direnv 

Di samping itu, direnv juga menggunakan a stdlib (Direnv-Stdlib) dilengkapi dengan beberapa fungsi yang membolehkan anda dengan mudah menambah direktori baru ke anda Jalan dan lakukan lebih banyak lagi.

Untuk mencari dokumentasi untuk semua fungsi yang ada, periksa Direnv-Stdlib Halaman Kemasukan Manual:

$ man direnv-stdlib 

Itu sahaja yang kami ada untuk anda! Sekiranya anda mempunyai sebarang pertanyaan atau pemikiran untuk dikongsi dengan kami, gunakan borang maklum balas di bawah.