Direnv - Kelola variabel lingkungan khusus proyek di Linux
- 4096
- 1112
- Luis Baumbach
direnv adalah ekstensi sumber terbuka yang bagus untuk shell Anda pada sistem operasi UNIX seperti Linux dan MacOS. Itu dikompilasi menjadi satu statis yang dapat dieksekusi dan mendukung cangkang seperti pesta, zsh, tcsh, dan ikan.
Tujuan utama direnv adalah untuk memungkinkan variabel lingkungan spesifik proyek tanpa kekacauan ~/.Profil
atau file startup shell terkait. Ini mengimplementasikan cara baru untuk memuat dan membongkar variabel lingkungan tergantung pada direktori saat ini.
Itu digunakan untuk memuat 12faktor APPS (Metodologi untuk Membangun Perangkat Lunak-As-A-Service Apps) Variabel Lingkungan, Buat lingkungan pengembangan yang terisolasi per proyek, dan juga memuat rahasia untuk penyebaran. Selain itu, dapat digunakan untuk membangun solusi instalasi multi-versi dan manajemen yang mirip dengan rbenv, pyenv, dan phpenv.
Jadi bagaimana Direnv bekerja?
Sebelum shell memuat prompt perintah, direnv memeriksa keberadaan a .Envrc
file di saat ini (yang dapat Anda tampilkan menggunakan perintah PWD) dan direktori induk. Proses pemeriksaannya cepat dan tidak dapat diperhatikan di setiap prompt.
Setelah menemukan .Envrc
file dengan izin yang sesuai, memuatnya ke dalam sub-shell bash dan menangkap semua variabel yang diekspor dan membuatnya tersedia untuk cangkang saat ini.
Menginstal Direnv di Linux Systems
Di sebagian besar distribusi Linux, direnv Paket tersedia untuk diinstal dari repositori default menggunakan System Package Manager Anda seperti yang ditunjukkan.
$ sudo apt menginstal direnv #debian, ubuntu dan mint $ sudo dnf menginstal direnv #fedora
Pada distribusi lain seperti Red Hat Enterprise Linux (RHEL) Dan Centos atau distribusi apa pun yang mendukung bentak, Anda dapat menginstalnya sebagai a patah. Ini mengharuskan Anda untuk menginstal Snapd di sistem Anda.
$ sudo snap menginstal direnv
Cara mengaitkan direnv ke dalam cangkang bash Anda
Setelah menginstal direnv, Anda perlu menghubungkannya ke cangkang linux Anda saat ini. Misalnya untuk Pesta, Tambahkan baris berikut di akhir ~/.Bashrc
mengajukan.
Pastikan bahwa itu muncul bahkan setelahnya RVM, prompt git, dan ekstensi shell lainnya yang memanipulasi prompt.
Eval "$ (Direnv Hook Bash)"
Untuk shell zsh
Tambahkan baris berikut di akhir ~/.zshrc
mengajukan:
eval "$ (direnv hook zsh)"
Untuk cangkang ikan
Tambahkan baris berikut di akhir ~/.config/fish/config.ikan
mengajukan:
Eval (Direnv Hook Fish)
Kemudian tutup jendela terminal aktif dan buka shell baru atau sumber file seperti yang ditunjukkan.
$ sumber ~/.Bashrc $ Source ~/.zshrc $ source ~/.config/fish/config.ikan
Cara menggunakan direnv di linux shell
Untuk menunjukkan caranya direnv bekerja, kami akan membuat direktori baru yang disebut Tecmint_projects
dan pindah ke dalamnya.
$ mkdir ~/tecmint_projects $ cd tecmint_projects/
Selanjutnya, mari kita buat variabel baru yang disebut Test_variable
Pada baris perintah dan ketika digaungkan, nilainya harus kosong:
$ echo $ test_variable
Sekarang kami akan membuat yang baru .Envrc
file yang berisi kode bash yang akan dimuat oleh direnv. Kami juga mencoba menambahkan garis "Ekspor test_variable = tecmint”Di dalamnya menggunakan perintah Echo dan karakter pengalihan output (>)
:
$ echo Export test_variable = tecmint> .Envrc
Secara default, mekanisme keamanan memblokir pemuatan .Envrc
mengajukan. Karena kita tahu itu file yang aman, kita perlu menyetujui kontennya dengan menjalankan perintah berikut:
$ direnv izinkan .
Sekarang kontennya .Envrc
File telah diizinkan memuat, mari kita periksa nilainya Test_variable
yang kami tetapkan sebelumnya:
$ echo $ test_variable
Saat kita keluar Tecmint_project
direktori, The direnv akan diturunkan dan jika kita memeriksa nilainya Test_variable
Sekali lagi, itu harus kosong:
$ CD ... $ echo $ test_variableDemonstrasi bagaimana direnv bekerja di linux
Setiap kali Anda pindah ke Tecmint_projects direktori, The .Envrc
File akan dimuat seperti yang ditunjukkan pada tangkapan layar berikut:
$ cd tecmint_projects/Memuat file envrc di direktori
Untuk mencabut otorisasi yang diberikan .Envrc
, menggunakan membantah memerintah.
$ Direnv DENY . #in direktori saat ini atau $ direnv disangkal/path/to/.Envrc
Untuk informasi lebih lanjut dan instruksi penggunaan, lihat direnv Halaman pria:
$ man direnv
Selain itu, direnv juga menggunakan a stdlib (direnv-stdlib) Dilengkapi dengan beberapa fungsi yang memungkinkan Anda untuk dengan mudah menambahkan direktori baru ke Anda JALUR dan lakukan lebih banyak lagi.
Untuk menemukan dokumentasi untuk semua fungsi yang tersedia, periksa direnv-stdlib Halaman Entri Manual:
$ man direnv-stdlib
Hanya itu yang kami miliki untuk Anda! Jika Anda memiliki pertanyaan atau pemikiran untuk dibagikan kepada kami, gunakan formulir umpan balik di bawah ini.
- « 4 cara untuk menghasilkan kunci pra-dibagikan yang kuat (PSK) di Linux
- 5 Pemutar Musik Baris Perintah Terbaik untuk Linux »