スナップとスナップストアについて知っておくべきすべてのこと
コマンドラインパッケージマネージャーの急な習得曲線に圧倒されていますか?今日からSnapとSnap Storeを始めましょう。
パッケージマネージャーとは、コンピューター上でパッケージやプログラムのインストール、更新、削除、構成を容易にするための統合サービスのセットです。
Linuxオペレーティングシステムについて具体的に話すと、APT、YUM、RPM、Pacmanなど、幅広いパッケージマネージャーの中から選ぶことができます。これらのパッケージマネージャーそれぞれには、他のものと差別化する独自の特徴があります。
しかし、比較的新しいパッケージマネージャーであるSnapは、従来のパッケージマネージャーの有力な代替手段として登場しました。Snapの利点と欠点、そしてLinuxにインストールして使用する方法を見てみましょう。
スナップとは何ですか?
Snapは、Ubuntuの開発元であるCanonicalによって開発されたクロスプラットフォームのパッケージングおよびデプロイメントシステムで、Linuxプラットフォーム用です。Ubuntu、Debian、Arch Linux、Fedora、CentOS、Manjaroなど、大多数の主要なLinuxディストリビューションと互換性があります。
スナップは三つの基本的な要素で構成されています:
1. スナップ
他のパッケージマネージャーと同様に、Snap にはスナップと呼ばれるパッケージもあります。これらのパッケージは、従来のパッケージマネージャーのものとは異なり、依存関係がなく、インストールが簡単です。
スナップは.snap拡張子で終わり、これは本質的にSquashFS形式を使用した圧縮ファイルシステムであり、アプリケーション、依存ライブラリ、追加のメタデータを含むパッケージモジュール全体を含んでいます。
2. スナップd
Snapd(またはスナップデーモン)は、システム上のアプリケーションのために安全なサンドボックスを設定するためにスナップメタデータを使用します。デーモンであるため、スナップ環境の維持と管理に関するすべての作業はバックグラウンドで行われます。
3. スナップストア
スナップはスナップストアにあります。その他のパッケージマネージャーと同様に、探索してダウンロードすることができます。さらに、自分自身のスナップパッケージをスナップストアに直接公開するオプションもありますが、これは従来のパッケージマネージャーでは不可能です。
これらの要素に加えて、Snapにはチャネルと呼ばれるもう一つの重要なコンポーネントがあります。チャネルは、どのバージョンのスナップがインストールされ、システム上でアップデートが追跡されるかを定義する役割を担っています。その結果、スナップをインストールまたは更新する際には、これらの操作ごとに進めたいチャネルを指定することができます。
要約すると:
- スナップ: アプリケーションパッケージ形式とコマンドラインインターフェースの両方を指すために使用されます。
- Snapd: スナップを管理し、維持するのに役立つスナップデーモンです。
- スナップストア: すべてのスナップが集まる場所; 自分のスナップをアップロードしたり、新しいスナップを探してインストールしたりできます。
- Snapcraft: あなた自身のスナップを構築するのに役立つフレームワークです。
スナップ:良いことと悪いこと
CanonicalがSnapを発表して以来、Linuxコミュニティの間で、SnapがLinuxのパッケージ配布を改善するための正しいアプローチであるかどうかについての議論が巻き起こっています。これにより、Snapを支持するキャンプと、その長期的なアプローチに批判的なキャンプの二つの opposing camps が生まれました。
Snapの良い点と悪い点のすべてを分解したものです。
Snapを使用する利点
- スナップは、プログラムへの即時アクセスを促進する依存関係(ライブラリ)と一緒にバンドルされているため、システムで動作させるために不足している依存関係を手動でインストールする必要がなくなります。
- 各スナップは、他のシステムパッケージとの干渉を避けるために、独自のコンテナ化されたサンドボックス内で実行されます。その結果、スナップを削除すると、システムは他のパッケージに影響を与えることなく、依存関係を含むすべてのデータを削除します。言うまでもなく、これにより、1つのパッケージが別のパッケージの情報にアクセスできないため、より安全な環境が提供されます。
- Snapは設定された間隔で自動的にスナップを更新します。そのため、常にシステム上でプログラムの最新バージョンを実行しています。
- Snapは、開発者が自分のソフトウェアをユーザーに直接配布することを容易にし、ユーザーがLinuxディストリビューションによる展開を待たなくても済むようにします。
- 前の点に加えて、開発者が自分のソフトウェアのパッケージ作成と配布を担当するもう一つの利点は、必要な依存関係が付属しているため、ディストリビューション固有のパッケージを作成する必要がないことです。
Snapの欠点
- スナップは依存関係と一緒にバンドルされるため、他のパッケージマネージャーのパッケージに比べてサイズが大きく、ディスクスペースを多く占有します。
- バンドルされた依存関係の結果として、スナップは圧縮されたファイルシステムイメージとして配布され、インストールする前にまずマウントする必要があります。このため、スナップは従来のパッケージよりも実行が遅くなります。
- Snapは開発者が自分のスナップをユーザーに直接配布できるようにしますが、配布のパイプラインではCanonicalにアカウントを作成し、その上にスナップをホストする必要があります。これはオープンソースの本質に反します。なぜなら、ソフトウェアは依然としてオープンソースであるものの、パッケージ管理システムが特定の団体によって管理されているからです。
- 開発者がパッケージを配布することを許可するもう一つの欠点は、パッケージがコミュニティによる厳格なチェックやレビューを通過しないため、マルウェアが含まれているリスクがあることです──数年前に見られたように。
- Snapのバックエンドが依然としてクローズドソースでありCanonicalによって管理されているため、多くの主要なLinuxディストリビューションは、Snapをデフォルトのパッケージマネージャーとして自分のシステムに導入することに反対しています。
マルウェアのリスクに関して、Snapは現在、自動マルウェアテストを使用して、Snapストアで配布される前にユーザーがアップロードしたパッケージを悪意のあるコードがないかスキャンしています。
Linuxにsnapdをインストールする方法
snapdはSnapの重要なコンポーネントなので、システムに最初にインストールする必要があるものです。ただし、以下のLinuxディストリビューションのいずれかを実行している場合、既にシステムにsnapdがプリインストールされています:KDE Neon、Manjaro、Ubuntu(16.04/4 LTSおよび20.04 LTS)、Zorin OS。
他のいくつかのLinuxディストリビューションの場合、snapdを手動でインストールする必要があります。
Debian/Ubuntuで:
sudo apt update
sudo apt install snapdCentOSおよびその他のRHELベースのディストリビューションにsnapdをインストールするのは簡単です。
yum install epel-release
yum install snapdFedoraにsnapdをインストールするには:
sudo dnf install snapdArch Linuxで:
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -siManjaro Linuxにsnapdをインストールするには:
sudo pacman -S snapdインストールが完了したら、Snapを使用する前に、Snap通信を管理するsystemdユニットを有効にする必要があります(いくつかの)Linuxディストリビューションで。
Ubuntuおよびその派生版以外のLinuxディストリビューションを使用している場合は、スナップd systemdユニットを有効にするために以下のコマンドを実行してください:
sudo systemctl enable --now snapd.socket最後に、次のコマンドでシステムを再起動してください:
sudo rebootLinuxでSnapを使用する方法
Snapの使用は、他のパッケージマネージャーの使用に非常に似ています。前のステップでsnapdをシステムにインストールしたので、今はsnapツールにアクセスし、Snap Storeからスナップと簡単にやり取りできます。
スナップを見つける
Snapを使うと、Snapストアを探索し、さまざまなカテゴリーのパッケージを見つけることができます。特定のカテゴリーのスナップを探したい場合は、以下のコマンド構文を使用してください:
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そうすることで、Snapはスナップで追跡されているチャネルの新しいバージョンを確認します。更新が利用可能な場合は、自動的にダウンロードしてインストールします。
スナップの以前使用されたバージョンに戻す
スナップを更新した後に問題が発生している場合は、次のコマンドを実行して以前のバージョンに戻すことができます:
sudo snap revert package_nameスナップの無効化と有効化
スナップを使用していない時に、将来的に必要になるかもしれない場合には、一時的に無効にし、必要な時に再び有効にすることができます。そうすれば、スナップをアンインストールして再インストールする面倒な手続きをする必要がありません。
スナップを無効にするには、次のように入力します:
sudo snap disable package_name有効にしたいときは、単に実行してください:
sudo snap enable package_nameスナップを取り外す
最後に、将来的におそらく必要ないシステム上の未使用のスナップを削除するには:
sudo snap remove package_nameLinuxでSnapを成功裏に設定する
このガイドをここまで読み進めていれば、LinuxシステムでSnapを実行できているはずです。その後、必要なパッケージのほとんどを見つけてダウンロードできるようになるでしょう。もちろん、他のパッケージマネージャーと同様に、Snapに慣れるまでには少し時間がかかるかもしれません。しかし、一旦コツを掴めば、効果的に使用できるようになります。
とはいえ、Snapを使用することには利点と欠点があるので、始める前に考慮するべきです。Snapの代替案をお探しなら、自由かつオープンソースの方法論に合ったものとして、Flatpaksをチェックして、どのパッケージマネージャーがLinuxアプリをダウンロードするためのより良いストアを持っているかをよりよく理解してください。
