TOC
いつの間にか使えるようになってました(2020/01/09追記)
数日に1回、軽いWebブラウズや作業で使い続けているAcer C720。元々Chromebookとして発売されていたこのノートPCはM.2 SSDの換装を経て、GalliumOS 3.0をインストールして使っています。
Acer Chromebook C720にGalliumOS3.0をインストールする
Ubuntu 18.04由来のパッケージはきちんとアップデートされているので、PCを起動するたびにaptの更新はしていますし、たま〜に「snap使えるようになってないかなぁ」と思い、次のコマンドを実行しては「kernelの更新が来ない限りは使えるようにならないのかなぁ」と感じていました。
$ systemctl status snapd.service
GalliumOS3.1がリリースされていた
直後には気づかなかったのですが、2019年12月にGalliumOS 3.1がリリースされていました。
News/GalliumOS 3.1 - GalliumOS Wiki
内容はメンテナンスリリースで、インストーラーの改修やリリース時点のアップデートが含まれているとのことでした。
GalliumOS 3.1 Released : GalliumOS
それではと、もしかしたらsnapを使えるようになってるかもしれないし、kernelも更新されてるといいなと思い、おもむろに次のコマンドを打ちます。
$ galliumos-update
いくつかパッケージが更新されるにはされるのですが、どうも裏で実行しているのは
- sudo apt -qq update
- sudo apt full-upgrade
で、うちの環境では更新されたのはlibnss3くらいでした。uname -aでもkernelが変わった感じがなく、う〜んと思いながら念の為snapdサービスの状態を確認すると
$ systemctl status snapd.service
● snapd.service - Snappy daemon
Loaded: loaded (/lib/systemd/system/snapd.service; enabled; vendor preset: en
Active: active (running) since Thu 2020-01-09 13:13:47 JST; 20min ago
Main PID: 5940 (snapd)
Tasks: 13 (limit: 4632)
CGroup: /system.slice/snapd.service
└─5940 /usr/lib/snapd/snapd
1月 09 13:13:46 chrx systemd[1]: Starting Snappy daemon...
1月 09 13:13:46 chrx snapd[5940]: AppArmor status: apparmor is enabled but some
1月 09 13:13:47 chrx snapd[5940]: AppArmor status: apparmor is enabled but some
1月 09 13:13:47 chrx snapd[5940]: patch.go:64: Patching system state level 6 to
1月 09 13:13:47 chrx snapd[5940]: patch.go:64: Patching system state level 6 to
1月 09 13:13:47 chrx snapd[5940]: daemon.go:346: started snapd/2.42.5 (series 1
1月 09 13:13:47 chrx snapd[5940]: daemon.go:439: adjusting startup timeout by 3
1月 09 13:13:47 chrx snapd[5940]: helpers.go:712: cannot retrieve info for snap
1月 09 13:13:47 chrx snapd[5940]: helpers.go:712: cannot retrieve info for snap
1月 09 13:13:47 chrx systemd[1]: Started Snappy daemon.
起動しとるやんけ!
とりあえずvlcをsnapからインストールしてみます。
$ sudo snap install vlc
2020-01-09T13:13:45+09:00 INFO Waiting for restart...
vlc 3.0.8 from VideoLAN✓ installed
普通に入りまして。
もしかしたら去年の年末に使った時に更新していて、その時からGalliumOS 3.1のsnapが使えるようになったのかもしれません。ともあれ、無事にsnapが使えるようになりました。以前使えなかった時とパッケージを比較してみましょう。
$ apt-cache policy snapd
snapd:
Installed: 2.42.1+18.04
Candidate: 2.42.1+18.04
Version table:
*** 2.42.1+18.04 990
990 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
100 /var/lib/dpkg/status
2.41+19.10.1 500
500 http://jp.archive.ubuntu.com/ubuntu eoan/main amd64 Packages
2.37.4+18.04.1 990
990 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
2.32.5+18.04 990
990 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
ひとまず、snapdのバージョンが2.39.2+18.04から2.42.1+18.04に上がったことで実行できた可能性があります。
という訳で、2020年1月現在のGalliumOSでのdockerについて改めて調べました。
Dockerはどのバージョンをインストールするべきか(更新版)
Ubuntuのパッケージとして提供されているもの
Ubuntu 18.04のパッケージは18.09.7-0ubuntu1~18.04.4です。
$ apt-cache policy docker.io
docker.io:
Installed: (none)
Candidate: 18.09.7-0ubuntu1~18.04.4
Version table:
18.09.7-0ubuntu1~18.04.4 990
990 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages
990 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages
17.12.1-0ubuntu1 990
990 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
Docker Inc.が提供するパッケージ
Docker Inc.が提供するUbuntu 18.04用パッケージは5:19.03.5~3-0~ubuntu-bionicです。
$ apt-cache policy docker-ce
docker-ce:
Installed: 5:19.03.5~3-0~ubuntu-bionic
Candidate: 5:19.03.5~3-0~ubuntu-bionic
Version table:
*** 5:19.03.5~3-0~ubuntu-bionic 990
990 http://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
100 /var/lib/dpkg/status
5:19.03.4~3-0~ubuntu-bionic 990
990 http://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
(長いので省略)
Canonicalが提供するsnapパッケージ
Canonicalが提供するDockerのsnapパッケージは18.09.9です。
$ snap find docker
Name Version Publisher Notes Summary
docker 18.09.9 canonical✓ - Docker container runtime
(略)
という訳で、現状ではどれもメンテナンスされているように見えます。選ぶ基準は
- 新機能を使いたい場合、Docker Inc.が提供するパッケージ 5:19.03.5~3-0~ubuntu-bionic
- OSのバージョンに依存しないパッケージを選ぶ場合、snap 18.09.9
- OS全体のメンテナンスに合わせる場合、Ubuntu付属のパッケージ 18.09.7-0ubuntu1~18.04.4
を使用するのがセオリーではないかと思います。
せっかくなのでsnapのDockerを試す
snapのDockerは以下でインストールできます。
# snap install docker
docker 18.09.9 from Canonical✓ installed
バイナリは/snap/bin/
にインストールされますが、docker-composeとdocker-machineが一緒にインストールされるのが地味に嬉しいところ。
$ /snap/bin/docker --version
Docker version 18.09.9, build 1752eb3
$ /snap/bin/docker-compose --version
docker-compose version 1.23.2, build unknown
$ /snap/bin/docker-machine --version
docker-machine version 0.16.1, build cce350d
Hello, worldしてみます。
# /snap/bin/docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:d1668a9a1f5b42ed3f46b70b9cb7c88fd8bdc8a2d73509bb0041cf436018fbf5
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
実行自体は問題ありません。また、普段実行しているdockerコンテナも普通に実行できました。ですが、コンテナの起動が如実に遅いです。1このオーバーヘッドを我慢できるかが一つポイントになるかと思います。
スポンサーリンク
↓以下は過去の内容で、現在GalliumOS3.1ではSnapが利用可能です。↓
GalliumOSにはSnapが入ってない
ChromeOS搭載PC特化のLinuxディストリビューションであるGalliumOS3.0ですが、snapdがインストールされていませんでした。
$ dpkg -l | grep snapd
但し、GalliumOS3.0はUbuntu18.04がベースで、apt-lineもUbuntuのものがそのまま使われているので、他のパッケージと同じようにインストールして利用することは可能だと思っていた時期が私にもありました。
$ apt-cache policy snapd
snapd:
Installed: (none)
Candidate: 2.39.2+18.04
Version table:
2.39.2+18.04 500
500 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
2.37.4+18.04.1 500
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
2.32.5+18.04 500
500 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Snap(snapd)をインストール(失敗)
普通にインストールします。
# apt-get install snapd
systemd系のログがぞろぞろ出てきてたので状態を確認してみます。
$ systemctl status snapd.service
● snapd.service - Snappy daemon
Loaded: loaded (/lib/systemd/system/snapd.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2019-07-05 22:26:20 JST; 3min 35s ago
Process: 4896 ExecStart=/usr/lib/snapd/snapd (code=exited, status=42)
Main PID: 4896 (code=exited, status=42)
7月 05 22:26:15 chrx systemd[1]: Starting Snappy daemon...
7月 05 22:26:15 chrx snapd[4896]: AppArmor status: apparmor is enabled but some kernel features are missing: dbus, network
7月 05 22:26:15 chrx snapd[4896]: daemon.go:379: started snapd/2.39.2+18.04 (series 16; classic; devmode) galliumos/3.0 (amd64) l
7月 05 22:26:15 chrx systemd[1]: Started Snappy daemon.
7月 05 22:26:20 chrx snapd[4896]: daemon.go:611: gracefully waiting for running hooks
7月 05 22:26:20 chrx snapd[4896]: daemon.go:613: done waiting for running hooks
7月 05 22:26:20 chrx snapd[4896]: daemon stop requested to wait for socket activation
$ systemctl is-enabled snapd.service
enabled
# systemctl start snapd.service
$ systemctl status snapd.service
● snapd.service - Snappy daemon
Loaded: loaded (/lib/systemd/system/snapd.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2019-07-05 22:33:58 JST; 3s ago
Process: 5185 ExecStart=/usr/lib/snapd/snapd (code=exited, status=42)
Main PID: 5185 (code=exited, status=42)
一緒ですね・・・とりあえず別バージョンをバージョン指定でインストールします。
# apt-get install snapd=2.37.4+18.04.1
変わらん・・・どうも「daemon.go:611: gracefully waiting for running hooks」でググるとsquashfsとkernelの問題で、最新のkernelで治ってるとのことですが、GalliumOSはCPU別にkernelをビルドしてるくらいなのですぐの反映は望み薄かな・・・
なのでSnapは一旦諦め。
Dockerはどのバージョンをインストールするべきか
UbuntuでDockerをインストールする場合、選択肢が主に3つあって、
- Ubuntuのパッケージとして提供されているもの
- Docker Inc.が提供するパッケージ
- Canonicalが提供するsnapパッケージ
どれがいいかと思っていたところ3はなくなり、1もちょっと古い2ので結局2しかなくなってしまいました。
Dockerが提供するDockerをインストール
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-repository
# apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
# apt-get install docker-ce docker-ce-cli containerd.io
インストールが終わったら試しにhello-worldを。
# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
正常終了。
docker-composeをインストールする
docker-composeはパッケージで管理したいのでUbuntu 18.04のものをインストール(古いけど)
# apt-get install docker-compose
# docker-compose version
docker-compose version 1.17.1, build unknown
docker-py version: 2.5.1
CPython version: 2.7.15+
OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
正直なところ、Snapが使えないのは厳しいですね。Dockerが使えるのはありがたいんですが。
comments powered by Disqus