Appimage/ja: Difference between revisions

Haruki7049 (talk | contribs)
Created page with "Appimage"
 
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(12 intermediate revisions by 2 users not shown)
Line 4: Line 4:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Usage"></span>
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>.
== 使い方 ==
</div>
 
<span id="Run"></span>
=== 実行 ===


<div lang="en" dir="ltr" class="mw-content-ltr">
ほとんどのLinuxディストリビューションでは、<code>.AppImage</code>ファイルをダウンロードし、それを実行可能ファイル<code>chmod +x $AppImage</code>にして実行するだけです。ただし、AppImageファイルは通常(常にではないにしても)ハードコードされたパス内の特定のシステムライブラリに依存するため、NixOSではそのままでは機能しません。
== Running an AppImage file on NixOS ==
</div>


<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
Line 16: Line 16:
$ appimage-run $AppImageFile
$ appimage-run $AppImageFile
</syntaxhighlight>
</syntaxhighlight>
<span id="Packaging"></span>
=== パッケージング ===


<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
== Register AppImage files as a binary type to binfmt_misc ==
[https://nixos.org/manual/nixpkgs/stable/#sec-pkgs-appimageTools nixpkgs manual on wrapping AppImage packages]を参照してください。要するに、AppImageが抽出され、依存関係がnixビルド依存関係として追加されます。
次の例は、AppImageとしても配布されているプログラム、Qubaの派生です。
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxhighlight lang="nix">
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.
{
</div>
  lib,
  appimageTools,
  fetchurl,
}:
 
let
  version = "1.4.0";
  pname = "quba";
 
  src = fetchurl {
    url = "https://github.com/ZUGFeRD/quba-viewer/releases/download/v${version}/Quba-${version}.AppImage";
    hash = "sha256-EsTF7W1np5qbQQh3pdqsFe32olvGK3AowGWjqHPEfoM=";
  };
 
  appimageContents = appimageTools.extractType1 { inherit name src; };
in
appimageTools.wrapType2 rec {
  inherit pname version src;
 
  extraInstallCommands = ''
    substituteInPlace $out/share/applications/${pname}.desktop \
      --replace-fail 'Exec=AppRun' 'Exec=${meta.mainProgram}'
  '';
 
  meta = {
    description = "Viewer for electronic invoices";
    homepage = "https://github.com/ZUGFeRD/quba-viewer";
    downloadPage = "https://github.com/ZUGFeRD/quba-viewer/releases";
    license = lib.licenses.asl20;
    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
    maintainers = with lib.maintainers; [ onny ];
    platforms = [ "x86_64-linux" ];
  };
}
</syntaxhighlight>
 
 
<span id="Configuration"></span>
== 設定 ==
 
<span id="Register_AppImage_files_as_a_binary_type_to_binfmt_misc"></span>
=== AppImageファイルタイプをバイナリタイプとしてbinfmt_miscに登録する ===


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Since [https://nixos.org/manual/nixos/stable/release-notes#sec-release-24.05-new-services NixOS 24.05], there is a binfmt option:
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:
</div>
</div>
<syntaxhighlight lang="nixos">
<syntaxhighlight lang="nixos">
programs.appimage = {
programs.appimage = {
Line 36: Line 79:
</syntaxhighlight>
</syntaxhighlight>


<div lang="en" dir="ltr" class="mw-content-ltr">
この方法では、AppImageファイルを通常のプログラムのように直接呼び出すことができます。
This way AppImage files can be invoked directly as if they were normal programs
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
== How AppImage files are packaged by NixOS ==
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
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.
</div>


[[Category:Software{{#translation:}}]]
[[Category:Software]]