はじめに
Linuxは、他の主流のオペレーティングシステムと比較して、ソフトウェア管理に対して異なるアプローチを採用しています。 Linuxのソフトウェアは、伝統的にリポジトリに編成されています。リポジトリには、アプリケーションと、それらを実行するために必要なすべての依存関係が含まれています。
リポジトリの使用は多くの理由で便利ですが、技術に精通していないユーザーにとっては障害となることがよくあります。 Linuxエクスペリエンスをよりユーザーフレンドリーにするために、過去2年間にいくつかの代替パッケージングシステムが作成されました。
この比較記事では、SnapパッケージシステムとAPTパッケージマネージャーの違いについて学習します。
スナップとは何ですか?
Snapは、snapsと呼ばれる自己完結型のパッケージを使用してユーザーにソフトウェアを配信するソフトウェアパッケージおよび展開システムです。スナップは、プログラムが必要とするすべての依存関係を1つのパッケージにパックします。このように、アプリはシステムに依存しません。つまり、SnapをサポートするすべてのLinuxディストリビューションでネイティブに実行できます。
APTは主にディストリビューションの公式リポジトリからパッケージを取得しますが、Snapを使用すると、開発者はSnapStoreを介してアプリをユーザーに直接配信できます。開発者は、スナップを自分のWebサイトに直接公開することもできます。
スナップ管理用のツールはスナップと呼ばれます 。これは、システムがスナップパッケージを実行できるようにするデーモンです。ユーザーはsnap
を使用してsnapdを操作します クライアント。
以下は、 snap
を使用したThunderbirdのインストール例です。 コマンド:
APTとは何ですか?
APT(Advanced Package Tool)は、Debianベースのシステムにパッケージをインストールおよび削除するためのソフトウェアパッケージマネージャーです。 APTは、パッケージの取得、構成、アップグレード、インストール、および削除のプロセスを自動化します。 APTは、Debianの基本パッケージ管理システム dpkgのフロントエンドです。 。
APTの主な利点の1つは、ソフトウェアの依存関係を処理する方法です。ユーザーがパッケージをインストールするコマンドを発行すると、APTはリポジトリでパッケージの依存関係を検索し、システムにまだインストールされていないものをインストールします。
APTが主にユーザーとのインターフェースに使用するツールは、 apt
です。 。このユーティリティは、最も人気のあるapt-getと apt-cache
を提供します 使い勝手が悪いと考えられるコマンド。
スクリーンショットは、 apt
を使用してThunderbirdをインストールする方法を示しています :
スナップ対APT:違い
SnapとAPTの違いについて詳しく説明する前に、それらを比較できるレベルを理解する必要があります。
次の表は、用語を説明し、主な比較ポイントを示しています。
スナップ | APT | |
---|---|---|
パッケージタイプ | .snap | .deb |
ツール名 | snapd | APT |
CLIツール | snap | apt |
フォーマット | SquashFSアーカイブ | arアーカイブ |
利用可能 | スナップストア | Debianリポジトリ |
インストールサイズ | 大きい | 小さい |
依存関係 | パッケージに含まれています | 共有 |
更新 | 自動 | 手動 |
セキュリティの制限 | 制限付き | 制限された閉じ込め |
複数のインストール | 可能 | できません |
複数バージョンのインストール | 可能 | できません |
パッケージ形式
スナップ .snap
を使用します ファイル。SnapStoreまたは開発者のWebサイトからダウンロードできます。 .snap
ファイルには、アプリケーション、その依存関係、およびSquashFS圧縮ファイルシステムのメタデータが含まれています。
スナップアプリケーションは、Dockerがコンテナーをパックする方法と同様にコンテナー化されます。ただし、Dockerコンテナとは異なり、スナップアプリは、主に構成ファイルの保存とシステムのI / Oの使用のために、ホストシステムへのアクセスが制限されています。
APT .deb
を使用します それらをサポートする各Linuxディストリビューションのオンラインソフトウェアリポジトリからのファイル。 .deb
fileはUnixアーカイブであり、2つのtarアーカイブが含まれています。 1つのアーカイブには制御情報が含まれ、他のアーカイブにはパッケージのインストールに使用されるファイルが含まれています。
パッケージサイズ
スナップ 自己完結型であるため、比較的サイズの大きい .snap
ファイル。ユーザーがスナップをインストールすると、ファイルは解凍され、読み取り専用のループバックデバイスとしてホームディレクトリにマウントされます。
APTを介してインストールされたアプリケーション パッケージの依存関係をバンドルする必要がないため、スナップサイズよりもサイズが小さくなります。
依存関係
スナップ パッケージ内にパッケージの依存関係をバンドルします。このアプローチはパッケージサイズに悪影響を及ぼしますが、主な利点は、ユーザーが常にサポートされテストされたバージョンのパッケージを使用できることです。
APT 共有依存関係アプローチを利用します。ユーザーがapt install
を発行したとき コマンドを実行すると、APTは依存関係のリストを読み取り、システムにすでにいくつかのパッケージがインストールされているかどうかを確認し、不足しているパッケージをインストールします。この手法は、小さなメモリフットプリントを維持します。
使いやすさ
エンドユーザーの使いやすさの違いは重要ではありません。 スナップ アプリは普遍的であり、開発者が維持するのにより実用的です。アップデートのリリースは、単一のパッケージを変更する簡単なプロセスです。
一方、 APT リポジトリをチェックして更新を見つけます。アップデートの準備ができたら、リポジトリシステムはディストリビューションごとに(Ubuntu、Linux Mint、Pop!OSなど)、ディストリビューションバージョンごとに(Ubuntu 18.04、Ubuntu 20.04など)別々のバージョンを必要とします。この方法は時間がかかり、特定の配布で遅延が発生する場合があります。
速度
スナップ APTよりも起動時間が長い OSは、ディスク領域を節約するために最初の使用時にスナップを解凍するためです。ただし、スナップは最初の実行でのみ遅くなります。2回目の起動で差が小さくなるか、完全に消えます。
更新
スナップ 更新プロセスは自動です。ユーザーはスナップアプリの更新を防ぐことはできず、プロセスを遅らせるだけです。 Snapの開発者は、いつアップデートをリリースできるかという点で制限はありません。
APT 更新プロセスに対する完全な制御をユーザーに付与します。ただし、ディストリビューションがリリースをカットすると、通常はデブがフリーズし、リリース期間中は更新されません。したがって、Snapは、最新のアプリバージョンを好むユーザーにとってより優れたソリューションです。
GUI統合
スナップ 普遍的になるように設計されています。そのため、さまざまなディストリビューションのGUIと完全に統合することはできません。
最近、テーマの統合に関してSnapコミュニティでいくつかの開発が行われています。これには、テーマの変更を監視し、ユーザーがOSテーマに準拠するようにアプリを調整できるようにするバックグラウンドサービスの導入が含まれます。ただし、これは進行中の作業であり、スナップはまだホストOSに完全には統合されていません。
反対側では、 .deb
APTが使用するファイル ディストリビューションおよびバージョン固有であるため、テーマの統合に関してデフォルトのLinuxエクスペリエンスが提供されます。
セキュリティ
スナップ 署名の検証をサポートし、その制限された性質を考えると、アプリのデプロイのための安全なソリューションと見なされます。ただし、パブリッシャーはアプリをユーザーに直接提供するため、ユーザーはパブリッシャーを信頼する必要があります。外部レビューは実行されません。
一方、すべてのLinuxディストリビューションは、リポジトリに含まれているdebsをレビューします。つまり、 APT ユーザーは、アプリが信頼できるソースからのものであることを確認できます。これは、発行元のWebサイトで利用可能なサードパーティのリポジトリまたはデブには適用されません。
スナップ対APT:どちらを選択しますか?
スナップを選択します 場合:
- 不要なパッケージをシステムに統合したくない。スナップを使用すると、パッケージは
.snap
に限定されたままになります パッケージ。 - アプリの最新バージョンを使用していることを確認する必要があります。特定のディストリビューションの機能がフリーズすることなく、更新を自動的かつ継続的にスナップします。
- アプリを分離したい。
APTを選択します 場合:
- 使用しているディストリビューションによってアプリがレビューされることを希望します。
- ストレージスペースの節約について懸念があります。 APTによってインストールされたアプリは、依存関係を共有します。
- アプリをGUI環境に適切に統合する必要があります。