ここ数年、Linuxコミュニティは、特にユニバーサルまたはクロスディストリビューションソフトウェアのパッケージングと配布に関する分野でいくつかの注目すべき進歩を享受しています。Linuxシステム上のパッケージ管理の分野において、そのような進歩の1つは、Snapパッケージ形式であり、Ubuntu Linuxの開発元であるCanonicalによって開発されました。
Snapパッケージとは何ですか?
Snapsは、クロスディストリビューションであり、依存関係がなく、すべての主要なLinuxディストリビューションで実行するために必要なすべての依存関係が含まれた簡単にインストールできるアプリケーションです。1つのビルドから、スナップ(アプリケーション)はデスクトップ、クラウド、およびIoTでサポートされているすべてのLinuxディストリビューションで実行されます。サポートされているディストリビューションには、Ubuntu、Debian、Fedora、Arch Linux、Manjaro、CentOS/RHELが含まれます。
Snapsはセキュアであり、システム全体を危険にさらさないように制限され、サンドボックス化されています。それらは異なる制限レベルで実行されます(これはベースシステムおよび互いからの分離の度合いです)。さらに、すべてのスナップには、スナップの作成者によって慎重に選択されたインターフェースがあり、スナップの要件に基づいて、ネットワークアクセス、デスクトップアクセスなど、それらの制限外の特定のシステムリソースへのアクセスを提供します。
snapのエコシステムにおけるもう1つの重要な概念はChannelsです。 Channelsは、snapのどのリリースがインストールされ、更新の追跡が行われるかを決定し、トラック、リスクレベル、およびブランチによって構成され、細分化されます。
snapパッケージ管理システムの主要なコンポーネントは次のとおりです:
- snapd – Linuxシステム上のsnapを管理および維持するバックグラウンドサービス。
- snap – アプリケーションパッケージの形式と、snapエコシステムでスナップをインストールおよび削除し、その他の多くの操作を行うために使用されるコマンドラインインターフェイスツール。
- snapcraft – スナップを構築するためのフレームワークと強力なコマンドラインツール。
- snap store – 開発者がスナップを共有し、Linuxユーザーがそれらを検索してインストールできる場所。
さらに、snapsは自動的に更新されます。更新が発生するタイミングや方法を構成できます。デフォルトでは、snapdデーモンは1日に最大4回の更新チェックを行います。各更新チェックはrefreshと呼ばれます。また、手動で更新を開始することもできます。
LinuxにSnapdをインストールする方法
上記のように、snapdデーモンはLinuxシステム上のsnap環境を管理および維持するバックグラウンドサービスであり、コンフィンメントポリシーを実装し、スナップが特定のシステムリソースにアクセスするためのインターフェイスを制御します。また、snapコマンドを提供し、多くの他の目的にも役立ちます。
システムにsnapdパッケージをインストールするには、お使いのLinuxディストリビューションに適切なコマンドを実行してください。
------------ [On Debian and Ubuntu] ------------ $ sudo apt update $ sudo apt install snapd ------------ [On Fedora Linux] ------------ # dnf install snapd ------------ [On CentOS and RHEL] ------------ # yum install epel-release # yum install snapd ------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------ $ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy $ sudo zypper --gpg-auto-import-keys refresh $ sudo zypper dup --from snappy $ sudo zypper install snapd ------------ [On Manjaro Linux] ------------ # pacman -S snapd ------------ [On Arch Linux] ------------ # git clone https://aur.archlinux.org/snapd.git # cd snapd # makepkg -si
システムにsnapdをインストールした後、以下のようにsystemdユニットを有効にして、メインのsnap通信ソケットを管理します。systemctlコマンドを使用してください。
Ubuntuおよびその派生版では、パッケージインストーラーによってこれが自動的にトリガーされるはずです。
$ sudo systemctl enable --now snapd.socket
snapコマンドを実行できないことに注意してください。これは、snapd.socketが実行されていない場合に発生します。システムの起動時に自動的に開始するように有効にされているかどうかを確認するには、以下のコマンドを実行してください。
$ sudo systemctl is-active snapd.socket $ sudo systemctl status snapd.socket $ sudo systemctl is-enabled snapd.socket

