スナップとスナップストアについて知っておくべきことすべて

パッケージマネージャーは、コンピューターへのパッケージ/プログラムのインストール、更新、削除、および構成を容易にする統合サービスのセットです。

Linuxオペレーティングシステムについて具体的に話すと、APT、YUM、RPM、Pacmanなどの幅広いパッケージマネージャーから選択できます。これらの各パッケージマネージャーには、他とは一線を画すいくつかの異なる機能があります。

ただし、比較的新しいパッケージマネージャーであるSnapは、従来のパッケージマネージャーの実行可能な代替手段として登場しました。 Snap、その長所と短所、およびLinuxにSnapをインストールして使用する方法を確認しましょう。

スナップとは何ですか?

Snapは、UbuntuのメーカーであるCanonicalがLinuxプラットフォーム用に開発したクロスプラットフォームのパッケージングおよびデプロイメントシステムです。 Ubuntu、Debian、Arch Linux、Fedora、CentOS、Manjaroなど、ほとんどの主要なLinuxディストリビューションと互換性があります。

スナップは、次の3つの基本コンポーネントで構成されています。

1.スナップ

他のパッケージマネージャーと同様に、Snapもスナップと呼ばれるパッケージを備えています。これらのパッケージは、従来のパッケージマネージャーの対応するパッケージとは異なり、依存関係がなく、インストールが簡単です。

スナップは.snap拡張子で終わります。これは、基本的にSquashFS形式を使用する圧縮ファイルシステムであり、アプリケーション、その依存ライブラリ、および追加のメタデータを含むパッケージモジュール全体が含まれています。

2.スナップ

Snapd(またはsnapデーモン)は、snapメタデータを使用して、システム上のアプリケーション用の安全なサンドボックスをセットアップします。これはデーモンであるため、スナップ環境を維持および管理するタスク全体がバックグラウンドで実行されます。

3.スナップストア

スナップはSnapStoreにあり、他のパッケージマネージャーと同じように探索してダウンロードできます。さらに、独自のスナップパッケージをスナップストアに直接公開するオプションもあります。これは、従来のパッケージマネージャーでは不可能です。

これらの要素に加えて、Snapにはチャネルと呼ばれる別の重要なコンポーネントもあります。チャネルは、スナップのどのバージョンがインストールされ、システムの更新を追跡するかを定義する役割を果たします。その結果、スナップをインストールまたは更新するときに、これらの各操作で続行するチャネルを指定することができます。

要点をまとめると:

  • スナップ:アプリケーションパッケージ形式とコマンドラインインターフェイスの両方を参照するために使用されます。
  • Snapd :スナップの管理と保守に役立つSnapデーモン。
  • スナップストア:すべてのスナップのホーム。独自のスナップをアップロードし、新しいスナップを探索してインストールできます。
  • Snapcraft :独自のスナップを作成するのに役立つフレームワーク。

スナップ:良い点と悪い点

CanonicalがSnapを発表して以来、Linuxコミュニティでは、SnapがLinuxでのパッケージ配布を改善するための正しいアプローチであるかどうかについて話題になっています。これにより、2つの対立する陣営が生まれました。1つはスナップを支持し、もう1つは長期的にはそのアプローチに批判的です。

これがSnapの良い点と悪い点のすべての内訳です。

スナップを使用する利点

  1. スナップには依存関係(ライブラリ)がバンドルされており、システムで機能させるために不足している依存関係を手動でインストールする必要がなくなるため、プログラムへの即時アクセスが容易になります。
  2. 各スナップは、他のシステムパッケージとの干渉を避けるために、独自のコンテナ化されたサンドボックスで実行されます。その結果、スナップを削除すると、システムは他のパッケージに影響を与えることなく、依存関係を含むすべてのデータを削除します。言うまでもなく、これは、あるパッケージが別のパッケージの情報にアクセスできないため、より安全な環境も提供します。
  3. スナップ更新は、設定された間隔で自動的にスナップします。したがって、システムでは常に最新バージョンのプログラムを実行します。
  4. Snapを使用すると、開発者はソフトウェアをユーザーに直接配布することが容易になるため、Linuxディストリビューションが展開するのを待つ必要はありません。
  5. 前のポイントに加えて、開発者にソフトウェアのパッケージ化と配布を任せることのもう1つの利点は、必要な依存関係がバンドルされているため、開発者固有のパッケージを作成する必要がないことです。

スナップのデメリット

  1. スナップは依存関係にバンドルされているため、他のパッケージマネージャーのスナップよりもサイズが大きく、より多くのディスク領域を占有します。
  2. バンドルされた依存関係の結果として、スナップは圧縮されたファイルシステムイメージとして配布され、インストールする前に最初にマウントする必要があります。このため、スナップの実行は従来のパッケージよりも遅くなります。
  3. Snapを使用すると、開発者はスナップをユーザーに直接配布できますが、配布パイプラインでは、Canonicalでアカウントを設定し、スナップをホストする必要があります。ソフトウェアはまだオープンソースですが、パッケージ管理システムはエンティティによって制御されるため、これはオープンソース手法の本質に反します。
  4. 開発者がパッケージを配布できるようにすることのもう1つの欠点は、パッケージがコミュニティによる厳格なチェックとレビューを受けないため、マルウェアが含まれるリスクを伴うことです—数年前に見られました。
  5. Snapのバックエンドはまだクローズドソースであり、Canonicalによって制御されているため、多くの主要なLinuxディストリビューションは、Snapをシステムのデフォルトのパッケージマネージャーとして配置するという考えを持っていません。

