devlog

tauri でコマンドを実行するときPATHが通らない

2023-05-06

こんにちは。

tauri でコマンドを実行するときハマったのでメモ書きです。
なお @tauri-apps/api/shell の話ではありません。Rustで子プロセスを作りコマンドを実行してます。

コマンドが見つからない

次のようなコードを書いてました。

use std::process::{Command, Stdio}; use std::error::Error; fn run() -> Result<String, Box<dyn Error>> { // コマンド実行 let output = Command::new("node") .args("--version") .stdout(Stdio::piped()) .stderr(Stdio::piped()) .output() .unwrap(); Ok(String::from_utf8(output.stdout).unwrap()) }

tauri dev では動くのですが、いざビルドしてみると動きません。「コマンドが見つからない」と言われてしまいます。PATHが通っていないようです。

解決策

tauri-apps/fix-path-env-rs が有用です。

README.md に書いてありますが、GUI アプリの場合、zshrc などが読み込まれないようです。

言われてみれば当たり前ですが。
結果として fork された子プロセスでもコマンドが見つかりません。(おそらく)

Links

  • 作成日
    2023-05-06
  • 更新日
    2023-05-06