Ubuntuの背後にある会社であるCanonicalによって開発され、元々はUbuntuで使用することを目的としていた、Snappyパッケージマネージャーは、スナップパッケージのインストールと管理に使用される無料のオープンソースソフトウェアです。 Snapパッケージの目的は、flatpaksと同様に、サンドボックス化された自己完結型のアプリケーションを配布することです(アプリケーションは依存関係とともにパッケージ化されます)。
Snappyパッケージマネージャーとそのインフラストラクチャは、Ubuntu以外のディストリビューションに導入されました。このチュートリアルでは、それをインストールして最新バージョンのFedoraで使用する方法を説明します。
このチュートリアルでは、次のことを学びます。
- スナップパッケージマネージャーのインストール方法
- スナップストアでパッケージを検索する方法
- スナップパッケージをインストールおよび更新する方法
- インストールされているスナップパッケージを一覧表示する方法
- パッケージのスナップショットを作成および管理する方法
- スナップパッケージを削除する方法

使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
配布に依存しない | |
snapd | |
ソフトウェアを管理するためのroot権限 | |
#–指定されたlinux-commandを、rootユーザーとして直接、またはsudo を使用してroot権限で実行する必要があります。 command $ –指定されたlinux-commandsを通常の非特権ユーザーとして実行する必要があります |
インストール
FedoraでSnappyパッケージマネージャーを使用するには、最初にソフトウェアを含むパッケージをインストールする必要があります。幸いなことに、Fedoraの公式リポジトリで利用できるため、非常に簡単に実行できます。インストールは、グラフィカルに実行することも、dnf
を使用して実行することもできます。 私たちの最愛のターミナルエミュレータからのパッケージマネージャー。実行するコマンドは次のとおりです。
$ sudo dnf install snapd
snap-confine
およびsnapd-selinux
パッケージはsnapdの依存関係としてインストールされます。前者はsnapアプリケーションに制限を適用するために使用されるソフトウェアを含み、後者はsnapdがSELinuxで正しく実行されることを可能にするポリシーを提供します。インストールの一部として、snapd.socket
systemdを使用して有効にします。
パッケージの検索
スナップパッケージを操作する方法は、snap
を使用することです。 応用。実行する必要のある最も基本的なアクションの1つは、特定のソフトウェアがスナップストアで利用可能かどうかを確認することです。このアクションを実行するには、「find」または「search」snapコマンドを使用できます(後者は前者のエイリアスです)。 「gimp」スナップパッケージをインストールしたいとします。アプリケーションが利用可能かどうかを確認するには、次のコマンドを実行できます:
$ snap find gimp
ご覧のとおり、コマンドには管理者権限は必要ありません。次の出力を返します:
Name Version Publisher Notes Summary gimp 2.10.28 snapcrafters - GNU Image Manipulation Program gutenprint-printer-app 1.0 openprinting✓ - Gutenprint Printer Application photogimp 2.10.20 pedro.ermarinho - Patch para o GIMP djpdf 0.1.6 unrud - Create small, searchable PDFs from scanned documents lazpaint 7.1.6 chronoscz - Image editor with raster and vector layers.
検索条件に一致する利用可能なパッケージに関する情報が返されます:
- パッケージの名前
- スナップパッケージバージョン
- スナップパブリッシャー
- パッケージに関する最終的なメモ
- パッケージの簡単な説明
スナップパッケージのインストール
スナップパッケージをインストールするには、snapの「install」コマンドを使用するだけです。例として、gimp
をインストールするとします。 前の手順で検索したアプリケーション。実行するコマンドは次のとおりです。
$ sudo snap install gimp
デフォルトでは、特に指定がない限り、パッケージは「安定した」チャネルからインストールされます。上記のコマンドを実行すると、ターミナルの出力を読み取ることでインストールの進行状況を追跡できます。
2022-03-29T14:25:15+02:00 INFO Waiting for automatic snapd restart... gimp 2.10.28 from Snapcrafters installed
最近のバージョンのスナップは、「クラシック閉じ込め」モードをサポートしています。スナップパッケージがこのモードでインストールされている場合、実際にはそうではありません 制限されているため、ホストシステム上のリソースにアクセスできます。このモードでパッケージをインストールする場合は、--classic
を指定して「install」コマンドを実行する必要があります。 オプション。
スナップパッケージに関連するファイルとその依存関係は、読み取り専用のSquashFSを使用して、ループデバイスの形式でシステムにデプロイされます。ループデバイスは、/var/lib/snapd
の下の対応するディレクトリにマウントされます。 。 lsblk
の出力を見ると、これがはっきりとわかります。 コマンド:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 43.6M 1 loop /var/lib/snapd/snap/snapd/15177 loop1 7:1 0 55.5M 1 loop /var/lib/snapd/snap/core18/2344 loop2 7:2 0 4K 1 loop /var/lib/snapd/snap/bare/5 loop3 7:3 0 65.2M 1 loop /var/lib/snapd/snap/gtk-common-themes/1519 loop4 7:4 0 164.8M 1 loop /var/lib/snapd/snap/gnome-3-28-1804/161 loop5 7:5 0 391.3M 1 loop /var/lib/snapd/snap/gimp/383
インストールされているスナップパッケージごとにループブロックデバイスが存在します。 「gimp」スナップの場合、/ var/lib/snapd/snap/gimp/383
の内容を確認すると マウントポイント(383はスナップパッケージのリビジョンです。複数のリビジョンを同時にインストールできます)、アプリケーションファイルをホストするファイルシステムツリー全体を確認できます。
$ ls /var/lib/snapd/snap/gimp/383 bin data-dir etc lib meta sbin snap usr var
システムネイティブパッケージのインストール後と同じようにアプリケーションを起動できるようにするには、/var/lib/snapd/snap/bin
ディレクトリをPATH
に追加する必要があります 。これは、スナップインストールの一部として自動的に実行する必要があります。変数の値をチェックすることで、それを確認できます:
$ echo $PATH /home/egdoc/.local/bin:/home/egdoc/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin
パッケージの更新
スナップパッケージの複数のリビジョンが同時に共存できます。現在インストールされているgimpsnapパッケージのリビジョンが383であることが簡単にわかりました。現在アクティブなバージョンは、/var/lib/snapd/snap/<package>/current
にシンボリックリンクされています。 。 gimpの場合:
$ ls -l /var/lib/snapd/snap/gimp drwxr-xr-x. 11 root root 146 Nov 8 17:14 383 lrwxrwxrwx. 1 root root 3 Mar 29 14:27 current -> 383
スナップパッケージの新しいリビジョンが利用可能かどうかを確認し、更新するには、refresh
を使用できます。 指図。この場合、gimpパッケージを更新しようとすると、更新が利用できないことが通知されます:
$ sudo snap refresh gimp snap "gimp" has no updates available
refresh
を使用する場合 引数としてパッケージ名を指定せずにコマンドを実行すると、アプリケーションはシステムにインストールされているすべてのスナップパッケージの更新を確認します。
インストールされているスナップパッケージの一覧表示
現在インストールされているスナップパッケージに関するレポートを取得するには、スナップユーティリティの「list」コマンドを使用するだけです。動作中のコマンドの例を見てみましょう:
$ snap list Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical✓ base core18 20220309 2344 latest/stable canonical✓ base gimp 2.10.28 383 latest/stable snapcrafters - gnome-3-28-1804 3.28.0-19-g98f9e67.98f9e67 161 latest/stable canonical✓ - gtk-common-themes 0.1-59-g7bca6ae 1519 latest/stable canonical✓ - snapd 2.54.4 15177 latest/stable canonical✓ snapd
「gimp」を明示的にインストールしたため、他のすべてのパッケージは依存関係として、またはスナップインフラストラクチャの「コア」としてインストールされました。パッケージ発行元の名前の後のチェックマークは、確認済みであることを意味します。
パッケージスナップショットの作成と管理
スナップパッケージエコシステムの優れた機能の1つは、パッケージに関連付けられたシステム、ユーザー、および構成データのスナップショットを作成する機能です。スナップショットは、スナップパッケージが削除されると自動的に作成されますが、save
を使用して手動で作成することもできます。 指図。たとえば、「gimp」パッケージのスナップショットを作成するには、次のコマンドを実行します。
$ sudo snap save gimp
saveコマンドの引数としてパッケージ名を指定しない場合、既存のすべてのパッケージのスナップショットが作成されます。システム上の既存のスナップショットのリストを取得するには、saved
を使用できます コマンド:
$ sudo snap saved Set Snap Age Version Rev Size Notes 1 gimp 20.0m 2.10.28 383 134kB auto 3 gnome-3-28-1804 10.4m 3.28.0-19-g98f9e67.98f9e67 161 124B -
コマンドの出力には、スナップショット idなどの非常に役立つ情報が表示されます。 、およびその年齢 。スナップショットを復元するには、restore
を使用します コマンドを実行し、復元するスナップショットをそのIDで参照します。前の例の出力に表示されているgimpスナップショットを復元するには、次のコマンドを実行します。
$ sudo snap restore 1 Restored snapshot #1.
最後に、既存のスナップショットを手動で削除するには、forget
を使用します 指図。 gimpスナップショットを削除するために実行するものは次のとおりです。
$ sudo snap forget 1 Snapshot #1 forgotten.
スナップパッケージの削除
直感的に、以前にインストールされたスナップパッケージを削除するには、remove
を使用する必要があります 指図。デフォルトでは、パッケージはインストールされているすべてのリビジョンとともに削除されます。パッケージの特定のリビジョンを削除する場合は、引数として--revision
に渡す必要があります。 オプション。リビジョンを指定するとき、それを削除するには、それが「アクティブ」なものであってはならないため、スナップパッケージの1つのバージョンだけでこのオプションを使用しようとすると、コマンドは失敗します。たとえば、このチュートリアルでインストールした「gimp」パッケージを削除したい場合は、次のコマンドを実行します。
$ sudo snap remove gimp
または、複数のリビジョンが存在する場合:
$ sudo snap remove gimp --revision 383
パッケージを削除しても、スナップパッケージのスナップショットは削除されません(パッケージが削除されると、スナップショットが実際に作成されます)。それらを強制的に削除するために、--purge
を渡すことができます remove
のオプション 指図。たとえば、関連するすべてのスナップショットで「gimp」を削除するには、次のコマンドを実行します。
$ sudo snap remove --purge gimp
結論
このチュートリアルでは、Fedoraでスナップパッケージを使用する方法を学びました。スナップパッケージエコシステムは、もともとCanonical for Ubuntuによって開発されましたが、その後、他のディストリビューションでも利用できるようになります。 Fedoraでスナップパッケージを検索、インストール、更新、アンインストールする方法と、スナップパッケージのスナップショットを管理する方法を学びました。スナップパッケージはFedoraで動作しますが、ディストリビューションで使用される自己完結型アプリケーションのデフォルトテクノロジーはflatpakです。それについて詳しく知り、使用方法を学びたい場合は、このテーマに関するチュートリアルをご覧ください。