Answers:
获得程序及其所有依赖项使用的空间的最简单且无错误的方法是使用apt本身。注意没有被其他程序使用,而是与软件包一起安装的依赖项,因为它们没有被删除,因此不被考虑。
只是
sudo apt-get --assume-no autoremove PACKAGENAME
要么
apt-space-used-by() { sudo apt-get --assume-no autoremove $@ | grep freed | cut -d' ' -f4-5 ;}
用法 apt-space-used-by PACKAGENAME
这个 python脚本看起来很有希望(bigpkg-查找在系统上需要大量空间的软件包)
echo -n | sudo apt-get purge <package> | grep "disk space will be freed"
要么
echo -n | sudo apt-get purge --auto-remove <package> | grep "disk space will be freed"
在哪里替换 <package>
你的package-name
(例如:gimp
)
这不会清除具有依赖项的软件包,而仅给出在的帮助下将释放多少磁盘空间grep
。
dpkg --print-avail
或apt-cache show
:apt-cache show <package> | grep "Installed-Size"
要么
dpkg --print-avail <package> | grep "Installed-Size"
这将显示已安装的大小 <package>
。
例:
$ apt-cache show gimp | grep "Installed-Size"
Installed-Size: 15024
dpkg-query -W -f='${Installed-Size;8} ${Package}\n' | sort -n
您可以将更多信息用于逐页:
dpkg-query -W -f='${Installed-Size;8} ${Package}\n' | sort -n | more
在上方根据要添加的大小列出软件包,您可以使用tail
以下列出列出最大大小的软件包:
dpkg-query -W -f='${Installed-Size;8} ${Package}\n' | sort -n | tail
dpigs
(来自mandpigs
):dpigs-显示哪些已安装的软件包占用最多的空间
dpigs按大小对已安装的软件包进行排序,并输出最大的软件包。默认情况下,dpigs显示最多10个软件包。你可以改变 通过使用-n选项,此值(请参阅“选项”)。该信息来自带有grep-status(1)的dpkg状态文件。
可以通过以下方式安装:
run命令示例sudo apt-get install debian-goodies
$ dpigs
115449 wine1.6-i386
110356 linux-image-extra-3.13.0-24-generic
103828 libreoffice-core
86240 fonts-horai-umefont
74016 libreoffice-common
72709 liboxideqtcore0
61736 linux-headers-3.13.0-24
60821 libpyzy-1.0-0
59477 firefox
59443 thunderbird
popularity-contest (8) - list the most popular Debian packages
popcon-largest-unused (8) - List size of unused packages
首先运行popularity-contest
,然后popcon-largest-unused
,这将帮助您查找未使用的软件包的大小。请访问手册页以获取更多信息。
我尽力提供逐步有用的命令。
希望这些会有所帮助!
apt-cache show packagename
除其他事项外,还列出了软件包的安装大小和软件包的依赖关系。还有apt-cache rdepends packagename
列出了使用该软件包的软件包。
您可能要使用后一个命令并apt-cache policy packagename
确定是否安装了反向依赖关系。
Installed-Size
是千字节,而单位Size
是字节。我应该在回答中提到这一点。
这是执行此操作的脚本。虽然没有机器友好的输出。
sudo apt-get install python-apt
然后您就可以出发了。
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from __future__ import (absolute_import, division,
print_function, unicode_literals)
import apt
from apt.cache import Filter, FilteredCache
MB = 1024*1024
class InstalledFilter(Filter):
def apply(self, pkg):
return pkg.is_installed
def iter_base_deps(cache, package):
deps = []
version = package.installed
for dep_type in ('Depends', 'PreDepends', 'Recommends'):
deps.extend(version.get_dependencies(dep_type))
for dep in deps:
for base_dep in dep:
if base_dep.name in cache:
yield base_dep
def main():
package_ref_count = {}
results = []
cache = FilteredCache(apt.Cache())
cache.set_filter(InstalledFilter())
for package in cache:
for base_dep in iter_base_deps(cache, package):
if base_dep.name in package_ref_count:
package_ref_count[base_dep.name] += 1
else:
package_ref_count[base_dep.name] = 1
for package in cache:
base_deps_size = 0
base_deps = []
for base_dep in iter_base_deps(cache, package):
if package_ref_count[base_dep.name] == 1:
base_deps.append(base_dep)
base_deps_size += cache[base_dep.name].installed.installed_size
total_size = package.installed.installed_size + base_deps_size
results.append((total_size, package, base_deps_size, base_deps))
for total_size, package, base_deps_size, base_deps in sorted(results, reverse=True):
if package.name in package_ref_count:
continue
if total_size < MB:
break
self_size = package.installed.installed_size
base_dep_count = len(base_deps)
print('{:.1f} MB {}'.format(total_size/MB, package.name) + \
(' with {} deps'.format(base_dep_count) if base_dep_count else ''))
if base_dep_count:
print(' {:.1f} MB self'.format(self_size/MB))
for base_dep in base_deps:
size = cache[base_dep.name].installed.installed_size
print(' {:.1f} MB {}'.format(size/MB, base_dep.name))
if __name__ == '__main__':
main()
输出示例:
72.6 MB gthumb with 4 deps
3.0 MB self
61.0 MB libwebkit2gtk-3.0-25
8.0 MB gthumb-data
0.1 MB gstreamer0.10-gnomevfs
0.5 MB flex
apt-cache show packagename
除其他事项外,还列出了软件包的安装大小和软件包的依赖关系。还apt-cache rdepends package
列出了使用该软件包的软件包。您可能要从那里开始。