写入错误:设备上没有剩余空间。删除“额外”包。尝试恢复

写入错误:设备上没有剩余空间。删除“额外”包。尝试恢复

问题:

当我输入:

dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1

我得到了我的机器上所有已安装软件包的列表,例如:

...
raspberrypi-artwork                     extra
raspberrypi-bootloader                  extra
raspberrypi-ui-mods                     extra
raspi-config                            extra
rpi-update                              extra
sonic-pi                                extra
ssh                                     extra
triggerhappy                            extra
wireless-tools                          extra
xkb-data                                extra
adduser                                 important
apt                                     important
apt-utils                               important
aptitude                                important
aptitude-common                         important
bsdmainutils                            important
...

我最近运行了一个安装了很多东西的脚本,现在我的机器响应如下:(/usr/bin/mandb: can't write to /var/cache/man/2694: No space left on device路径发生变化,但它总是告诉我没有剩余空间。)

我看到的可能的标签是:

  • 标准
  • 额外的
  • 重要的
  • 选修的
  • 必需的

我在各个存储库中都有未提交的更改,并且我希望能够推送本地更改,但当我尝试推送时,我不断收到此错误:

$ git push
fatal: write error: No space left on device
error: Couldn't write .git/refs/remotes/origin/master.lock
error: Cannot update the ref 'refs/remotes/origin/master'.
Everything up-to-date

我还应该说,我知道一切都不是最新的。

系统:

这是在运行“wheezy”raspbian 的树莓派上。

问题:

我安装了数百个软件包。如何删除所有标有“额外”的包裹?这是释放计算机空间的最佳方法吗?我在各个存储库中都有未提交的更改,并且我希望能够推送我的本地更改。

我也会接受一个删除除必需和重要之外的所有内容的答案。 Git 被标记为可选,我更愿意保留它(尽管我总是可以在删除所有不需要的包后再次安装它)。

提前致谢!!

答案1

您可以使用以下命令清除所有可选和额外的软件包: sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}\n' | awk '$2 ~ /optional|extra/ { print $1 }')

--simulate标志可让您查看将删除的内容,而无需实际删除所有内容。删除该标志以实际卸载软件包。

您将需要重新安装 git,因为它将与其他可选和额外的软件包一起被删除。

您可能需要一些可选的和额外的软件包,因此请小心删除。更多这里:https://askubuntu.com/questions/79665/keep-only-essential-packages

答案2

你必须检查在哪里你的空间用完了。该df(1)命令告诉您哪些文件系统已满。

空间不足的一个常见原因是日志文件过大(检查下/var/log,您的系统应该有命令来清除过时的日志)。请注意,sort(1)使用临时文件,无论是在var/tmp或中/tmp,如果其中任何一个包含太多的垃圾,它可能会因空间不足而失败。

答案3

由于您已经安装了 aptitude,它可以在这里为您提供帮助。启动aptitude并限制(快捷键l:)视图以匹配包

~i ~pextra

在线手册/usr/share/doc/aptitude/README作为搜索词参考。

现在,您可以选择将它们全部卸载:按-每个顶级标题下方的按钮将软件包标记为卸载(保留配置文件),或_将它们标记为清除(删除配置文件),然后g继续。如果您想保留某些软件包,您确实有机会查看该列表。

相关内容