如何释放 /usr 中的一些空间。我无法安装新应用程序,因为 /usr 占用了 100% 的可用空间
root@debian:/home/midhun# df -h
Filesystem Size Used Avail Use% Mounted on
udev 4.0G 0 4.0G 0% /dev
tmpfs 807M 9.4M 798M 2% /run
/dev/sda11 91G 11G 76G 12% /
/dev/sda13 9.2G 9.1G 0 100% /usr
tmpfs 4.0G 29M 4.0G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0G 0 4.0G 0% /sys/fs/cgroup
/dev/sda15 9.2G 37M 8.6G 1% /tmp
/dev/sda16 9.2G 869M 7.8G 10% /usr/local
/dev/sda12 19G 18G 32M 100% /home
/dev/sda14 9.2G 4.6G 4.1G 53% /var
/dev/sda18 7.3G 34M 6.9G 1% /srv
/dev/sda19 15G 73M 14G 1% /boot
/dev/sda17 9.2G 1.2G 7.5G 14% /opt
tmpfs 807M 16K 807M 1% /run/user/115
tmpfs 807M 28K 807M 1% /run/user/1000
答案1
您将磁盘空间划分为分区的方式似乎是任意的,而且同样不是最佳的,我不太清楚您为什么这样做,但我们不讨论这个。
我注意到你的根分区
root@debian:/home/midhun# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda11 91G 11G 76G 12% /
有大量可用空间,但/usr
空间已完全耗尽。
这是我完成这项任务的方法 - 你会有从 Live CD/USB 闪存启动以执行以下操作:
- 删除或注释掉该
/usr
条目/etc/fstab
umount /usr/local
(万一)cp -a --preserve=all /usr /usr-new
umount /usr
rmdir /usr
mv /usr-new /usr
或者,您可以运行sudo du -x /usr | sort -n | tail -30
并查看哪些目录占用最多空间。
然后使用sudo dpkg-query -S /path
找出它们属于哪些包并通过 删除它们sudo apt remove packagename
。
答案2
您已经通过将可用磁盘/分区 (/dev/sda16) 安装到/usr/local
.您可以对其他“大”目录执行相同的操作,但请确保您了解其后果,因为它会增加复杂性并可能使系统处于受阻状态。
答案3
首先运行它来确定系统上最大的目录是什么
sudo du -k / | sort -n|tail -222
然后 rm
在 /home 中给出有问题的目录
您可能只想直接使用
sudo du -k /home | sort -n|tail -222
sudo du -k /usr | sort -n|tail -222
这将显示大包
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
如果您看到最近安装的一些和/或知道您没有使用它们,则可以将其删除
另一个角度是通过发出来查看最近安装的软件包
grep " install " /var/log/dpkg.log
看看其中是否有任何是可选的并且可以删除
避免直接删除 /usr 中的任何内容,因为其中包含关键的系统工具,删除这些工具可能会损坏系统。相反,识别可选包,然后使用普通命令删除这些候选包。
sudo apt remove unused-big-package
sudo apt purge unused-big-package # this also removes its configs