Clean Disk Space in Ubuntu
Intro
实习一开始申请的Ubuntu 18,下载neovim比较麻烦,直接用了snap
下载的nvim。
最近发现在ubuntu上使用nvim作为manpager报错,例如
1
2
3
$ man select
cannot fstatat canonical snap directory: Permission denied
/usr/bin/man: command exited with status 1: sed -e '/^[[:space:]]$/{ N; /^[[:space:]]\n[[:space:]]*$/D; }' | LESS=-ix8RmPm Manual page select(2) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB%.. (press h for help or q to quit)$PM Manual page select(2) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB%.. (press h for help or q to quit)$ MAN_PN=select(2) nvim +Man!
大致是man
无权访问snap目录。前段时间升级了ubuntu,于是这里打算通过用apt安装nvim来解决这一问题;
不过又引出一个新问题:
1
2
3
4
5
6
7
8
9
10
$ apt-get install neovim
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
neovim
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 37.4 kB of archives.
After this operation, 168 kB of additional disk space will be used.
E: You don't have enough free space in /var/cache/apt/archives/.
试了一下网上的方法,多数是清理/var/cache/apt/archives/
目录下的文件,或者清理/var/log/
下的日志文件,但都没有效果。
Solution
定位一下问题,使用df
命令查看磁盘使用情况
可以判断是/dev/mapper/ubuntu--vg-ubuntu--lv
分区满了,/var/cache/apt/archives/
目录下的文件是存放在这个分区上的。
1
2
3
4
5
6
7
8
9
10
11
12
13
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 307M 2.9G 10% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 58G 57G 0 100% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda2 974M 213M 694M 24% /boot
...
/dev/loop21 13M 13M 0 100% /snap/kubectl/3512
/dev/sdb1 492G 4.2G 462G 1% /mnt/data
tmpfs 3.2G 8.0K 3.2G 1% /run/user/0
从路径结构上看 /mnt/data
是 /
下的一个子目录, 但删除 /mnt/data
中的文件后, 并不会释放/dev/mapper/ubuntu--vg-ubuntu--lv
分区的空间。
原因是/mnt/data
及其子目录的内容实际上存储在设备/dev/sdb1/
上,而不占用原来 /
的磁盘空间。
定位到问题后,就很容易处理了。个人通过rm -rf /root/.local/share/Trash
后释放了26G的空间,成功安装了nvim。回收站路径见Where is the .Trash folder? - Ask Ubuntu
Another WorkAround
如果空间实在捉襟见肘,可以试下如下的方法
1
sudo apt -o Dir::Cache::Archives="/dev/shm/" install neovim
-o
选项用于临时修改 APT 的配置,这里将缓存目录设置为 /dev/shm/
,基于内存的临时文件系统,这样可以避免磁盘空间不足的问题
此外禁用APT的缓存功能应该也可以,参考8. Disable the APT cache to save storage space
Screenshot
换用apt安装nvim后,就可以正常使用nvim作为manpager了,效果大概是这样的

Clean Disk Space in Ubuntu