tonhowtf/omniget · error

o Spicetify nao publica binario para Linux nesta…

Error message

o Spicetify nao publica binario para Linux nesta arquitetura; instale pelo gerenciador de pacotes

What it means

`cli_asset_suffix` maps the current target OS/arch to the Spicetify CLI release asset suffix. On Linux, only x86_64 is supported; any other Linux architecture (ARM, ARM64, etc.) returns this error advising installation via the system package manager instead.

Solutions

  1. On x86_64 Linux, no action needed — this error shouldn't occur; verify build target (`uname -m`)
  2. On Linux ARM/ARM64, install spicetify-cli via the distribution package manager or build from source per spicetify docs
  3. Run the app on an x86_64 machine or under x86_64 emulation if spicetify integration is required
  4. Check upstream spicetify releases — if ARM binaries appear later, update `cli_asset_suffix`

Example fix

// before
let suffix = cli_asset_suffix()?; // hard error on linux-arm
// after
let suffix = match cli_asset_suffix() {
    Ok(s) => s,
    Err(_) => return Err(anyhow!("use system package: `sudo apt install spicetify-cli` or build from source")),
};
Defensive patterns

Strategy: validation

Validate before calling

fn spicetify_supported() -> bool {
    !cfg!(target_os = "linux") || cfg!(target_arch = "x86_64")
}
if !spicetify_supported() { eprintln!("spicetify CLI not available on this platform"); }

Try / catch

match install().await {
    Err(e) if e.to_string().contains("nao publica binario") => {
        show_hint("Install spicetify via your package manager, then retry.");
    }
    other => other,
}

Prevention

When it happens

Trigger: Calling `install()` on a Linux machine whose `target_arch` is not `x86_64` — e.g. Raspberry Pi (arm), ARM64 laptops/servers, or cross-compilation targeting non-amd64 Linux.

Common situations: Running the app on a Raspberry Pi or ARM Chromebook; aarch64 Linux servers; trying the Spicetify installer on Linux/ARM where upstream publishes no binary.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/0bd717a64bd262af. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/spicetify.rs:460

fn cli_asset_suffix() -> anyhow::Result<&'static str> {
    Ok(if cfg!(target_os = "windows") {
        if cfg!(target_arch = "aarch64") {
            "windows-arm64.zip"
        } else if cfg!(target_pointer_width = "32") {
            "windows-x32.zip"
        } else {
            "windows-x64.zip"
        }
    } else if cfg!(target_os = "macos") {
        if cfg!(target_arch = "aarch64") {
            "darwin-arm64.tar.gz"
        } else {
            "darwin-amd64.tar.gz"
        }
    } else if cfg!(target_arch = "x86_64") {
        "linux-amd64.tar.gz"
    } else {
        return Err(anyhow!(
            "o Spicetify nao publica binario para Linux nesta arquitetura; instale pelo gerenciador de pacotes"
        ));
    })
}

fn unpack_zip(data: &[u8], dest: &Path) -> anyhow::Result<()> {
    let mut archive = zip::ZipArchive::new(std::io::Cursor::new(data))
        .map_err(|e| anyhow!("zip invalido: {}", e))?;
    for i in 0..archive.len() {
        let mut file = archive.by_index(i)?;
        let Some(rel) = file.enclosed_name() else {
            continue;
        };
        let out = dest.join(rel);
        if file.is_dir() {
            std::fs::create_dir_all(&out)?;
            continue;
        }

View on GitHub (pinned to 8600b91f42)