Linux システムでソフトウェアを管理するためのより良い方法を探している場合は、Snapcraft をチェックしてみてください。 Snapcraft を使用すると、コミュニティで新しいスナップを検索、共有、作成しながら、数回クリックするだけでソフトウェアを検索、インストール、管理できます。
このチュートリアルでは、Snapcraft をインストールする方法、基本的なスナップを作成して Linux システムにインストールする方法を学びます。
準備? Snapcraft がどのようにソフトウェア管理を容易にするかをご確認ください。
前提条件
このチュートリアルは実践的なデモンストレーションであり、従うには Linux システムが必要です。このチュートリアルでは Ubuntu 20.04 を使用していますが、どの派生物でも動作します。
Snapd (Snap Daemon) と Snapcraft のインストール
スナップを作成または実行する前に、スナップの実行に必要なデーモンである Snapd をインストールする必要があります。 Snapd を使用すると、システムに Snapcraft をインストールして有効にすることもできます。
Ubuntu に Snapd をインストールするには:
1. 次の g apt update
を実行します コマンドを実行して、Ubuntu リポジトリを更新します。
apt update -y
2. 次に、以下の apt install
を実行します コマンドで Snapd をインストールします。
apt install snapd -y
3. インストールしたら、snap
を実行します 以下のコマンドを実行して、システムにインストールされている Snapd のバージョンを確認します。
snap --version
4. 最後に、snap install
を実行します。 以下のコマンドで snapcraft
をインストールします .
Snapcraft は、さまざまなアプリケーション用のスナップを作成できる強力なツールです。スナップの依存関係を宣言するだけで、後は Snapcraft が行います。
snap install --classic snapcraft
以下に、Snapcraft が正常にインストールされたことを確認する出力を示します。
Snapcraft による Snap プロジェクトの初期化
Snapcraft がインストールされたので、スナップを作成する準備が整いました。スナップは、アプリケーションの実行に必要なすべての依存関係とライブラリを含む自己完結型のアプリケーション パッケージです。スナップ (しゃれを意図したもの) で、Linux にアプリケーションをすばやくインストールして管理できます。
Snap は安全で、システムの他の部分から隔離されているため、システムをマルウェアから保護するのに役立ちます。 Snap を Snap Store にアップロードして他のユーザーが使用できるようにしたり、Snap Store から Snap をダウンロードしてシステムで使用したりすることもできます。
Snapcraft が実際にどのように機能するかを確認するには、「hello world」アプリケーション用の簡単なスナップを作成します。ただし、最初に、Snapcraft プロジェクトを初期化するためのプロジェクト ディレクトリが必要です:
1. 次のコマンドを実行してディレクトリを作成します (mkdir
)スナップしてそのディレクトリに移動します(cd
)。このディレクトリには、スナップに関連するすべてのファイルが保持され、次のすべてのコマンドも実行されます。
Snapcraft を使用する場合は、ビルドの失敗などの問題を回避するために、ディレクトリ名のスペースを省略する必要があります。
# Create a project directory
mkdir -p ~/mysnaps/hello
# Change the working directory
cd ~/mysnaps/hello
2. snapcraft
を実行します。 以下のコマンドで初期化します (init
) Snapcraft プロジェクト。
このコマンドは snapcraft.yaml を作成します 現在のディレクトリにあるその他の環境ファイル。このファイルは、スナップの依存関係とさまざまな設定を宣言するために使用されます。
snapcraft init
3. 最後に、以下の tree
を実行します コマンドを使用してスナップ ディレクトリを確認します。 tree -a
tree -a
この時点で、次のようなディレクトリ構造になっているはずです。この構造は、スナップ ツリーと呼ばれます。
スナップの構成と構築
Snapcraft プロジェクトを初期化すると、Snapcraft でスナップを作成する準備がほぼ整います。ただし、最初に、スナップのメタデータを宣言する必要があります。このメタデータには、スナップの名前、バージョン、概要、および説明が含まれます。また、スナップと監禁レベルのライセンスを指定することもできます。
どのように?自動生成された snapcraft.yaml を編集する プロジェクトを初期化したときのファイル。
1. snapcraft.yaml を開きます 好みのテキスト エディターでファイルします。
nano snap/snapcraft.yaml
2. 次に、事前に生成されたファイルの内容を次の行に置き換えて、スナップのメタデータを宣言します。
ただし、スナップがどのように構成されているかをよりよく理解するために、構成の一部を一度に 1 つずつ追加するため、まだファイルを閉じないでください。
# Your snap's name (must be in lowercase) and can contain letters, numbers, and hyphens.
name: hello
# The base snap that your snap will be built on top of.
# core18 base is based on Ubuntu 18.04 (Bionic Beaver).
base: core18
# The current snap's version (incremental)
version: '2.10'
# One-line snap description
summary: GNU Hello, the "hello world" snap
# Long snap description. It can span multiple lines and can contain Markdown formatting.
description: |
GNU hello prints a friendly greeting.
# Sets the snap's security grade (devel).
# devel grade - used for development snaps that are not for general release.
# stable grade - used for snaps considered ready for production use.
# candidate grade - used for snaps ready for final testing (before stable grade).
grade: devel
# Sets the snap's confinement level (devmode)
# devmode - the least secure level where snap has full access to the host system.
# strict - the most secure level where snap has limited access to the host system.
# classic - somewhere in between where snap has limited access to the host system
# with some security features disabled.
confinement: devmode
3. confinement
の下に次のコードを追加します。 アプリを公開するための行。
このコードは、スナップに hello
というアプリが含まれていることを Snapcraft に伝えます。 bin/hello
で実行できます 指図。
apps:
hello:
command: bin/hello
4. 次に、snapcraft.yaml の最後に次のコードを追加します。 スナップにパーツを追加するファイル。パーツには、スナップのコンポーネント、それらを構築する方法、およびそれらを見つけることができる場所が記述されています。
このコードは gnu-hello
という部分を追加します 、Ubuntu 18.04 の公式の hello パッケージに基づいています。
スナップには複数のパーツを含めることができますが、このチュートリアルで必要なのは 1 つだけであることに注意してください。
parts:
gnu-hello:
source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
plugin: autotools
この時点で、snapcraft.yaml が作成されているはずです。 以下のようなファイル。変更を保存してファイルを閉じます。
# Your snap's name (must be in lowercase) and can contain letters, numbers, and hyphens.
name: hello
# The base snap that your snap will be built on top of.
# core18 base, which is based on Ubuntu 18.04 (Bionic Beaver).
base: core18
# The current snap's version (incremental)
version: '2.10'
# One-line snap description
summary: GNU Hello, the "hello world" snap
# Long snap description. It can span multiple lines and can contain Markdown formatting.
description: |
GNU hello prints a friendly greeting.
# Sets the snap's security grade (devel).
# devel grade - used for development snaps that are not for general release.
# stable grade - used for snaps considered ready for production use.
# candidate grade - used for snaps ready for final testing (before stable grade).
grade: devel
# Sets the snap's confinement level (devmode)
# devmode - the least secure level where snap has full access to the host system.
# strict - the most secure level where snap has limited access to the host system.
# classic - somewhere in between where snap has limited access to the host system
# with some security features disabled.
confinement: devmode
# Expose an application called "hello" that can be run with the bin/hello command.
apps:
hello:
command: bin/hello
# Adding parts to describe the components of your snap,
# how they should be built and where they can be found.
parts:
gnu-hello:
source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
plugin: autotools
5. 最後に、以下の snapcraft
を実行します 最初のスナップを作成するためのすべてのハードワークの後、コマンド。
snapcraft
初めて snapcraft
を実行したとき コマンドを実行すると、以下に示すように、Multipass をインストールするように求められます。 Multipass は仮想マシンを管理してスナップを構築し、Snapcraft は仮想マシンを使用してクリーンで隔離された環境でスナップを構築します。
y と入力します Enter を押します 続ける。
ビルド プロセスでは、すべての依存関係がダウンロードされ、ソースからビルドされます。完了するまでに時間がかかります。ビルドすると、次のような出力が表示されます。
ご覧のとおり、hello_2.10_amd64.snap は作成されたパッケージです。これはスナップ パッケージであり、スナップをサポートする任意の Linux ディストリビューションにインストールできるようになりました。
スナップのテスト
スナップの作成に成功しましたが、それが機能することをどのように確認しますか?新しく作成したスナップをシステムにインストールし、「hello world」アプリケーションを実行してテストします。
1. 次の snap
を実行します install
へのコマンド 新しく作成したスナップ パッケージ (hello_2.10_amd64.snap
) をシステムに追加します。
snap install --devmode hello_2.10_amd64.snap
2. 次に、hello
を実行します。 snapcraft.yaml で宣言した以下のコマンド hello
を実行するためのファイル あなたのスナップに含まれるアプリ。
hello
すべてが期待どおりに機能した場合、「Hello, world!」が表示されるはずです。示されているように、メッセージが画面に印刷されます。
3. 最後に、snap list
を実行します。 以下のコマンドで、インストールされているスナップを取得します (hello
) 情報。
snap list hello
結論
自由に使える信頼できるツールがない限り、ソフトウェア管理は退屈な作業になる可能性があります。また、このチュートリアルでは、Snapcraft をインストールして使用し、簡単なスナップを作成して、手間をかけずに Linux システムでソフトウェアを管理およびインストールする方法を学びました。
Snapcraft の仕組みを確認したら、より複雑なスナップの作成を開始し、他の人がインストールして使用できるように Snap ストアにアップロードしてみませんか?