\r\n\r\n
スナップパッケージは元々Ubuntu用に設計されたものですが、現在では様々なLinuxディストリビューションで利用することができます。
これまでLinuxでは、アプリケーションのインストールに苦労することがありました。何かをインストールした後、特定のライブラリやその他の依存関係が欠けていたり、古くなっていることに気づいたりするのです。そして、足りないリソースを探してインストールすると、別のアプリケーションが、あなたが置き換えたばかりのライブラリのバージョンに依存していることが判明するのです。1つ直して、1つ壊して、その繰り返し。
これは、apt、dnf、pacmanなどの優れたパッケージ管理システムによって改善されました。しかし、同じアプリケーションを異なるバージョンでインストールする必要がある場合は、まだ困難があります。あるいは、2つのアプリケーションを使用していて、それらが特定の、しかし異なるバージョンのライブラリにバインドされているために競合している場合。
これらの問題を解決する一つの方法として、アプリケーションのパッケージングとデプロイメントシステムがある。ファンキーはその中でも特に人気があります。クリックと呼ばれるパッケージングとデプロイのシステムをベースにしており、ubuntutouchイニシアチブまで遡ることができます。 AppImageやFlatPackも、ご存知の製品です。
これらのシステムは、アプリケーションだけでなく、依存関係やその他の要件も圧縮ファイルにカプセル化しています。そして、アプリケーションは一種の小さなコンテナで実行されます。サンドボックス化され、他のアプリケーションと分離されています。アプリケーションと一緒にパッケージされている、またはアプリケーションが必要とするライブラリやその他のリソースは、そのアプリケーションでのみ利用可能です。
従来の意味でのインストールではないので、同じリソースの異なるバージョンを必要とする他のアプリケーションに問題を起こすことはない。各アプリケーションが独自のサンドボックス内にあるため、相反するバージョンのライブラリを必要とするアプリケーションをインストールして実行することも可能です。
通常の方法でインストールされない場合は、どのように処理されるのでしょうか?さて、個々のパッケージファイルは、SquashFSvirtualファイルシステムとしてダウンロードされ、解凍され、ロードされます。そして、それを仮想環境として提示するのです。これらはすべて、裏側で行われていることです。アプリケーションをインストールし、アクセスできるようになったということだけです。
もちろん、各パッケージファイルには、アプリケーションが必要とするすべてのリソースを含める必要があるため、パッケージファイルは非常に大きくなる可能性があります。また、MySQLやApacheなど、通常は一度だけインストールされるリソースのコピーも簡単に作成できます。2つの異なるスナップアプリケーションが同じリソースを必要とする場合、それぞれ独自のコピーを作成します。
しかし、これは設置の簡便さと、リソース競合の頭痛の種をなくすこととのトレードオフになります。
Snappy は Ubuntu 16.04 で導入されたので、そのバージョン以上をお使いの方は、すでに使用可能な状態になっています。我々のマシンでは、Manjaro 18.04にSnappyがインストールされていますが、Fedora 31にインストールすることになりました。
snapは、パッケージファイルの名前と、パッケージファイルと対話するためのコマンドの両方です。裏では、snapdデーモンは、まだSnappyが入っていない場合にインストールする必要があるパッケージの名前でもあります。
Fedoraにsnapdをインストールするには、次のコマンドを入力します。
sudo dnf install snapdManjaroへのインストールが必要な場合は、以下のコマンドを使用します。
sudo pacman -Sy snapd sudo systemctl enable --now snapd.socketsnap versionコマンドを使用すると、snapクライアント、snapデーモン、およびソフトウェアのファミリ番号を表示することができます。
と入力する。
snap versionスナップパッケージのインストールは非常に簡単で、snapでスナップパッケージを探し、必要なスナップパッケージをインストールすればよい。
以下のように入力して、画像編集ソフトのgimpを検索してインストールします。
snap find gimpsnapは、検索キーワード「gimp」にマッチするものを検索し、その結果を返します。検索キーワードにマッチするもの、または言及されているものはすべて見つかります。
あるパッケージをインストールするために、以下のようにName欄の値を使用します。
sudo snap install gimpダウンロードが完了すると、完了率の数値が上昇し、端末ウィンドウの左側にプログレスバーが表示されます。インストールが完了すると、パッケージがインストールされたことを知らせるメッセージ(下図)が表示されます。
dfコマンドは、Linuxコンピュータに設定されているさまざまなファイルシステムの容量や使用状況を確認するために使用します。その出力をgrepコマンドに取り込み、「gimp」を検索すると、今インストールしたパッケージのエントリーが分離されます。
以下のように入力します。
df | grep gimpこれは、snapパッケージがファイルシステムのようにマウントされていることを示しています。マウントポイントはsnap/gimp/252で、252はこのバージョンのgimpのリリース番号です。
関連:Linuxでのgrepコマンドの使い方
ファイルシステムは、/dev/loop18と表示されます。 ループデバイスファイルは、ブロックデバイスとして通常のファイルにアクセスするために使用されます。通常、ディスクイメージ内のファイルシステムをマウントするために使用されます。この例では、snapパッケージのSquashFSファイルシステムをマウントしています。18 "は、Linuxコンピュータで使用されている18番目の/dev/loopデバイスファイルであることを示す。
dfコマンドで簡単に確認することができます。ここでは、-t(type)オプションを使って、SquashFSのファイルタイプに限定して出力することにします。
以下のように入力します。
df -t squashfsマウントされたSquashFSファイルシステムが一覧表示されます。/dev/loopデバイスファイルがそれぞれを処理し、合計18個あります。
各ファイルシステムは、/snapディレクトリ内のディレクトリにインストールされます。ただし、このコンピュータに18種類のスナップパッケージがインストールされているわけではありません。このディストリビューションはUbuntuなので、いくつかのsnapパッケージは直接インストールされますが、先ほども1つインストールしました。
また、snapのインストール時には、他のsnapパッケージの必要性に対応するために、いくつかのコアsnapパッケージがインストールされます。
snap listコマンド(下図)を使用すると、インストールされているsnapパッケージを一覧表示することができます。
snap list出力が少し広いので、以下のようにリストが終了します。
以下は、その全リストです。
Name Version Rev Tracking Publisher Notes core 16-2.43.3 8689 stable canonical* core core18 20200124 1668 stable canonical* base gimp 2.10.18 252 stable snapcrafters - gnome-3-26-1604 3.26.0.20191114 98 stable/… canonical* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 stable canonical* - gnome-calculator 3.34.1+git1.d34dc842 544 stable/… canonical* - gnome-characters v3.32.1+git3.b9120df 399 stable/… canonical* - gnome-logs 3.34.0 81 stable/… canonical* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stable/… canonical* - gtk-common-themes 0.1-28-g1503258 1440 stable/… canonical* -ご覧のように、18個のスナップパッケージではなく、10個のスナップパッケージがインストールされました。しかし、この10パッケージで18のSquashFSファイルシステムが生成されました。表中の列は、かなり自明なものであるが、ここでいくつかの注意点を挙げる。
スナップショット・パッケージの説明は、infoオプションで取得することができます。
そのために、次のように入力します。
snap info gtk-common-themesパッケージがどのチャンネルをトラッキングしているか、4チャンネルそれぞれのスナップパッケージのソフトウェアバージョンを確認することができます。ほとんどの場合、安定したチャンネルにとどまるはずです。
スナップパッケージは、1日に4回、監視しているチャンネルから新しいバージョンのソフトウェアが利用可能かどうかをチェックします。snapパッケージが追跡するチャンネルを変更するには、「refresh」オプションと「--channel」オプションを使用します。
そのために、次のように入力します。
sudo snap refresh gtk-common-themes --channel=beta新しいバージョンが出ればインストールされるのですが、今回はそうではありません。ただし、スナップパッケージは現在ベータチャネルを追跡中です。新しいベータ版がリリースされると同時に、自動的にダウンロードされ、アップグレードされます。
listオプションを使用すると、コンピュータにインストールされているスナップショット・パッケージのうち、利用可能なアップデートがあるかどうかを確認できます。
そのために、次のように入力します。
sudo snap refresh --listお使いのコンピューターでスナップパッケージによって追跡されているチャンネルの中に、新しいバージョンのソフトウェアが含まれている場合は、その旨が表示されます。
新しいバージョンのソフトウェアが利用できる場合は、リフレッシュオプション(下図)を使用して手動で強制的にリフレッシュすることができます。
sudo snap refresh gtk-common-themesスナップショットパッケージをアンインストールするには、以下のようにdeleteオプションを使用します。
sudo snap remove gimpsnapパッケージの使い方は非常にシンプルですが、参考になるコマンドをまとめました。