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