Skip to content

Linux compatibility: tested in theory, untested in practice — feedback wanted #6

@aweussom

Description

@aweussom

Linux compatibility: tested in theory, untested in practice — looking for feedback

The codebase is now (probably) cross-platform — PowerShell scripts use #requires -Version 7.0 and branch on the $IsWindows automatic variable; the Python server (nollama.py) was always platform-agnostic. But the only machines I have access to are Windows 11 boxes, so the Linux path is untested in practice. Opening this issue so a Linux user landing here knows what's claimed and what isn't, and so anyone who tries it has a place to report what they find.

What's been done

  • install.ps1, start-template.ps1, download-model.ps1 are all gated to PowerShell 7+ (cross-platform; install from Microsoft's docs)
  • venv layout branches: venv\Scripts\ on Windows, venv/bin/ on Linux
  • The model directory link uses junctions on Windows, symbolic links on Linux (New-Item -ItemType SymbolicLink)
  • Initial Python bootstrap detects python or python3 automatically
  • Port-pick uses System.Net.Sockets.TcpListener (cross-platform .NET)
  • Browser auto-open uses Start-Process wrapped in try/catch — headless boxes just print the URL

What's untested

  • Whether pwsh install.ps1 actually runs end-to-end on a clean Linux install
  • Whether New-Item -ItemType SymbolicLink for ./model~/models/<name> works correctly across the OpenVINO model load
  • Whether OpenVINO's Linux NPU stack (via intel-npu-driver userspace) actually loads NPU models — Intel ships Linux NPU support but it's less battle-tested than the Windows path
  • Whether the openvino-genai Python wheels work cleanly on common Linux distros (Ubuntu 22.04+, Fedora, Arch...)
  • Whether hf and optimum-cli work as expected after Linux venv activation (theory: yes, they're standard Python entry points)

If you're trying this

A minimal smoke test would be:

  1. Clone the repo on a Linux box with PowerShell 7+ installed and an Intel CPU (NPU and GPU optional but appreciated)
  2. Install python3 3.10+ if needed
  3. pwsh ./install.ps1 and pick a small model (DeepSeek-1.5B INT4 is fast, Phi 3.5 Mini is the next step up)
  4. pwsh ./start.ps1
  5. curl http://localhost:8000/health — should report ready with device names
  6. Open the web UI and try a chat

What would be most useful in a reply

  • Distro + version + kernel
  • Output of pwsh --version, python3 --version, and lscpu | grep -i 'model name'
  • Whether install.ps1 completes cleanly
  • Whether the model loads on its detected device(s)
  • Any error messages, ideally with full stack traces
  • If something needs editing in the .ps1 scripts to work, the smallest diff that does it

No pressure to fix anything yourself — even just "it crashed at step X with this error" is genuinely useful data. If it works as-is on your system, that's also worth saying so the project can claim Linux properly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions