LinuxでSnapパッケージを操作する方法
公開: 2022-01-29 snap
を使用してLinuxソフトウェアパッケージをインストールすると、依存関係地獄や他の動作中のアプリケーションの破壊に別れを告げることができます。 Snapパッケージは元々Ubuntu用に設計されていましたが、現在ではさまざまなLinuxディストリビューションで利用できます。
スナップパッケージとは何ですか?
以前は、Linuxにアプリケーションをインストールすることは潜在的に苛立たしい経験でした。 特定のライブラリを見つけるためだけに何かをインストールするか、他の依存関係が欠落しているか、古くなっています。 次に、不足しているリソースを探してインストールしますが、置き換えたライブラリのバージョンに依存する別のアプリケーションを見つけるだけです。 1つを修正し、1つを壊して、繰り返します。
これは、apt、dnf、pacmanなどのより優れたパッケージ管理システムによって改善されました。 ただし、同じアプリケーションの異なるバージョンをインストールする必要がある場合は、依然として問題に直面します。 または、ライブラリの特定のバージョン(ただし異なるバージョン)に関連付けられているために衝突する2つのアプリケーションを使用する場合。
これらの問題に対する1つの解決策は、アプリケーションのパッキングおよびデプロイメントシステムです。 Snappyは、これらの中で最も人気のあるものの1つです。 これは、UbuntuTouchイニシアチブを思い起こさせるClickと呼ばれるパッケージ化および展開システムに基づいています。 AppImageとFlatPackは、あなたが遭遇したかもしれない他のものです。
これらのシステムは、依存関係やその他の要件とともにアプリケーションを単一の圧縮ファイルにカプセル化します。 その後、アプリケーションは一種のミニコンテナで実行されます。 サンドボックス化され、他のアプリケーションから分離されています。 アプリケーションがパッケージ化されている、または必要なライブラリやその他のリソースは、アプリケーションだけで利用できます。
これらは従来の意味でインストールされないため、同じリソースの異なるバージョンを必要とする他のアプリケーションで問題が発生することはありません。 各アプリケーションは独自のサンドボックスにあるため、競合するライブラリバージョンを必要とするアプリケーションをインストールして実行することもできます。
ただし、通常の方法でインストールされていない場合、どのように処理されますか? さて、単一のパッケージファイルがダウンロードされ、解凍され、 SquashFS
仮想ファイルシステムとしてマウントされます。 次に、仮想環境として表示されます。 これらはすべて舞台裏で行われます。 アプリケーションをインストールしただけで、アプリケーションにアクセスできるようになります。
もちろん、各パッケージファイルにはアプリケーションが必要とするすべてのリソースが含まれている必要があるため、パッケージファイルは大きくなる可能性があります。 また、MySQLやApacheなど、通常は1回だけインストールするリソースを複製するのも簡単です。 2つの異なるsnap
アプリケーションが同じリソースを必要とする場合、それぞれが独自のコピーを持ち込みます。
ただし、これは、インストールの単純さと、リソースの競合による問題の解消とのトレードオフです。
snapdのインストール
SnappyはUbuntu16.04で導入されたため、そのバージョン以降を実行している場合は、すでに問題ありません。 私たちのマシンでは、SnappyはManjaro 18.04にインストールされていましたが、Fedora31にインストールする必要がありました。
snap
は、パッケージファイルの名前であると同時に、それらを操作するために使用するコマンドでもあります。 舞台裏では、 snapd
デーモンは、コンピューターにSnappyがまだインストールされていない場合にインストールする必要のあるパッケージの名前でもあります。
snapd
をFedoraにインストールするには、次のコマンドを入力します。
sudo dnf installsnapd
Manjaroにインストールする必要がある場合は、次のコマンドを使用します。
sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket
snap version
コマンドを使用して、 snap
クライアントのバージョン、 snapd
デーモン、およびソフトウェアシリーズ番号を確認できます。 Linuxディストリビューションの名前とリリース、およびカーネルバージョンも表示されます。
次のように入力します。
スナップバージョン
スナップパッケージのインストール
snap
パッケージをインストールするのは非常に簡単なプロセスです。 snap
を使用してsnap
パッケージを探し、必要なものをインストールできます。
次のように入力して、gimpイメージエディタを探してインストールします。
スナップ検索gimp
snap
は検索の手がかり「gimp」に一致するものを検索し、その結果を返します。 検索語に一致または言及しているものはすべて検索されます。
パッケージの1つをインストールするには、以下に示すように、[ 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
ファイルシステムが一覧表示されます。 /dev/loop
デバイスファイルがそれぞれを処理し、18個あります。
各ファイルシステムは、 /snap
ディレクトリ内のディレクトリにマウントされます。 ただし、これは、このコンピューターに18の異なるsnap
パッケージがインストールされていることを意味するものではありません。 これはUbuntuディストリビューションであるため、いくつかのsnap
パッケージは箱から出してすぐにインストールされ、別のパッケージをインストールしました。
さらに、 snapd
をインストールすると、他のsnap
パッケージのニーズを処理するためにいくつかのコアsnap
パッケージがインストールされます。
以下に示すように、 snap list
コマンドを使用して、インストールされているsnap
パッケージを一覧表示できます。
スナップリスト
出力が少し広かったので、リストの最後を以下に示します。
リスト全体は次のとおりです。
名前バージョンRevTrackingパブリッシャーノート コア16-2.43.38689安定したカノニカル*コア core18 202001241668安定したカノニカル*ベース gimp 2.10.18252安定したsnapcrafters- gnome-3-26-1604 3.26.0.2019111498安定/ ...標準*- gnome-3-28-1804 3.28.0-16-g27c9498.27c9498116安定した標準*- gnome-calculator 3.34.1 + git1.d34dc842544安定/ ...標準*- gnome-characters v3.32.1 + git3.b9120df399安定/ ...標準*- gnome-logs 3.34.081安定/ ...標準*- gnome-system-monitor 3.32.1-3-g0ea89b4922127安定/ ...標準*- gtk-common-themes 0.1-28-g15032581440安定/ ...標準*-
ご覧のとおり、18個ではなく10個のスナップパッケージがインストールされています。ただし、これらの10個のパッケージにより、18個のSquashFS
ファイルシステムが作成されています。 表の列はかなり自明ですが、ここにいくつかの説明があります。
- 名前:インストールされた
snap
パッケージの名前。 - バージョン:
snap
パッケージ内のソフトウェアのバージョン番号。 - Rev :
snap
パッケージのリビジョン番号。 - 追跡:この
snap
パッケージが更新を監視するチャネル。 四つあります:- 安定:デフォルトのチャネル。 その名前が示すように、このチャネルには最も安定したパッケージが含まれています。
- 候補:このチャネルは安定性が低くなりますが、コードが完全なリリース候補レベルのソフトウェアが含まれているため、非常に近くなります。 安定したチャネルに移動する前に、最終テストを通過します。
- ベータ版:このチャネルは開発サイクルの品質が遅いですが、安定しているとは限りません。
- エッジ:初期のビルドテスター向け。 このチャネルは、重要な作業や実稼働コンピューターでは使用しないでください。 ここにドラゴンがいます!
- 出版社:
snap
パッケージをリリースした個人、会社、または組織。 確認済みの発行元である場合(およびターミナルウィンドウがUnicodeをサポートしている場合)、発行元の名前の横に緑色のチェックマークが表示されます。 チェックマークが表示されない場合は、アスタリスク(*
)が表示されます。 - 注:コメントや追加情報はここに表示されます。
スナップチャンネル
info
オプションを使用して、 snap
パッケージの説明を取得できます。
これを行うには、次のように入力します。
スナップ情報gtk-common-themes
パッケージが追跡しているチャネルと、4つのチャネルのそれぞれのsnap
パッケージに含まれるソフトウェアのバージョンを確認できます。 ほとんどの場合、安定したチャネルにとどまる必要があります。
snap
パッケージは、1日に4回チェックして、監視中または「追跡中」のチャネルから新しいバージョンのソフトウェアが利用可能かどうかを確認します。 snap
パッケージが追跡するチャネルを変更する場合は、 refresh
および--channel
オプションを使用できます。
これを行うには、次のように入力します。
sudo snap refresh gtk-common-themes --channel = beta
新しいバージョンのソフトウェアが利用可能であれば、それがインストールされますが、ここではそうではありませんでした。 ただし、 snap
パッケージは現在ベータチャネルを追跡しています。 新しいベータ版がリリースされるとすぐに、自動的にダウンロードされ、アップグレードされます。
--list
オプションを使用して、コンピューターにインストールされているsnap
パッケージのいずれかで更新が利用可能かどうかを確認できます。
これを行うには、次のように入力します。
sudo snap refresh --list
コンピューターのsnap
パッケージが追跡しているチャネルのいずれかに新しいソフトウェアバージョンが含まれているかどうかが通知されます。
ソフトウェアの新しいバージョンが利用可能な場合は、以下に示すように、 refresh
オプションを使用して手動で更新を強制できます。
sudo snap refreshgtk-common-themes
スナップパッケージの削除
snap
パッケージをアンインストールするには、以下に示すように、削除オプションを使用できます。
sudo snap removegimp
スナップチートシート
スナップパッケージの使用は非常に簡単ですが、次のようなコマンドのリストをまとめました。
- パッケージを検索するには:
snap find package_name
- パッケージをインストールするには:
sudo snap install package_name
- インストールされているすべてのパッケージを表示するには:
snap list
- 単一のパッケージに関する情報を取得するには:
snap info package_name
- パッケージが更新のために追跡するチャネルを変更するには、次のようにします
sudo snap refresh package_name --channel=channel_name
- インストールされているパッケージの更新の準備ができているかどうかを確認するには:
sudo snap refresh --list
- パッケージを手動で更新するには:
sudo snap refresh package_name
- パッケージをアンインストールするには:
sudo snap remove package_name
Linuxコマンド | ||
ファイル | tar・pv・cat・tac・chmod・grep・diff・sed・ar・man・pushd・popd・fsck・testdisk・seq・fd・pandoc・cd・$ PATH・awk・join・jq・fold・uniq・journalctl・tail・stat・ls・fstab・echo・less・chgrp・chown・rev・look・strings・type・rename・zip・unzip・mount・umount・install・fdisk・mkfs・rm・rmdir・rsync・df・gpg・vi・nano・mkdir・du・ln・patch・convert・rclone・shred・srm | |
プロセス | エイリアス・screen・top・nice・renice・progress・strace・systemd・tmux・chsh・history・at・batch・free・which・dmesg・chfn・usermod・ps・chroot・xargs・tty・pinky・lsof・vmstat・タイムアウト・wall・yes・kill・sleep・sudo・su・time・groupadd・usermod・groups・lshw・shutdown・reboot・halt・poweroff・passwd・lscpu・crontab・date・bg・fg | |
ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw |
関連:開発者と愛好家のための最高のLinuxラップトップ