solution install high linux

Install: 'inappropriate ioctl for device' when running install.sh

If `curl ... | sudo bash` prints repeated 'inappropriate ioctl for device' and the OpenClaw installer fails or behaves oddly, rerun the installer with a real TTY (or disable gum), or install via npm directly.

By CoClaw Team •

Symptoms

  • While installing with the one-liner, you see repeated:
    • inappropriate ioctl for device
  • The install may still continue, but can fail later. Older installer output sometimes included a misleading historical retry such as npm install openclaw@latest failed; retrying openclaw@next; do not treat @next as the stable retry path.
  • This is most common when piping the script into sudo bash.

Cause

The installer is doing interactive / TTY-oriented work (terminal state changes + UI via gum). When you run curl ... | sudo bash, stdin often isn’t a real TTY, so those steps print inappropriate ioctl for device.

Fix

Download the script, then run it normally (interactive shell):

curl -fsSL https://openclaw.ai/install.sh -o /tmp/openclaw-install.sh
bash /tmp/openclaw-install.sh

2) Disable gum UI

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-gum

3) If Node is already installed, install via npm directly

Use this only after node -v and npm -v work in the shell where you are installing:

npm i -g openclaw@latest
openclaw gateway install

Verify

openclaw --version
openclaw gateway status

If the installer still fails, capture the lines after the first WARN npm install ... failed message (the ioctl lines are often just noise).

Verification & references

  • Reviewed by:CoClaw Code Team
  • Last reviewed:March 14, 2026
  • Verified on: Linux

References

Want to explore more? Browse all solutions or ask in the Community Forum .
Report a problem

Related Resources

npm install -g fails with EACCES / permission denied
Fix
Fix global install permission errors on Linux/macOS by switching npm's global prefix to a user-writable directory (avoid sudo).
Install/Update fails building @discordjs/opus (Raspberry Pi ARM64 and some Linux distros)
Fix
If `openclaw update` or a package install fails while building `@discordjs/opus`, install build tools and retry with the ARM64 CFLAGS workaround (or pin a known-good OpenClaw version).
Windows: installer fails and PowerShell closes before you can read the error
Fix
Recover from Windows install/bootstrap failures where the one-liner closes PowerShell too quickly by switching to a readable manual install path and validating Node/npm first.
Windows (WSL2): gateway service install fails (systemd not enabled)
Fix
Fix WSL2 gateway daemon install issues by enabling systemd in /etc/wsl.conf, shutting down WSL, and retrying openclaw gateway install.
OpenClaw Installation Troubleshooting: Node/NPM, PATH, Windows (WSL2), and Docker
Guide
A layered checklist for the most common 'can't install' / 'command not found' / 'service won't start' failures. Covers Node version, global install permissions, PATH issues, WSL2 systemd, and Docker setup gotchas.
ClawHub Usage Guide: Discover, Evaluate, Install, Upgrade, and Roll Back Skills Safely
Guide
A practical guide to using ClawHub as a skill discovery and distribution channel: how to evaluate maintainers, install in a low-risk way, upgrade without surprises, and keep a real rollback path when a skill fails or disappears.