次に、以下のようにclassic snapサポートを有効にするために、/var/lib/snapd/snapと/snapの間にシンボリックリンクを作成してください。
$ sudo ln -s /var/lib/snapd/snap /snap
システムにインストールされているsnapdおよびsnapコマンドラインツールのバージョンを確認するには、以下のコマンドを実行してください。
$ snap version

LinuxでのSnapsのインストール方法
snapコマンドを使用すると、Snapsのインストール、設定、更新、削除、および大規模なSnapエコシステムとのやり取りが可能です。
snapストアにsnapが存在するかどうかをインストールする前に確認できます。たとえば、アプリケーションが「チャットサーバー」または「メディアプレーヤー」のカテゴリに属する場合、これらのコマンドを実行して検索できます。これにより、安定したチャネルで利用可能なパッケージをストアからクエリできます。
$ snap find "chat servers" $ snap find "media players"

詳細な情報を表示するには、snap、例えば、rocketchat-serverの名前やパスを指定できます。名前はsnapストアとインストールされたスナップの両方で検索されます。
$ snap info rocketchat-server

システムにsnapをインストールするには、例えば、rocketchat-server、次のコマンドを実行します。オプションが指定されていない場合、snapは「安定」チャネルを追跡し、厳格なセキュリティ制限が適用されてインストールされます。
$ sudo snap install rocketchat-server

異なるチャネルからインストールするオプションを選択できます:エッジ、ベータ、または候補など、理由がある場合にそれぞれ--edge
、--beta
、または--candidate
オプションを使用します。または--channel
オプションを使用して、インストールしたいチャネルを指定します。
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server $ sudo snap install --candidate rocketchat-server
LinuxでSnapsを管理する
このセクションでは、LinuxシステムでSnapsを管理する方法について学びます。
インストールされたSnapsを表示する
システムにインストールされたsnapsの概要を表示するには、次のコマンドを使用します。
$ snap list

現在使用されているsnapの現在のリビジョンをリストするには、その名前を指定します。また、--all
オプションを追加して、利用可能なすべてのリビジョンをリストすることもできます。
$ snap list mailspring OR $ snap list --all mailspring

Snapsの更新とリバージョンの戻し
指定したsnapを更新するか、指定されていない場合はシステム内のすべてのsnapを更新できます。 refreshコマンドは、snapが追跡しているチャネルをチェックし、利用可能な場合はsnapの新しいバージョンをダウンロードしてインストールします。
$ sudo snap refresh mailspring OR $ sudo snap refresh #update all snaps on the local system

新しいバージョンにアプリを更新した後は、revertコマンドを使用して以前に使用されたバージョンに戻すことができます。ソフトウェアに関連付けられているデータも戻されることに注意してください。
$ sudo snap revert mailspring

今、mailspringのすべてのリビジョンを確認すると、最新のリビジョンは無効化されています、以前に使用されたリビジョンがアクティブになっています。
$ snap list --all mailspring

Snapsの無効化/有効化と削除
使用しない場合はsnapを無効化することができます。無効化されると、snapのバイナリとサービスは利用できなくなりますが、すべてのデータはそのままです。
$ sudo snap disable mailspring
必要に応じて、snapを有効にすることもできます。
$ sudo snap enable mailspring
システムからsnapを完全に削除するには、removeコマンドを使用します。デフォルトでは、snapのすべてのリビジョンが削除されます。
$ sudo snap remove mailspring
特定のリビジョンを削除するには、次のように--revision
オプションを使用します。
$ sudo snap remove --revision=482 mailspring
重要なのは、 snap を削除すると、そのデータ(内部ユーザー、システム、構成データなど)が snapd (バージョン2.39以降)によってスナップショットとして保存され、システムに31日間保存されることです。 31日以内にsnapを再インストールする場合は、データを復元できます。
結論
Snaps は、Linuxコミュニティ内でより人気が高まっており、任意のLinuxディストリビューションにソフトウェアを簡単にインストールできます。このガイドでは、Linuxでスナップをインストールして使用する方法を示しました。 snapd をインストールし、スナップをインストールし、インストールされたスナップを表示し、スナップを更新および元に戻し、スナップを無効にしたり有効にしたり、スナップを削除する方法について説明しました。
以下のフィードバックフォームから質問するか、連絡することができます。このガイドの次の部分では、Linuxでスナップを管理する方法(コマンド、エイリアス、サービス、およびスナップショット)について説明します。