Chromiumをdebからsnapへ移行
「Ubuntu 19.10」ではdeb版Chromiumが提供されなくなり、Snap版Chromiumに移行します。「Ubuntu 19.10」でdeb版Chromiumをインストールすると、Snap版Chromiumがインストールされます。
$ sudo apt install chromium-browser
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
chromium-browser
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
48.3 kB のアーカイブを取得する必要があります。
この操作後に追加で 162 kB のディスク容量が消費されます。
取得:1 http://archive.ubuntu.com/ubuntu eoan/universe amd64 chromium-browser amd64 76.0.3809.100-0ubuntu1~snap1 [48.3 kB]
48.3 kB を 2秒 で取得しました (27.5 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ chromium-browser を選択しています。
(データベースを読み込んでいます ... 現在 223081 個のファイルとディレクトリがインストールされています。)
.../chromium-browser_76.0.3809.100-0ubuntu1~snap1_amd64.deb を展開する準備をし
ています ...
=> Installing the chromium snap
==> Checking connectivity with the snap store
==> Installing the chromium snap
Warning: /snap/bin was not found in your $PATH. If you've not restarted your
session since you installed snapd, try doing that. Please see
https://forum.snapcraft.io/t/9469 for more details.
chromium 77.0.3865.90 from Canonical✓ installed
=> Snap installation complete
chromium-browser (76.0.3809.100-0ubuntu1~snap1) を展開しています...
chromium-browser (76.0.3809.100-0ubuntu1~snap1) を設定しています ...
mime-support (3.63ubuntu1) のトリガを処理しています ...
hicolor-icon-theme (0.17-2) のトリガを処理しています ...
gnome-menus (3.32.0-1ubuntu1) のトリガを処理しています ...
desktop-file-utils (0.24-1ubuntu1) のトリガを処理しています ...
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
chromium-browser
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
48.3 kB のアーカイブを取得する必要があります。
この操作後に追加で 162 kB のディスク容量が消費されます。
取得:1 http://archive.ubuntu.com/ubuntu eoan/universe amd64 chromium-browser amd64 76.0.3809.100-0ubuntu1~snap1 [48.3 kB]
48.3 kB を 2秒 で取得しました (27.5 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ chromium-browser を選択しています。
(データベースを読み込んでいます ... 現在 223081 個のファイルとディレクトリがインストールされています。)
.../chromium-browser_76.0.3809.100-0ubuntu1~snap1_amd64.deb を展開する準備をし
ています ...
=> Installing the chromium snap
==> Checking connectivity with the snap store
==> Installing the chromium snap
Warning: /snap/bin was not found in your $PATH. If you've not restarted your
session since you installed snapd, try doing that. Please see
https://forum.snapcraft.io/t/9469 for more details.
chromium 77.0.3865.90 from Canonical✓ installed
=> Snap installation complete
chromium-browser (76.0.3809.100-0ubuntu1~snap1) を展開しています...
chromium-browser (76.0.3809.100-0ubuntu1~snap1) を設定しています ...
mime-support (3.63ubuntu1) のトリガを処理しています ...
hicolor-icon-theme (0.17-2) のトリガを処理しています ...
gnome-menus (3.32.0-1ubuntu1) のトリガを処理しています ...
desktop-file-utils (0.24-1ubuntu1) のトリガを処理しています ...
Chromium
「Chromium」はオープンソースで開発されているWebブラウザーです。「Google Chrome」や新しい「Microsoft Edge」など、様々なブラウザーのベースになっているブラウザーです。
「Chromium」の使い勝手は「Google Chrome」とほぼ変わらず、「Chromium」を利用しているユーザーも多いかと思います。
debとsnaps
debパッケージ及びsnapパッケージは、複数のファイルで構成されるソフトウェア本体や、ソフトウェアの動作に必要な情報(メタデータ)をまとめる仕組みです。以下はdeb版Chromiumのパッケージの中身です。
以下はSnap版Chromiumのパッケージの中身です。
ユーザーはリポジトリーや「Snap Store」などソフトウェアを配布する仕組みを通じ、それらのパッケージをダウンロードし、ソフトウェアのインストールやアップデートを行います。
debパッケージ及びsnapパッケージはその作成過程や動作上の仕組み、配布方法に違いはあれど、ソフトウェアの動作に必要なファイル群をまとめる点に違いはありません。
「Ubuntu Desktop」では現在、debとsnapsの双方で「Chromium」を提供しています。
これをsnapsに一本化するという話です。
deb版ChromiumはCanonicalのサポート対象外だがサポートしてきた
deb版Chromiumは「universe」に配置されています。「universe」に配置されているパッケージ(ソフトウェア)は「Canonical」のサポート対象外であり、コミュニティーによる任意のサポートが提供されるパッケージになります
しかしUbuntu Desktopチームは、「Chromium」を利用するユーザーが多いため、deb版Chromiumのサポートを継続的に行っています。
しかしこの作業は現在サポートされている「Ubuntu」が対象になっているため、Ubuntu Desktopチームにとって非常に大きな負担となっています。
Chromiumは6週間ごとにリリースされる
「Google」は「Chromium」のメジャーアップデートを6週間ごとに行い、その間セキュリティーアップデート(マイナーアップデート)を複数回行っています。「Ubuntu」ではこれらのリリース毎に現在サポートされている各「Ubuntu」ごとに「Chromium」のビルドを行っています。
例えば現在では、以下の「Ubuntu」のバージョンが対象です。
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 19.04
- Ubuntu 19.10(もうすぐリリース)
加えて以下のアーキテクチャーが対象です。
- amd64
- i386
- armhf
- arm64
古いバージョンのUbuntuでChromiumのビルドが難しくなる
「Chromium」は「Ubuntu」のプロセスに沿って開発されているソフトウェアではありません。「Chromium」は開発において、新バージョンのコンパイラーが提供している新機能を利用することがしばしばあります。
しかしそれらの新機能は、古くなった「Ubuntu」で利用できるコンパイラーが実装していない機能です。
そこでSnap
Snapが持つ特徴の一つに、複数のLinuxディストリビューションや、同じLinuxディストリビューションの複数のバージョンに対し、横断的にソフトウェアを提供できる仕組みがあります。各アーキテクチャー毎に「Chromium」を一度ビルドするだけで、提供先のLinuxディストリビューションや、Linuxディストリビューションのバージョンを意識せずに「Chromium」を提供できます。
(もちろん提供先のOSが「Snap(snapd)」をサポートしている必要があります。)
つまり現在サポートしている「Ubuntu」だけでなく「Ubuntu 14.04 EMS」にも「Chromium」を提供でき、さらに「Debian」「Fedora」「Linux Mint」「Manjaro」といった「Ubuntu」以外のディストリビューションにも横断的にコストを抑えながら「Chromium」を提供できるようになります。
負担の軽減
debでの提供を止めSnapで「Chromium」を提供することで、開発者/開発チームにかかる負担を軽減し、開発者はそのリソースを他に回すことができます。加えてSnapが持つ利点も活用することができます。
Snapが持つ利点
Snapにはチャンネルという仕組みがあり、チャンネルごとに異なるバージョンのソフトウェアを提供できます。例えば安定版を提供するチャンネルや、ベータ版を提供するチャンネル、開発版を提供するチャンネルなど、一つのソフトウェアに対して異なるバージョンのソフトウェアを提供できます。
もしユーザーがWeb開発者ならば、ベータ版の「Chromium」をインストールしてテストに活用することができます。
この時ユーザーはチャンネルを切り替えるだけで、ベータ版の「Chromium」をインストールできます。
またSnapはソフトウェアの自動アップデートに対応しており、ユーザーはソフトウェアのアップデートを手動で行う必要がありません。
加えてSnapは隔離された環境でソフトウェアを実行するため、安全性を向上させることができます。
というわけで
というわけでdebからSnapへ移行する理由をまとめると、以下の通りです。1.ChromiumはUbuntuのデフォルトのブラウザーではなく、Chromiumユーザーの規模を考慮すると、移行に関するユーザーへの影響は大きくない。
2.Snapsは頻繁にアップデートを行うソフトウェアを考慮した設計になっている
3.アップストリームのChromiumは、stable/beta/devの3種類のリリースチャンネルを持っているが、これらのチャンネルはsnapdのデフォルトのチャンネルであるstable/beta/edgeチャンネルに綺麗に適合できる。
またsnapdのチャンネルを切り替えることで簡単にChromiumのリリースチャンネルを切り替えることができ、複数のバージョンを共存してインストールすることも可能。
4.Snapは隔離された環境でソフトウェアを実行するため、ブラウザーが持つサンドボックス機能に加え、Snapによるさらなる安全性の確保が可能になる。
debからSnapへの移行方法
移行に関し既存のユーザーに影響を与えずに、そしてユーザーによる追加作業なしにdebからSnapへ移行する必要があります。現在Snap版Chromiumには、いくつか動作上の課題・問題があります。
開発チームはこれらの問題の解決に向け、懸命に取り組んでいます。
しかしそれらを踏まえても移行に関し十分に熟した状況であると開発者は感じており、加えて次期LTSである「Ubuntu 20.04 LTS」に向け、フィードバックを募集したいと考えています。
「Ubuntu 19.10」ではdeb版Chromiumをインストールすると、Snap版Chromiumがインストールされます。
deb版Chromiumのパッケージには後方互換性を確保するため、ラッパースクリプトとデスクトップファイルが含まれ、「Chromium」本体は含まれません。
この時可能な限り円滑に移行を行えるようにするため、以下の処理を行います。
1.プロファイルの取り込み(インポート)
Snap版Chromiumを初めて起動した時、ストレージに十分な空き容量があれば、「$HOME/.config/chromium」にある既存のユーザープロファイルを、Snap版Chromiumに取り込みます。2.Snap版ソフトウェアの起動
「/usr/bin/」に配置されている「chromium-browser」及び「chromedriver」は、それぞれSnap版の「chromium-browser」及び「chromedriver」を実行するラッパーになります。3.デフォルトのブラウザーの更新
「Chromium」がデフォルトのブラウザーに設定されている場合、「chromium-browser」ラッパーは、それをSnap版Chromiumを起動するように変更します。4.デスクトップランチャーの更新
デスクトップランチャーに「Chromium」が登録されている場合、Snap版Chromiumを起動するように変更します。現在この機能は「GNOME Shell」及び「Unity」でのみサポートされています。
他のシェルでもこの機能を実現するには、協力者が必要です。
5.apport
「apport」は、Snapパッケージ及びその依存情報を含めるようになります。debからSnapへの移行時期
すでに「Ubuntu 19.10」ではdebからSnapへの移行が行われています。将来的に既存のUbuntuでも移行が行われる
将来的に既存のUbuntuでもdebからSnapへ移行する予定です。まず「Ubuntu 19.04」から移行が行われます。
ただし先に挙げた問題の中で重要な問題がすべて解決されるまで、移行は開始されません。
Snap版Chromiumをインストールするには
Snap版Chromium自体は以前から利用できるようになっています。Snap版Chromiumをインストールするには、以下のコマンドを実行します。
snap install chromium
Snap版Chromiumを起動するには、以下のコマンドを実行します。
snap run chromium
もちろん「Ubuntu 19.04」や「Ubuntu 18.04 LTS」等でも利用可能です。
先を見越してSnap版Chromiumを利用してみるのも良いでしょう。
不具合を見つけたら、問題を報告すると良いでしょう。