我正在使用Ubuntu 11.04,并且我想要释放一些根目录中的空间,因为它已经超载了。我特别想更改用于安装应用程序的路径(它们直接安装到根驱动器)。
另一个考虑因素是我正在使用MySQL数据库服务器。服务器安装在根目录中本身,因此我不想冒失失去任何数据。
请给我一些提示来帮助解决这个问题。
另一个考虑因素是我正在使用MySQL数据库服务器。服务器安装在根目录中本身,因此我不想冒失失去任何数据。
请给我一些提示来帮助解决这个问题。
我成功地通过删除旧的头文件和图像来清除了3.5 GB的空间。
请注意,在某些系统上,这也会尝试删除 当前 内核,这并不是一个好主意 - 请查看下面的评论以了解如何进行检查。
我使用了以下命令:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
apt-get clean
命令会连同已安装的软件包一并删除。如果升级失败,您可能希望保留这些软件包。 - timssapt-get
的手册,你可以在APT的配置文件(/etc/apt/apt.conf
)中添加APT::Clean-Installed "off";
,然后使用apt-get autoclean
命令。这样安装的软件包就不会被删除了。 - Giuseppedpkg-query
查找最大的软件包并删除您不再需要的软件包(source):dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'
wajig sizes
获得这个。 - Pablo Bianchisudo apt purge packagename
而不仅仅是sudo apt remove packagename
。 - stragubash: syntax error near unexpected token \
('
。我尝试使用
\转义
'和
"`字符,但没有起作用。 - Paidoofunction myclean {
## Show free space
df -Th | grep -v fs
# Will need English output for processing
LANG=en_GB.UTF-8
## Clean apt cache
apt-get update
apt-get -f install
apt-get -y autoremove
apt-get clean
## Remove old versions of snap packages
snap list --all | while read snapname ver rev trk pub notes; do
if [[ $notes = *disabled* ]]; then
snap remove "$snapname" --revision="$rev"
fi
done
## Set snap versions retain settings
if [[ $(snap get system refresh.retain) -ne 2 ]]; then snap set system refresh.retain=2; fi
rm -f /var/lib/snapd/cache/*
## Remove old versions of Linux Kernel
# This one-liner is deprecated since 18.04
# dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -y purge
# New 2 lines to remove old kernels
dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge
dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge
## Rotate and delete old logs
/etc/cron.daily/logrotate
find /var/log -type f -iname *.gz -delete
journalctl --rotate
journalctl --vacuum-time=1s
## Show free space
df -Th | grep -v fs
}
/var/crash/*.crash
文件夹下的内容。 - cmak.frsudo
来调用该函数,函数内部的sudo
似乎是多余的。另外,vacuum-time=1s
可能并不总是有效,但我不确定,因为我使用的是vacuum size
而不是vacuum-time=1s
:https://forum.manjaro.org/t/does-journalctl-vacuum-time-ever-worked-for-you/45872/4 - WinEunuuchs2Unixfind / -xdev -name core -ls -o -path "/lib*" -prune
、apt-get autoremove --purge
、dpkg -l "linux*" |grep ^.i
,然后使用sudo apt-get purge linux-**-oldversion
清理了旧版本的Linux安装,并通过apt-get install -f
验证了安装。 - Dooglesudo apt autoclean # clean /var/cache/apt/archives folder which save packages while install.
sudo apt autoremove # this command remove unused packages.
sudo shutdown -rf # it will restart your PC immediately and check filesystem in next boot.
find / -type f -size +50M -exec du -h {} \; | sort -n
它查找所有大于50 MB的文件,"du -h
"会创建一个更好的文件列表,并且在管道后面使用"sort -n
"可以按文件大小进行数字排序。
如果你还没有去做的话,删除旧的内核版本(如homebrand所建议)可以释放相当多的空间。
有很多方法可以删除旧的内核版本,而且在如何删除旧的内核版本以清理启动菜单?的回答中可以找到各种不同的选项。
我更喜欢penreturns的这个答案,它将步骤分解得相当简单易懂:
打开终端并检查当前的内核: uname -r 不要删除这个内核!dpkg --list | grep linux-image
命令得到的结果中,很容易复制想要删除的特定旧内核的名称,然后使用sudo apt-get purge
并粘贴复制的名称。sudo apt-get
,以一次性删除它们。 - redDevilsudo find / -size +1G
然后,文件夹中名为.Trash
的任何大文件都可以删除...
docker system df
接下来,如果您只想修剪悬挂的图像:
docker system prune
docker system prune -af --volumes
-y
并不是真正必要的。如果你省略它,apt-get会询问你(只问一次),是否要删除所有通过管道传输的软件包。我个人认为最好不要使用-y
,这样你就有了另外一个检查的机会(除了上面提到的第二个命令)。对我来说,这样做在根分区上释放了15GB的空间! - Boris Däppendpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
试图移除我系统中当前安装的内核版本。请小心,避免使您的系统无法启动。 - HelloWorld101uname -r
查找当前内核并确保不要移除它。如果由homebrand
提供的检查将被清除的包未显示出当前内核,则可以安全地运行他提到的清除命令。 - HelloWorld101