snap简介

snap 是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。

所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。

Snap的安装包扩展名是.snap,类似于一个容器,它包含一个应用程序需要用到的所有文件和库(snap包包含一个私有的root文件系统,里面包含了依赖的软件包)。

它们会被安装到单独的目录;各个应用程序之间相互隔离。使用snap有很多好处,首先它解决了软件包的依赖问题;其次,也使应用程序更容易管理。

安装

安装前要先保证系统已安装snap,如果您运行的是Ubuntu 16.04 LTS (Xenial Xerus)或更高版本,包括Ubuntu 18.04 LTS (Bionic Beaver)和Ubuntu 20.04 LTS (Focal Fossa),则无需执行任何操作。Snap 已安装并准备就绪。

sudo apt update
sudo apt install snapd

然后注销并重新登录,或重新启动系统,以确保正确更新 snap 的路径。
要安装 phpstorm,只需使用以下命令:

sudo snap install phpstorm --classic

进入snap目录就可以看到已安装的phpstorm:
在这里插入图片描述

卸载

使用命令可以查看安装列表

sudo snap list

在这里插入图片描述
再使用如下命令即可完成卸载:

sudo snap remove PHPStorm

Ubuntu上回环设备dev/loop占用率100% 卸载

1、在当前用户根目录下查看文件磁盘占用情况

df -h

2、发现多个回环设备dev/loop的磁盘占用率达到100%
在这里插入图片描述
回环设备是什么?

回环设备是指拿一个大的镜像文件,如xxx.iso或xxx.img等,在此文件内建立一个文件系统,此文件就像一个新的磁盘或光盘设备一样使用。回环可以理解成回坏重用,在已有设备上建立文件来模拟物理块设备。

3、执行如下清理命令

sudo apt autoremove --purge snapd

挂载在snap的/dev/loop占用100%问题

在这里插入图片描述
我百度了一下,发现几乎所有的答案都说卸载 snapd 就可以解决了,简直太不负责任了!

首先,这是正常现象! snap 使用的是 SquashFS 文件系统,这是一个只读的文件系统,所以它的大小在创建的时候一定是刚刚好能够存放它的内容就可以了,因为它是只读,所以它的大小之后不会改变。所以占用量肯定是 100% 啊。

卸载 snapd 是一个方法,但是 snapd 是运行 snap 所需的守护进程,使用 snap 下载应用、安装、运行、管理都需要它,它还包含 snap 命令供用户请求安装应用程序。如果你卸载了 snapd,snap 也就用不了。

不过,虽然这是正常现象,但是看着特别碍眼啊,怎么办呢?

解决办法

运行 df 命令时添加选项,不显示它就好了:

df -x squashfs -h

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