Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- import pyalpm, re
- handle = pyalpm.Handle('/', '/var/lib/pacman')
- db = handle.get_localdb()
- package_sizes = []
- for package in db.pkgcache:
- if len(package.compute_requiredby()) != 0:
- continue
- size = package.isize
- for dep_name in package.depends:
- dep_name = re.match(r'[\w\-]+', dep_name).group()
- dep_pkg = db.get_pkg(dep_name)
- if dep_pkg is None or dep_pkg.reason != pyalpm.PKG_REASON_DEPEND:
- continue
- if len(dep_pkg.compute_requiredby()) == 1:
- size += dep_pkg.isize
- package_sizes.append((size, package.name))
- package_sizes.sort(reverse=True)
- for size, pkg_name in package_sizes:
- print('%s %.2f MiB' % (pkg_name, size / 1024**2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement