問題タブ [env]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - %ENVが機能せず、共有ライブラリを使用できません
%ENV
Perlスクリプトでvarを使用してOracleライブラリを使用することはできません。
印刷$ENV{'ORACLE_HOME'}
して$ENV{'LD_LIBRARY_PATH'}
すべて問題ないように見えても、スクリプトを実行するとエラーが発生します。
install_driver(Oracle)が失敗しました:モジュールDBD ::Oracleの「/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so」をロードできません:libclntsh.so.10.1:共有オブジェクトファイルを開くことができません:いいえそのようなファイルまたはディレクトリ(/usr/lib64/perl5/DynaLoader.pm行200)。at(eval 3)行3コンパイルがrequire at(eval 3)行3で失敗しました。必要な共有ライブラリまたはdllが予期した場所にインストールされていない可能性があります。 persistence.perlの22行目
Webで検索すると、Perlでenv変数を設定する正しい方法は%ENV
ハッシュを使用することであることがわかりました。
エクスポートORACLE_HOME
しLD_LIBRARY_PATH
てunixシェル(export LD_LIBRARY_PATH=...
)を介して正しく動作します。何かアドバイス?
perl - 環境変数を fcgi に渡す (perl)
mod_fcgidで実行されているApache 2 Webサーバーがあります。CGI スクリプトは、いくつかの環境変数を渡し、次に perl プログラムを実行することによって実行されます。
これは fcgi なしで実行すると問題なく動作しますが、有効にすると (たとえば、.htaccess の「SetHandler fcgid-script」を介して)、TEST_VAR が渡されません (最初の実行でも)。それ以外では、fcgi は機能しているようです。
これに対するアイデア、または提案されたアプローチはありますか?さまざまな構成上の理由から、上記のように環境を外部で設定することをお勧めしますが、必須ではありません。
ありがとう!
java - perl から system() または IPC::Run3 コマンドを呼び出すと、環境変数 ($ENV{JAVA_HOME}) が渡されないようです。
perl から Java プロセスを起動するのに苦労しています。問題の根本は、Java プロセスがJAVA_HOME
環境変数を欠いているために、 ClassNotFoundException
.
IPC::Run3
STDIN/STDOUT のリダイレクトが比較的洗練されているため、使用を開始しました。
IPC::Run3
を使用すると仮定して%ENV
、追加してみまし$ENV{JAVA_HOME}
た。
それがうまくいかなかったとき、私はやってみsystem()
ました。それはうまくいかなかったので、最終的に、私はそれを使って動作させましたsystem("JAVA_HOME=/path/to/java && /path/to/java_program");
私のテストプログラムは以下です。当然、適切なブロックのコメントを外して、適切な呼び出しをテストします。
run3 を実行した結果は次のとおりです。
そして、最初の system() 呼び出しの出力:
最後に、3 番目のシステム コール (動作する唯一のシステム コール) で、環境変数がインラインに設定されています。
最後に質問: system() 呼び出しに沿って環境を設定する必要があることを除けば、環境変数を IPC::Run3 または system() 呼び出しに渡す適切な方法は何ですか?
(注: %ENV の出力は、関連する行のみに切り捨てられます... PATH、SHELL、_ などの行は、省略された質問に関連しません)
関連する場合:
php - PHP は $_SESSION の代わりに $_ENV を使用します
$_SESSION を使用するのではなく、$_ENV を使用してグローバル スクリプト変数を保持することに危険はありますか? 2 つのスーパーグローバルの違いは理解できますが、$_SESSION よりも $_ENV を使用した場合の影響はわかりませんか? $_SESSION はより多くのセキュリティを提供しますか?
macos - Mac OS:/ usr / bin / env:インタプリタが正しくありません:操作は許可されていません
このスクリプトをMacOS10.7(Lion)で実行しようとすると、次のエラーが発生します。
私は他のMacでこのスクリプトを正常に実行しました。これは、DaringFireballからダウンロードされて変更されていないこのスクリプトだけです。
私はこの人が非常によく似た問題を抱えていることを発見しましたが、受け入れられた答えは、ファイルシステムにマウント時に「noexe」オプションがあるというものでした。/ usr / local / bin /にあるので、そうではないと確信しています。そこにある他のものは正常に機能します(他の場所から、またはrootを含む他のユーザーとしても実行されません) 。
これは、コンパイルされたバイナリではなく、Perlスクリプトであり、それが問題になることはありません。価値があるものについての追加情報は次のとおりです。
python - envを使用して初期環境を設定すると、UbuntuでのPythonスクリプトの起動が停止するのはなぜですか?
「test.py」などのテストスクリプトがあり、スクリプトが開始する前に特定の環境変数を設定して実行するように作成したいと思います。
これを実行すると、通常は期待どおりに機能します。
ただし、プログラムとして実行すると、次のようになります。
文字列が出力されることはありません。代わりに、実行が停止し、「top」が100%CPUを使用している「test.py」と呼ばれるプロセスを報告します。
これは私のUbuntuマシンでのみ発生し、OSXでは問題ないようです。
その理由は、最終的には、次のように設定して、特定のスクリプトを常に32ビットPythonで実行するようにしたいためです。
ファイルの先頭にあります。ただし、スクリプトがLinuxマシンで実行されないことを意味する場合、これは失敗です。指定された環境変数が何と呼ばれていても、同様の効果があることがわかりました。ただし、環境変数が設定されていない場合:
スクリプトは問題なく実行されます。
これはPythonまたはのバグenv
ですか、それとも何か間違ったことをしていますか?
perl - ソースを bash スクリプトで使用する
perlbrew を使用して CentOS 5.x サーバーに Perl 5.010 を必要とするコードの一部をインストールしましたが、2 行が必要です。
と
/usr/bin/env に perl 5.010 をインストールする前にシェルで実行する必要があるため、次の実行可能な bash スクリプトを作成して、これらの 2 つの手順を最小限に抑えようとしました。./setEnv.sh
shell - busybox 内のすべての環境変数名を一覧表示する
複数行の値を持つ環境変数は、env
の出力を混乱させる可能性があります。
この場合、間違った名前が表示されるため、すべての名前を抽出するために使用することはできません。awk -F=
C
E
次に、各出力行を改行ではなく 0 バイトで終了env
するフラグをサポートしていることがわかったので、使用すると、次の値を切り捨てることができます。-0
sed
bash
ただし、 BusyBox のバージョンのはflagenv
をサポートしていません-0
。それを行う別の方法はありますか?
emacs - eLispからenvを呼び出し、ターゲットプログラムへのパスを適切にエスケープするにはどうすればよいですか?
私がやろうとしていることは次のとおりです。
pj-path
つまり、いくつかの変数が設定された環境でプログラムを呼び出したいと思います。
この行(format "'%s'" pj-path)
では、一重引用符と二重引用符を試しましたが、env
パスの展開は行われず、引用符で囲まれている場合は、ファイルが見つからず、文字列として扱われます。ただし、引用符で囲まれていない場合は、最初の空白までの文字列の部分をプログラムへのパスとして解釈します。
スペースをエスケープすると(前に円記号を付ける場合のように)、機能しているように見えますが、コマンドの実行をシェルが混乱させるのは、確かに空白だけではありません。
それで、eLispのenvに渡されるべき実行可能ファイルの名前をエスケープする適切な方法は何ですか?
shell - 不明なパスのシェルスクリプトシバン
実行したいプログラムのパスがわからなくても、シバンラインを指定することはできますか?
たぶんパスを指定しないでください
またはいくつかのオプションを指定します
クロスプラットフォームソリューションの追加ポイント(Linux、BSD、OSXなどのさまざまなフレーバー...)