BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Direnv –Linuxでのプロジェクト固有の環境変数の管理

direnv LinuxやmacOSなどのUNIXオペレーティングシステム上のシェル用の気の利いたオープンソース拡張機能です。単一の静的実行可能ファイルにコンパイルされ、 bashなどのシェルをサポートします 、 zsh tcsh 、そして魚。

direnvの主な目的 ~/.profileを乱雑にすることなく、プロジェクト固有の環境変数を許可することです。 または関連するシェルスタートアップファイル。現在のディレクトリに応じて環境変数をロードおよびアンロードする新しい方法を実装します。

12factorをロードするために使用されます アプリ(サービスとしてのソフトウェアアプリを構築するための方法論)環境変数、プロジェクトごとの分離された開発環境の作成、および展開用のシークレットのロード。さらに、 rbenvと同様のマルチバージョンのインストールおよび管理ソリューションを構築するために使用できます。 、pyenv、および phpenv

では、direnvはどのように機能しますか?

シェルがコマンドプロンプトをロードする前に、 direnv .envrcの存在を確認します 現在のファイル(pwdコマンドを使用して表示できます)と親ディレクトリ。チェックプロセスは迅速であり、各プロンプトで気付くことはありません。

.envrcが見つかったら 適切な権限を持つファイルをbashサブシェルにロードし、エクスポートされたすべての変数をキャプチャして、現在のシェルで使用できるようにします。

Linuxシステムへのdirenvのインストール

ほとんどのLinuxディストリビューションでは、 direnv 図のように、システムパッケージマネージャーを使用して、デフォルトのリポジトリからパッケージをインストールできます。

$ sudo apt install direnv		#Debian,Ubuntu and Mint
$ sudo dnf install direnv		#Fedora

Red Hat Enterprise Linuxなどの他のディストリビューション ( RHEL )および CentOS またはスナップをサポートするディストリビューションの場合は、スナップとしてインストールできます。 。これには、システムにスナップインストールされている必要があります。

$ sudo snap install direnv

direnvをBashシェルにフックする方法

direnvをインストールした後 、現在のLinuxシェルにフックする必要があります。たとえば、バッシュの場合 、~/.bashrcの最後に次の行を追加します ファイル。

rvmの後でも表示されることを確認してください 、 git-prompt 、およびプロンプトを操作するその他のシェル拡張。

eval "$(direnv hook bash)"

ZSHシェルの場合

~/.zshrcの最後に次の行を追加します ファイル:

eval "$(direnv hook zsh)" 

FISHシェルの場合

~/.config/fish/config.fishの最後に次の行を追加します ファイル:

eval (direnv hook fish)

次に、アクティブなターミナルウィンドウを閉じて、新しいシェルを開くか、図のようにファイルをソースします。

$ source ~/.bashrc
$ source  ~/.zshrc 
$ source ~/.config/fish/config.fish

Linuxシェルでdirenvを使用する方法

direnvの方法を示すため 動作します。tecmint_projectsという新しいディレクトリを作成します。 そこに移動します。

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

次に、TEST_VARIABLEという新しい変数を作成しましょう。 コマンドラインでエコーされる場合、値は空である必要があります:

$ echo $TEST_VARIABLE

次に、新しい.envrcを作成します direnvによってロードされるBashコードを含むファイル 。また、「 export the TEST_VARIABLE =tecmint」という行を追加しようとします。 」をechoコマンドと出力リダイレクト文字(>)を使用して入力します :

$ echo export TEST_VARIABLE=tecmint > .envrc

デフォルトでは、セキュリティメカニズムは.envrcのロードをブロックします ファイル。安全なファイルであることがわかっているため、次のコマンドを実行してコンテンツを承認する必要があります。

$ direnv allow .

これで、.envrcのコンテンツが ファイルの読み込みが許可されました。TEST_VARIABLEの値を確認しましょう 以前に設定したもの:

$ echo $TEST_VARIABLE

tecmint_projectを終了するとき ディレクトリ、 direnv アンロードされ、TEST_VARIABLEの値を確認すると もう一度、空にする必要があります:

$ cd ..
$ echo $TEST_VARIABLE
Direnv –Linuxでのプロジェクト固有の環境変数の管理

tecmint_projectsに移動するたびに ディレクトリ、.envrc 次のスクリーンショットに示すように、ファイルがロードされます:

$ cd tecmint_projects/
Direnv –Linuxでのプロジェクト固有の環境変数の管理

特定の.envrcの認証を取り消すには 、拒否を使用します コマンド。

$ direnv deny .			#in current directory
OR
$ direnv deny /path/to/.envrc

詳細と使用方法については、 direnvを参照してください。 マニュアルページ:

$ man direnv

さらに、 direnv stdlibも使用します ( direnv-stdlib PATHに新しいディレクトリを簡単に追加できるいくつかの機能が付属しています そしてもっとたくさんのことをします。

使用可能なすべての関数のドキュメントを見つけるには、 direnv-stdlibを確認してください。 手動入力ページ:

$ man direnv-stdlib

それが私たちがあなたのために持っていたすべてです!ご質問やご意見がございましたら、以下のフィードバックフォームをご利用ください。


  1. Rubyで環境変数を使用する方法

    環境変数はキーと値のペアであり、次のようになります。 KEY=VALUE これらの変数を使用して、コンピューター内のすべてのプログラム間で構成オプションを共有します。 そのため、それらがどのように機能するか、およびENVを使用してRubyプログラムからそれらにアクセスする方法を学ぶことが重要です。 特別な変数。 環境変数の例 : デフォルトのエディターの構成 宝石の場所をRubyに伝える(GEM_PATH / GEM_HOME ) APIキーを、ソース管理(git)にコミットせずにアプリケーションに渡す オペレーティングシステムがバイナリファイル(Windowsでは.exe)を検

  2. Windows 10 で環境変数を設定する方法

    環境変数は、PC で実行されているプログラムを構成するために使用されるグローバル値です。技術的に聞こえますが、実際には、さまざまなアプリが接続するための共有構成ストアにすぎません。 環境変数は個々のユーザー アカウントに関連付けられているため、ユーザーごとに異なる構成を使用できます。また、Windows がインストールされているディレクトリを常に指す %windir% などのグローバル システム変数もあります (例:C:Windows)。この値をハードコーディングする代わりに、アプリは Windows ディレクトリにアクセスする必要があるときに %windir% を参照できます。 多く