Appimage: Difference between revisions

imported>Anoadragon453
Link to a slightly earlier section in the nixpkgs manual, so that users see that there is a type 1 and 2 of appimages.
imported>Chrillefkr
Adding binfmt_misc method to run appimage files
Line 11: Line 11:
</syntaxhighlight>
</syntaxhighlight>


== Register AppImage files as a binary type to binfmt_misc ==
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">
boot.binfmt.registrations.appimage = {
  wrapInterpreterInShell = false;
  interpreter = "${pkgs.appimage-run}/bin/appimage-run";
  recognitionType = "magic";
  offset = 0;
  mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
  magicOrExtension = ''\x7fELF....AI\x02'';
};
</syntaxhighlight>
This way AppImage files can be invoked directly.


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


See the [https://nixos.org/manual/nixpkgs/stable/#sec-pkgs-appimageTools nixpkgs manual on wrapping AppImage packages]. In short, the AppImage is extracted and any dependencies are added as nix build dependencies.
See the [https://nixos.org/manual/nixpkgs/stable/#sec-pkgs-appimageTools nixpkgs manual on wrapping AppImage packages]. In short, the AppImage is extracted and any dependencies are added as nix build dependencies.