2つのパッケージ管理システムを使う
本連載の読者であるLinuxユーザーには頭の痛い問題だと思うが、今後数年の間は、どのLinuxディストリビューションでも2つのパッケージ管理システムを使うことになりそうだ。Ubuntu Desktopの場合であれば、現在は次のようなすみ分けで2つのパッケージ管理システムを使う状態になっている。
パッケージ管理システム | 目的 |
---|---|
apt | システムパッケージの管理、サードパーティ製パッケージの管理 |
Snap | サードパーティ製パッケージの管理 |
「apt」はUbuntuのパッケージ管理システムだ。カーネルやユーザランドの基本的なコマンドからサードパーティ製のコマンドまで、Ubuntuではaptを使ってパッケージとして管理が行われている。一方、「Snap」は新しいパッケージ管理システムだ。Ubuntu Desktop 18.04 LTSではすでにデフォルトでいくつかのパッケージがSnap経由でインストールされている。
今後のことは誰にもわからないが、現在の動きを見る限りでは、Snapのもともとの開発元であるCanonicalはそう遠くない段階で次のような管理状況を実現していきたいのではないかと思う。
パッケージ管理システム | 目的 |
---|---|
apt | システムパッケージの管理 |
Snap | サードパーティ製パッケージの管理 |
カーネルと基本コマンドといった最小限のシステム管理についてのみaptを使い、サードパーティ製アプリケーションの管理にはSnapを使うという位置づけだ。将来的にはシステムも含めてSnapにするということも考えられるが、今のところそれはあまり現実的ではないように見える。
Snapに登録されているパッケージは「Snap Store」で調べることができるので、どのようなパッケージが用意されているかはWebブラウザから調べることができる。人気の高いパッケージは大方がSnapパッケージになっている状況だ。
SnapパッケージはWebブラウザ経由でダウンロードしてインストールするのではなく、「snap」というコマンドを使ってインストールを行う仕組みになっている。このあたりはaptなどとほぼ同じ使い方だ。新しく管理コマンドの使い方を学習するコストはほとんどないと思っておいて大丈夫である。「apt」と書いていたコマンドを「snap」に変えれば、大体何とかなる。
すでにaptで満足しているユーザーは、「なぜ今さら新しいパッケージ管理システムを使うのか」と不思議に思うかもしれない。簡潔に言えば、Snapのほうが管理が簡単になるためだ。それだけで使い始める価値があるだろう。
知れば使いたくなる! Snapの特徴
Snapの特徴を簡単にまとめると次のようになる。
Snapの特徴 |
---|
Ubuntuのみならず、複数の主要Linuxディストリビューションに対応している |
操作方法は現在主流のパッケージ管理システムとよく似ている |
パッケージは自動的にアップデートされ、最新版が維持される |
パッケージはシステムやほかのパッケージからの独立性が高く、システムやほかのパッケージに影響を与えにくい |
パッケージは依存するライブラリなども含んでおり、単体でのアップデートを実施できる |
apt世代のパッケージ管理システムは、基本的に全体で1つの整合性を実現するような設計になっている。そのため、システムもパッケージも常に全てをアップデートし続ける必要がある。システム全体でライブラリやコマンドなどの依存関係が構築されるため、特定のパッケージだけアップグレード/ダウングレードするといった操作を前提にした設計はされていない。
他方、Snapはそうしたことが可能なように設計されている。パッケージ単体で依存するライブラリやコマンドを含めるように設計されており、システムやほかのパッケージに影響を与えにくい。さらに、Snapでは管理デーモンが自動的にパッケージのアップグレードを実施する仕組みになっている。つまり、いったんインストールすれば、ユーザーは明示的にアップデートを実施する必要がないということだ。
パッケージそれぞれの独立性が高く、壊れにくく、アップデートの手間もかける必要がない。そうなると、aptでインストールするよりもSnapでインストールしておいたほうが楽だ、ということになる。
aptで提供されているパッケージの全てがSnapにも存在するわけではないので、現在ではaptもSnapも両方使う必要がある。しかし、時々Snapにパッケージが追加されたか調べて、追加されたものはaptから削除してSnapのほうでインストールするようにする……というのは悪くない方法だ。Snapは独立性が高いので、もしaptで同じパッケージがインストールされていても衝突することがない。その点でも扱いやすいパッケージ管理システムだ。
スキルの”使い回し”が可能
Snapの特徴の1つが、このパッケージ管理システムはUbuntuに限定されるものではなく、すでに主要なLinuxディストリビューションが対応しているユニバーサルなパッケージ管理システムだということだ。これはユーザーとパッケージの制作側にそれぞれ次のようなメリットがある。
対象 | メリット |
---|---|
パッケージ開発側 | Snapパッケージを開発すれば複数のLinuxディストリビューションに対応できる。apt、yum、dnfといった複数のパッケージを開発しなくても済む |
ユーザ側 | Snapの使い方を覚えれば複数のLinuxディストリビューションで同じ操作ができる。ちょっとずつ異なるパッケージ管理システムの使い方を調べたり、ちょっとずつ異なるパッケージ名に悩まされたりしなくて済む |
現在のところLinuxディストリビューションのみが対応しているが、Linuxバイナリ互換機能を備えたほかのプラットフォームでも利用できるようになる可能性もある。なかなか将来の見通しが明るいパッケージ管理システムだ。
Snapと同じような発想のパッケージ管理システムは、PC-BSD (現 TrueOS)がPBIとして実装している。Snapの場合は、Canonicalが開発を進めたことで早い段階で広いユーザーを獲得した点が特に注目される。今後もSnapの利用者は増え続けるだろう。早めに使い方を覚えてしまいたいパッケージ管理システムだ。
※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。
連載目次
もっと知りたい!こちらもオススメ

なぜ今、統合システムなのか? 押さえておくべき「3つのインパクト」
ガートナー ジャパンは10月31日~11月2日、都内で「Gartner Symposium/ITxpo 2017」を開催。11月1日には同社 主席アナリストの青山浩子氏が登壇し「CIOが理解すべき統合システムの3大インパクト」と題する講演を行った。本稿では、講演の内容をダイジェストでお届けする。
関連リンク
ダウンロードBOXに入れる
記事をダウンロードBOXに追加します。よろしいですか?
ブックマーク
記事をブックマークに追加します。よろしいですか?
-
[2021/01/15 08:00] サーバ/ストレージ
-
[2021/01/14 09:00] 開発ソフトウェア
-
$side_seminar_count = $i+1; ?>
-
1/26(火)15:00~17:00
予期せぬ攻撃にも動じないために「セキュリティレジリエンス向上の具体策」
$side_seminar_count = $i+1; ?>
-
1/27(水)15:00~16:50
Kubernetes時代のインフラ構築指針~オンプレミス回帰のその先へ~
$side_seminar_count = $i+1; ?>
-
2021年1月27日(水)14:00~15:00
DXの実現につながるビジネスモデル「サブスクリプション」 実現・運用・収益化のコツ
$side_seminar_count = $i+1; ?>
-
2021年1月27日(水) 13:30~15:30
Palo Alto Networks Forum vol.5 Virtual
$side_seminar_count = $i+1; ?>
-
2021年1月28日(木)11:00~17:30
建設業界のDX促進の方法論 ~安全・安心を維持し事業改善を~
今注目のIT用語の意味を事典でチェック!