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. | ||