Ubuntu 20.04 の Snap を駆逐する

広告

Ubuntu 20.04 は Gnome ディストリビューションで、Gnome 3.26.1 を採用している。だが Canonical はいつも何か違うことをやりたがる。Flatpak に対抗するため、彼らは Snappy なるものを作り出した。今は Snap と呼ばれているらしい。

Snap を作ること自体が悪いとは言わない。ただ、この Snap が現状本当にダメなのだ。しかも Canonical はいつもの余計なことを始めた:

広告

エコシステムが整っておらず、性能も機能も大したことないのに、強引に抱き合わせて推進している

Unity を覚えているか? Unity は後期にはなかなか良くなったが、初期の強引な推進でヘイトを稼ぎまくった。

個人的には Canonical には Snap をちゃんとしてほしいと思っているが、現状は問題が多すぎる:

  • パッケージが巨大。ソフトを動かすたびにイメージをマウントする必要があるらしい。依存関係の解決のためだと言うが……
  • フォントレンダリングの対応がひどい
  • インプットメソッドの対応もイマイチ
  • 起動速度が激遅。調べてみると、Snap はやはりソフトを全部パッケージして圧縮してイメージにしている。毎回解凍してからマウントしている……そりゃ遅いわ

起動速度の遅さ、フォントレンダリング、インプットメソッド対応の3つだけでも十分に購買意欲をそがれる。ただ Snap にも利点はあって、Canonical の中国本土での運営のおかげでダウンロード速度はまあまあだ。CDN があるらしい。

Canonical が Ubuntu で Snap を含めてサポートし、ユーザーに Snap を使うよう促しつつ、Snap の様々な問題を改善・解決していけば、徐々に普及していったかもしれない。しかし奴らは Ubuntu 20.04 でストアまで Snap Store に変えてしまい、しかも Chrome をインストールしようとすると Snap を使うよう強制され、apt で何をインストールしても Snap を勧めてくる。ふざけんな。

というわけで、一緒にこのクソ Snap を駆逐して、元のストアを取り戻そう。

for p in $(snap list | awk '{print $1}'); do
  sudo snap remove $p
done

インストール済みの Snap ソフトを全部削除する。

sudo systemctl stop snapd
for m in /snap/core/*; do
   sudo umount $m
done
sudo snap remove core

Snap の Core ファイルを削除する。デカいぞ。

sudo apt autoremove --purge snapd

Snap の管理ツールを削除する。

rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
sudo rm -rf /var/cache/snapd

Snap のディレクトリを削除する。

sudo bash -c "cat > /etc/apt/preferences.d/no-snapd.pref" << EOL
Package: snapd
Pin: origin ""
Pin-Priority: -1
EOL

Snap の更新元を削除する。

あとは Chrome をインストールすればいい。Google 公式の deb を直接使ってもいい。

photo_2020-05-06_09-23-48.jpg

もちろん、Snap を散々罵ったからといって、Flatpak がどれだけ良いと思っているわけではない。あれは Snap よりもインプットメソッドとフォントレンダリングの対応が悪く、容量が少しマシなだけで、いわゆる「クソな Red Hat」が推進する業界標準にすぎない。欧米人が推進するパッケージ管理は、いつも CJK ユーザーのニーズを選択的に無視する。インプットメソッド対応を指摘すれば、オープンなインプットメソッドは安全でないと言い、じゃあどうすればいいのかと聞けば iBus を使えと言い、iBus は使いにくいと言えば「使えないわけじゃない」と言う。ふざけんな。


方法の参考: https://dr-knz.net/ubuntu-without-snap.html

本家 plumz.me でこの記事にコメントする

コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。

目次