マルウェアのリスクに関して、Snapは自動マルウェアテストを使用して、Snap Storeに配布される前に、ユーザーがアップロードしたパッケージをスキャンして悪意のあるコードを検出するようになりました。

関連:マルウェアとは何ですか?どのように機能しますか?

Linuxにsnapdをインストールする方法

snapdはSnapの重要なコンポーネントであるため、システムに最初にインストールする必要があります。ただし、次のLinuxディストリビューションのいずれかを実行している場合は、システムにスナップがプリインストールされています:KDE Neon、Manjaro、Ubuntu(16.04 / 4LTSおよび20.04LTS)、ZorinOS。

他のLinuxディストリビューションの場合は、snapdを手動でインストールする必要があります。

Debian / Ubuntuの場合:

 sudo apt update
sudo apt install snapd

CentOSやその他のRHELベースのディストリビューションにsnapdをインストールするのは簡単です。

 yum install epel-release
yum install snapd

SnapdをFedoraにインストールするには:

 sudo dnf install snapd

Arch Linuxの場合:

 git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si

関連: ArchLinuxでパッケージをインストールおよび削除する方法

Manjaro Linuxにsnapdをインストールするには:

 sudo pacman -S snapd

インストールしたら、Snapを使用する前に、(一部の)LinuxディストリビューションでSnap通信の管理を担当するsystemdユニットを有効にする必要があります。

Ubuntuとその派生物以外のLinuxディストリビューションを使用している場合は、次のコマンドを実行して、snapdsystemdユニットを有効にします。

 sudo systemctl enable --now snapd.socket

最後に、次のコマンドでシステムを再起動します。

 sudo reboot

詳細: systemctlコマンドを使用してシステムサービスを管理する方法

LinuxでSnapを使用する方法

Snapの使用は、他のパッケージマネージャーの使用と非常によく似ています。前の手順でsnapdをシステムにインストールしたので、snapツールにアクセスしてSnapStoreからスナップを簡単に操作できるようになりました。

スナップを見つける

Snapを使用すると、Snap Storeを探索して、さまざまなカテゴリのパッケージを見つけることができます。したがって、特定のカテゴリのスナップを検索する場合は、次のコマンド構文を使用します。

 snap find package_category

例えば:

 snap find development

パッケージに出くわし、それについてもっと知りたい場合は、デフォルトのコマンドでinfoメソッドを使用してください

 snap info package_name

たとえば、GIMPスナップに関する情報を抽出するには、次のようにします。

 snap info gimp

スナップのインストール

最後に、要件を満たすスナップを見つけたら、次のコマンドを実行してインストールできます。

 sudo snap install package_name

インストールすると、Linuxディストリビューションの[アプリケーション]メニューにプログラムが表示されます。その後、メニューから直接実行するか、名前を入力して端末から実行できます。

インストールされているスナップのリスト

システムにインストールされているすべてのスナップのリストを取得するには、次のようにします。

 snap list

スナップのバージョン情報の表示

スナップの現在のバージョンを知るには、次のコマンドを実行します。

 snap list package_name

スナップの更新

Snapは、システムにインストールされているパッケージを自動的に更新します。これを容易にするために、snapdはデフォルトで、1日に4回更新をチェックするように設定されています。ただし、必要に応じて、好みに応じてこの更新頻度を変更できます。

さらに、必要に応じて、次のコマンドを実行してインスタントリフレッシュを実行できます。

 snap refresh

同様に、次の方法でスナップの更新を確認することもできます。

 sudo snap refresh package_name

これを行うと、スナップはスナップによって追跡されたチャネルをチェックして、新しいバージョンを探します。アップデートが利用可能な場合は、自動的にダウンロードしてインストールします。

関連: Linux上の1つまたはすべてのアプリを数秒で更新する方法

以前に使用したバージョンのスナップに戻す

スナップの更新後に問題が発生した場合は、次のコマンドを実行して以前のバージョンに戻すことができます。

 sudo snap revert package_name

スナップの無効化と有効化

スナップを使用していないが、将来必要になる可能性がある場合は、スナップを一時的に無効にして、必要に応じてオンに戻すことができます。そうすれば、スナップをアンインストールして再インストールするという面倒なプロセスを実行する必要がありません。

スナップを無効にするには、次のように入力します。

 sudo snap disable package_name

有効にする場合は、次のコマンドを実行するだけです。

 sudo snap enable package_name

スナップの取り外し

最後に、将来必要になる可能性がない、システム上の未使用のスナップを削除するには、次のようにします。

 sudo snap remove package_name

LinuxでSnapを正常にセットアップする

ここまでガイドに従っている場合は、Linuxシステムでスナップアップして実行できます。その後、必要なパッケージのほとんどを見つけてダウンロードできるようになります。もちろん、他のパッケージマネージャーの場合と同様に、Snapに慣れるまでに時間がかかる場合があります。しかし、一度コツをつかめば、それを効果的に使うことができるでしょう。

ただし、Snapを使用することには長所と短所の両方があり、開始する前に考慮する必要があります。 Snapの代替手段(無料のオープンソース手法とうまく調和するもの)が必要な場合は、Flatpaksをチェックして、Linuxアプリをダウンロードするためのより良いストアがあるパッケージマネージャーを確認してください。