Appimage/ru: Difference between revisions

From NixOS Wiki
Unabomberlive (talk | contribs)
Created page with "См. руководство [https://nixos.org/manual/nixpkgs/stable/#sec-pkgs-appimageTools Nixpkgs manual on wrapping AppImage packages]. Если кратко, AppImage извлекается, а все зависимости добавляются в качестве зависимостей сборки nix."
Unabomberlive (talk | contribs)
Created page with "Вы можете указать ядру Linux использовать интерпретатор (например, <code>appimage-run</code>) при выполнении определенных двоичных файлов через использование [https://en.wikipedia.org/wiki/Binfmt_misc#External_links binfmt_misc], либо по расширению имени файла, либо по совпадению магических чисел. Приве..."
Line 19: Line 19:
== Зарегистрируйте файлы AppImage как исполняемый тип в binfmt_misc ==
== Зарегистрируйте файлы AppImage как исполняемый тип в binfmt_misc ==


<div lang="en" dir="ltr" class="mw-content-ltr">
Вы можете указать ядру Linux использовать интерпретатор (например, <code>appimage-run</code>) при выполнении определенных двоичных файлов через использование [https://en.wikipedia.org/wiki/Binfmt_misc#External_links 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.
Приведенная ниже конфигурация NixOS регистрирует файлы AppImage (ELF-файлы с магическим числом "AI" + 0x02) для запуска с помощью <code>appimage-run</code> в качестве интерпретатора.
</div>


С [https://nixos.org/manual/nixos/stable/release-notes#sec-release-24.05-new-services NixOS 24.05], имеется опция binfmt:
С [https://nixos.org/manual/nixos/stable/release-notes#sec-release-24.05-new-services NixOS 24.05], имеется опция binfmt:

Revision as of 10:08, 21 July 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.

Запуск исполняемых файлов AppImage на NixOS

$ nix-shell -p appimage-run
$ appimage-run $AppImageFile

Зарегистрируйте файлы AppImage как исполняемый тип в binfmt_misc

Вы можете указать ядру Linux использовать интерпретатор (например, appimage-run) при выполнении определенных двоичных файлов через использование binfmt_misc, либо по расширению имени файла, либо по совпадению магических чисел. Приведенная ниже конфигурация NixOS регистрирует файлы AppImage (ELF-файлы с магическим числом "AI" + 0x02) для запуска с помощью appimage-run в качестве интерпретатора.

С NixOS 24.05, имеется опция binfmt:

programs.appimage = {
  enable = true;
  binfmt = true;
};

Таким образом файлы AppImage могут вызываться напрямую, как если бы они были обычными программами

Как файлы AppImage упаковываются для Nixos

См. руководство Nixpkgs manual on wrapping AppImage packages. Если кратко, AppImage извлекается, а все зависимости добавляются в качестве зависимостей сборки nix.