Jump to content

Appimage: Difference between revisions

mention binfmt option (adapted from old wiki)
m (attached to category:software)
(mention binfmt option (adapted from old wiki))
Line 14: Line 14:
You can tell the Linux kernel to use an interpreter (e.g. <code>appimage-run</code>) when executing certain binary files through the use of [https://en.wikipedia.org/wiki/Binfmt_misc#External_links binfmt_misc], either by filename extension or magic number matching. Below NixOS configuration registers AppImage files (ELF files with magic number "AI" + 0x02) to be run with <code>appimage-run</code> as interpreter.
You can tell the Linux kernel to use an interpreter (e.g. <code>appimage-run</code>) when executing certain binary files through the use of [https://en.wikipedia.org/wiki/Binfmt_misc#External_links binfmt_misc], either by filename extension or magic number matching. Below NixOS configuration registers AppImage files (ELF files with magic number "AI" + 0x02) to be run with <code>appimage-run</code> as interpreter.


<syntaxhighlight lang="nix">
Since [https://nixos.org/manual/nixos/stable/release-notes#sec-release-24.05-new-services NixOS 24.05], there is a binfmt option:
boot.binfmt.registrations.appimage = {
 
  wrapInterpreterInShell = false;
<syntaxhighlight lang="nixos">
  interpreter = "${pkgs.appimage-run}/bin/appimage-run";
programs.appimage.binfmt = true;
  recognitionType = "magic";
  offset = 0;
  mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
  magicOrExtension = ''\x7fELF....AI\x02'';
};
</syntaxhighlight>
</syntaxhighlight>


This way AppImage files can be invoked directly.
This way AppImage files can be invoked directly as if they were normal programs


== How AppImage files are packaged by NixOS ==
== How AppImage files are packaged by NixOS ==