Appimage: Difference between revisions
Haruki7049 (talk | contribs) Marked this version for translation |
Restructure page |
||
Line 7: | Line 7: | ||
On most distros, all one has to do is download the <code>.AppImage</code> file, make it executable <code>chmod +x $AppImage</code>, and execute it. This doesn't work in NixOS out of the box though, as AppImage files usually (if not always) depend on certain libraries commonly found on other Linux distributions to exist on certain paths; such as <code>/lib64/ld-linux-x86-64.so.2</code>. | On most distros, all one has to do is download the <code>.AppImage</code> file, make it executable <code>chmod +x $AppImage</code>, and execute it. This doesn't work in NixOS out of the box though, as AppImage files usually (if not always) depend on certain libraries commonly found on other Linux distributions to exist on certain paths; such as <code>/lib64/ld-linux-x86-64.so.2</code>. | ||
== Running an AppImage file on NixOS == <!--T:3--> | == Usage == | ||
=== Running an AppImage file on NixOS ===<!--T:3--> | |||
</translate> | </translate> | ||
Line 16: | Line 18: | ||
<translate> | <translate> | ||
== Register AppImage files as a binary type to binfmt_misc == <!--T:4--> | == Configuration == | ||
=== Register AppImage files as a binary type to binfmt_misc ===<!--T:4--> | |||
<!--T:5--> | <!--T:5--> |
Revision as of 18:21, 1 August 2024
AppImage is a monolithic packaging format for linux applications. It contains all dependencies in one file that is composed of an executable with a tacked on filesystem.
On most distros, all one has to do is download the .AppImage
file, make it executable chmod +x $AppImage
, and execute it. This doesn't work in NixOS out of the box though, as AppImage files usually (if not always) depend on certain libraries commonly found on other Linux distributions to exist on certain paths; such as /lib64/ld-linux-x86-64.so.2
.
Usage
Running an AppImage file on NixOS
$ nix-shell -p appimage-run
$ appimage-run $AppImageFile
Configuration
Register AppImage files as a binary type to binfmt_misc
You can tell the Linux kernel to use an interpreter (e.g. appimage-run
) when executing certain binary files through the use of 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 appimage-run
as interpreter.
Since NixOS 24.05, there is a binfmt option:
programs.appimage = {
enable = true;
binfmt = true;
};
This way AppImage files can be invoked directly as if they were normal programs
How AppImage files are packaged by NixOS
See the nixpkgs manual on wrapping AppImage packages. In short, the AppImage is extracted and any dependencies are added as nix build dependencies.