Direnv - Mengurus Pembolehubah Persekitaran Khusus Projek di Linux
- 1892
- 311
- Don Will
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_variableDemonstrasi 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.
- « 4 Cara Menjana Kunci Pra-Berkongsi Kuat (PSK) di Linux
- 5 pemain muzik baris arahan terbaik untuk linux »