Skip to content

AI-Toolkit installation fails on Linux due to missing PATH entries #1577

@Karlos5000

Description

@Karlos5000

What happened?

Bug Report: AI-Toolkit installation fails on Linux due to missing PATH entries

Environment:

  • OS: Linux (CachyOS / Arch-based)
  • Stability Matrix version: latest
  • Package: AI-Toolkit

Issue:

Installing AI-Toolkit fails with two separate errors caused by Stability Matrix running child processes with a restricted PATH environment that does not
include /usr/bin.

Error 1 — npm install fails:
npm error code ENOENT
npm error syscall spawn sh
npm error path .../AI-Toolkit/ui/node_modules/prisma
npm error errno -2
npm error enoent spawn sh ENOENT
Prisma's postinstall script spawns sh via Node.js child_process. Because Stability Matrix's RunNpm does not include /usr/bin in PATH, sh cannot be found
even though it exists at /usr/bin/sh.

Error 2 — GPU detection fails in the Web UI:
No NVIDIA GPUs detected! nvidia-smi is not available on this system.
nvidia-smi not found or not accessible
ui/src/app/api/gpu/route.ts runs which nvidia-smi via exec(). The Node.js process inherits SM's restricted PATH, so nvidia-smi is not found even though it
exists at /usr/bin/nvidia-smi.

Root cause:

UnixPrerequisiteHelper.RunNpm and the Next.js server process are started without /usr/bin in PATH. On Linux, /usr/bin is not guaranteed to be inherited —
it must be explicitly set.

Suggested fix:

When launching any subprocess on Linux, ensure PATH includes at minimum /usr/bin:/usr/local/bin:/bin. For example:
env["PATH"] = "/usr/bin:/usr/local/bin:/bin:" + (env.GetValueOrDefault("PATH") ?? "");

Workarounds applied by user:

  1. Created symlink: ln -s /usr/bin/sh /mnt/.../Assets/nodejs/bin/sh
  2. Patched compiled Next.js route to use absolute path /usr/bin/nvidia-smi -L

Steps to reproduce

No response

Relevant logs

Version

v2.16.0-dev.2+c162a79

What Operating System are you using?

Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions