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
tecmint_projectsに移動するたびに ディレクトリ、.envrc
次のスクリーンショットに示すように、ファイルがロードされます:
$ cd tecmint_projects/
特定の.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
それが私たちがあなたのために持っていたすべてです!ご質問やご意見がございましたら、以下のフィードバックフォームをご利用ください。
-
Rubyで環境変数を使用する方法
環境変数はキーと値のペアであり、次のようになります。 KEY=VALUE これらの変数を使用して、コンピューター内のすべてのプログラム間で構成オプションを共有します。 そのため、それらがどのように機能するか、およびENVを使用してRubyプログラムからそれらにアクセスする方法を学ぶことが重要です。 特別な変数。 環境変数の例 : デフォルトのエディターの構成 宝石の場所をRubyに伝える(GEM_PATH / GEM_HOME ) APIキーを、ソース管理(git)にコミットせずにアプリケーションに渡す オペレーティングシステムがバイナリファイル(Windowsでは.exe)を検
-
Windows 10 で環境変数を設定する方法
環境変数は、PC で実行されているプログラムを構成するために使用されるグローバル値です。技術的に聞こえますが、実際には、さまざまなアプリが接続するための共有構成ストアにすぎません。 環境変数は個々のユーザー アカウントに関連付けられているため、ユーザーごとに異なる構成を使用できます。また、Windows がインストールされているディレクトリを常に指す %windir% などのグローバル システム変数もあります (例:C:Windows)。この値をハードコーディングする代わりに、アプリは Windows ディレクトリにアクセスする必要があるときに %windir% を参照できます。 多く