ubuntu にある snapd と snap.lxd はすごく便利だからプリインストールは嬉しい。
でも、用途が限られているときには、snapd が要らない。snap
をremove
したい
snapd の消し方
apt を使ってしまいますが、さきに snapd でsnap されているアプリを消す必要があります。
最初にsnap app を消す
初期導入されているSnapも含めて現在のSnapd 状況を見る。
sudo snap list
全部消していく。初期導入されているのは core / snapd / lxd
sudo snap remove lxd sudo snap remove coreXX # core20 core18とか sudo snap remove snapd
消しても消えないものがあるので、forgetする
sudo snap saved sudo snap forget 1
apt でsnapd を消す。
## sudo apt autoremove --purge snapd で一発 sudo apt purge spand sudo apt autoremove
ファイルを除去する
残存ファイルを除去する
sudo rm -rf /var/cache/snapd/ rm -rf ~/snap # 各ユーザーが持ってるsnap
これで無事に消えるが。再起動が必要
automount系を除去する。
systemd いくつか自動マウント系のジョブ・ユニットが残る。
sudo systemctl list-units snapd.*
必要に応じて除去したり。再起動して反映させる。
sudo systemctl disable snapd.*
アスタリスクで記入していますが、本当はアスタリスクでは処理ができません。めんどくさいのですが、一つずつ手作業で行います。これで無事にsnapが消えます。
snap-xxx.mount / snap-xxx.socket / snapd-xxx.service
などいろいろがあります。mount は後述のapt remove 後も残るので手作業で行いました。
## コマンド例 systemctl disable var-snap-xxx.mount rm /etc/systemd/system/var-snap-xxx.mount
aptを先にやってしまった場合
apt を先にやってしまった場合は、ずっとファイルが残り続けたり、起動時に systemd units がエラーになる。
apt install snapd ## snap remove XXX apt remove snapd
再度snapd をインストールして、snapdを除去していけば解決するはずである。
無事に除去された。
全部消したら、3GB未満になった。
takuya@spare:~$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda4 7.8G 2.6G 4.8G 36% /
snapd はいらないときもある
ubuntu は grub メニューを隠したり、snapd を推してきたり。cloud-initを入れたりと、便利な反面ってところが見え隠れする。
消せるから特に気にしないけどね。
注意:
LXCのコンテナでこれをやると、LXCホスト側にも影響することがあるので注意。
lxc(snap版)は ホストーゲスト間でLXC(snap)を共有しているので、security.privileged: "true"の場合は、snap の操作が、lxc ホスト側に影響することがあるのでむやみに消すべきではないと思われる。
私はやらかしました snapd を消したら、ホスト側でも見えなくなって背筋が凍った。
/snap/lxd/24918/commands/lxc: 5: cannot open /proc/self/attr/current: Permission denied /snap/lxd/24918/commands/lxc: 6: exec: /usr/bin/aa-exec: Permission denied
などとなり、app armor exec (aa_exec)がエラーになり、lxc コマンド関連が全部動かなくなった。もう泣いた。