新規ユーザーを最も混乱させるもののXNUMXつは、利用可能なプログラム形式の数です。 ディストリビューションの各ファミリには独自のものがあり、同じ形式をサポートしている場合でも、それらのXNUMXつ用に作成されたパッケージを別のファミリで使用することはできません。 これを解決するために、自己完結型アプリケーションのユニバーサルフォーマットの作業が開始されました。 これは、オペレーティングシステムの依存関係を必要としなかったということです。
このようにして、プログラムは任意のディストリビューションにインストールでき、ホストオペレーティングシステムが更新しない場合でも更新できます。 SnapとFlatpakについて話しましょう。
もちろん、オープンソースの世界ではよくあることですが、標準フォーマットに同意できなかったため、これまでにXNUMXつあります。 個人的には、今後の登場を除外することはありません。
基礎
この記事の文脈では、パッケージとプログラムは同義語ではないということから始めましょう。 パッケージ形式は、パッケージマネージャーがインストールするために必要な追加のソフトウェアとメタデータを含むファイルの一種です。。 プログラムは、ソースコードまたは実行可能ファイルの形式にすることができ、メタデータの中には、インストールディレクトリ、名前、バージョン番号、ライセンス、およびプログラムの一部であるファイルに関する情報が含まれています。
すべての携帯電話とタブレットのユーザーは、アプリストアの概念に精通しています。 これは、デバイス上の他のプログラムを検索、インストール、またはアンインストールできるようにするプログラムです。。 アプリケーションストアは、Linuxディストリビューションのパッケージマネージャーの改良版です。
パッケージマネージャーは、いわゆるリポジトリにインストールしたいプログラムを探します。 リポジトリは、特定のプログラムをダウンロードできるサーバー内の特定の場所にリダイレクトするWebアドレスです。。 インターネット接続がない場合、インストールメディアはリポジトリとして機能できますが、提供内容はそれほど広範ではなく、最新のものではありません。
リポジトリは通常、プログラムをオリジン(ディストリビューション開発者、ボランティアのサードパーティ、または組織によって追加されたもの)またはライセンス(無料またはプロプライエタリ)によってグループ化します。
製品の製造元がすべてのコンポーネントを最初から開発するわけではないのと同じように、開発者はコードで同じことを行いません。 プログラミング言語の作成者によって提供されたライブラリ(たとえば、ビデオ編集用)、ユーザーインターフェイスを構成するためのフレームワーク、および印刷などのタスクのオペレーティングシステムへの要求が使用されます。 従来のパッケージ形式をインストールする場合、管理者は、選択したアプリケーションが機能するために必要なサードパーティツールがインストールされているかどうか、またはリポジトリから入手できるかどうかを確認します。 XNUMX番目の質問に対する答えが「はい」の場合、これらの依存関係が最初にインストールされます。 そうしないと、タスクを続行できません。
私たちが分析しているXNUMXつのフォーマットの目新しさは 必要なものはすべてアプリケーションと一緒にXNUMXつのパッケージに含まれているため、プレインストールされた依存関係は必要ありません。
SnapとFlatpakの比較
スナップ
このテーマに関する他の記事を読んだ場合、誤っているのと同じくらい繰り返されるXNUMXつのステートメントに出くわすでしょう。
- Flatpakはコミュニティによって開発されたのに対し、SnapはXNUMXつの会社によってのみサポートされているため、Snapよりも優れています。
- Snapを使用すると、公式ストアを使用する必要がありますが、Flatpakリポジトリは誰でも管理できます。
Linux Addicts を読む利点は、私たちライターがコピー/ペーストするのではなく、自分が書いたものを研究できることです。 FlatpakにはRedHatの指紋がいたるところにあります。 Flatpakの特定のセクションに会社が関与していることがわかります。
XNUMX番目のステートメントについては、Linuxディストリビューションを実行しているWebサーバーはすべてSnapsストアになる可能性があるため、これは誤りです。 テスト用 このチュートリアル 2016年から。
Snapは、Canonicalによって開発されたクロスプラットフォームのパッケージングおよび配布システムです。 Linuxプラットフォーム用のUbuntuの作成者。 ほとんどの主要なディストリビューションと互換性があります。
これは、次のXNUMXつのコンポーネントで構成されています。
- スナップ: これらは、Snapが作成および配布するパッケージです。 これらは> SquashFS形式の圧縮ファイルであり、.snap拡張子で保存されます。 各ファイルには、アプリケーション、その依存ライブラリ、および必要なメタデータを含む完全なパッケージモジュールが含まれています。
- スナップ: これは、バックグラウンドでスナップが実行されるサンドボックスを作成するツールです。
- スナップショップ: これは、開発者がスナップを公開し、ユーザーがスナップをダウンロードできるようにするツールです。 一部のLinuxディストリビューションでは、従来のパッケージマネージャーが参照およびダウンロード用のグラフィカルインターフェイスとして機能します。 アプリストアは、アプリのバージョンと更新の頻度を選択できるチャネルに分割されています。
- スナップクラフト: スナップの作成を可能にするツールです。
利点と欠点
開発者の観点から、Snapは次の利点を提供します 各配布の特殊性に適合させることなく、ソフトウェアを直接配布できること Linuxを使用するか、開発者がリポジトリに含めるのを待ちます。
ユーザーには、バージョンにすばやくアクセスできるという利点があります 各ディストリビューションの更新を待たずに、または互換性の問題が発生することなく、お気に入りのプログラムの最新バージョン。
スナップパケットには パーミッションの完全なシステムであるため、相互に作用するようにパーミッションを構成できます。オペレーティングシステムとアプリケーションを通常の方法でインストールします。
Snapの強みは、プロプライエタリアプリ、または有料機能を含むアプリです。 また、Windows用のゲームやプログラムもあります。Wineは、それらとLinuxカーネルの間のブリッジとして機能する互換性レイヤーです。
不利な点のセクションには、起動時間があります。 最初のバージョンから削減されていますが、スナップ形式のアプリケーションは、通常インストールされているアプリケーションよりも起動にかなり時間がかかります。 さらに、必要なすべての依存関係を含めることにより、それが占めるサイズが大きくなります。
Snapは、デスクトップアプリケーション、サーバー、モノのインターネットに使用できます。
フラットパック
Flatpakの名前は、IKEA家具のフラットパッケージを指します。 RedHatでコンテナテクノロジーに取り組んだ後にプロジェクトを開発したAlexanderLarssonはスウェーデン人であるため、その名前は作成者の国籍だけでなく、 Linuxアプリケーションのこの「パッケージング」は、IKEAの家具用と同じくらい革新的であるという意志。
元の名前はxdg-appでした。 新しい名前の理由は薄っぺらに聞こえるかもしれませんが、それがはるかに優れていることに同意しましょう。
Red Hatとの関係については、 FAQ自体では、テクノロジーがFedoraに限定されないことを明確にするように注意を払っています。 (Red Hatがサポートするコミュニティ配布)またはGNOMEに対しても、後者の場合、多くのGNOME開発者がFlatpakの開発に参加したことを示しています。 多くのGNOME開発者が誰のために働いていると思いますか?
確かに、私はRed Hatに反対することは何もありません。彼らは、Flatpakを含め、私が使用している優れたテクノロジーを持っています。 私は単にそれを示します このパケット形式はそれほど独立していません 一部の人が信じたいように。
しかし、Flatpackとは何ですか?
Flatpakは、LinuxディストリビューションおよびnLinuxシステムのサンドボックス
重要な概念
- フラットパックアプリケーション: これらは、ユーザーがflatpakコマンドを介して、またはLinuxディストリビューションのパッケージマネージャーなどの別のユーザーインターフェイスを介してインストールするアプリケーションです。
- ランタイム: Flatpakアプリケーションが機能するために必要な基本的なユーティリティを提供する統合プラットフォーム。
- BaseApp: アプリケーション構築フレームワーク用の統合プラットフォーム。
- フラットパック: アプリケーションがエクスポートされる形式とその必要な基本ユーティリティ。
利点と欠点
Flatpakは、Snapの利点のいくつかを共有しています。 ディストリビューションとは独立してインストールでき、その操作に必要なすべての依存関係を含めることができます オペレーティングシステムとは独立して動作するため、バグや更新サイクルに縛られることはありません。
XNUMXつの特徴的な利点はeはインストールに管理者権限を必要としません そして、彼らが「デルタ更新」と呼んでいるもので、modだけが更新されます。 これにより、速度が向上します。
Flatpakダウンロードサービスは誰でも管理できます; これまでのところ、エンドユーザーにとって最も完全なものは フラット。 Linux Fedoraディストリビューションにも独自のものがあり、基本的にクラシックディストリビューションパッケージを新しいフォーマットに変換します。 GNOMEデスクトップ やってみよう あなたのアプリケーションからそれらをダウンロードすることによるあなたのアプリケーションの最新バージョンと同じ 前KDE.
デスクトップとの統合については、 formatは、主要なLinuxデスクトップのネイティブ統合を約束します そのため、ユーザーは既存のデスクトップ環境とツールを介してFlatpakアプリケーションを簡単にナビゲート、インストール、実行、および使用できます。 Ubuntu SoftwareCenterはこの形式のパッケージのインストールをサポートしていないことに注意してください。
Flatpakはディスクスペースをより有効に活用します 同じ形式のアプリケーション間でライブラリを共有できます。 Flatpak形式の強みは、コミュニティによって開発されたオープンソースアプリケーションの品揃えであり、リポジトリに入るずっと前に最新バージョンでテストできます。
開発者の観点から、 アプリケーション開発用のフレームワークGnomeBuilderを使用すると、FlatPakをグラフィカルな方法で作成できます 一連の事前定義されたランタイムを持つことに加えて、アプリケーションの作成にかかる時間を節約します。
(従来のアプリケーションよりも多くのディスクスペースを占有することに加えて)不利な点の中には、次のようなものがあります。これらはデスクトップでのみ使用でき、スナップとは異なり、特権は変更できません インストール時にオペレーティングシステムの残りの部分と対話するため。 パッケージの作成時に開発者が実行でき、その後ユーザーが サードパーティアプリケーション。
このゲームのAppImageはどうですか?
Appimageの問題は、インストール/アンインストールおよび更新するための公式ツールがないことです。 それはおそらく限界的な選択肢として残っています。
Appimagedはあなたを助けることができます。
私が少し見てきたことから、フラットパックは、アプリケーションイメージと比較してアプリケーションの点ではるかに完全です
インストールされているFlatpakアプリケーションの権限を表示および変更するための「Flatseal」と呼ばれるグラフィカルツールがあります。
情報のおかげで
ここでは、Flatpakの権限を管理するためにFlatsealを使用していないようです。
Flatsealはサードパーティのアプリケーションです。 公式ドキュメントには記載されていません。 ありがとう
?、そうです。
AppImageは、ファイルをダウンロードするだけで実行できるので、もっと気に入っています。移植性が高く、使いやすいと思います。
悪いことに、私の意見では、AppImageの背後に組織がないため、アプリケーションは忘れられがちであり、デスクトップとの統合が不足しているため、AppImageの開発がどのように進んでいるかわかりません。 AppImageには他の2ほど広い公式リポジトリがないという事実に加えて、AppImageファイルのセキュリティを検証する方法(発信元を確認する必要があります)
また、(SnapやFlatpakのように)非常に多くの未知のオプションの中から新しい選択肢を見つけるのは難しいと思います。
これはすべて、次のようなミームを思い出させます。
「Linuxには、DEB、RPM、TAR(圧縮として配布される実行可能ファイル)、SHおよびRUNファイルなど、非常に多くの種類のパッケージがあります。SolusosとGento、およびArchパッケージシステムを覚えていません...
依存関係の問題を取り除き、開発作業全体を統合する、任意の(ユニバーサル)ディストリビューションで実行される新しい、最新の革新的なタイプのファイルを作成する必要があります…»
ブーム!!
結果:3つのオプションがあります(他の誰かが何かを信じるまで)
面白いのは、そのミームにはいくつかのバージョンがあるということです。