TOP 20 Space-Hungry Packages
Arch Linux 與 Debian 皆可以在安裝的時候選擇最小安裝,究竟哪一個 Distribution 在使用一段時間之後最佔空間呢? 剛安裝完的時候似乎是 Arch 比較小一點,但是因為 Debian 套件切的比較細,所以最後可能是 Debian 會比較小。
當初在試用 Arch 的時候寫了小程式來畫出前 20 個最佔空間的套件,並依此來瘦身,結果如下:
兩邊因為安裝的套件種類不同因此無從比較,Arch 的 TeXLive 因為沒有切所以會比 Debian 上較大一點,Debian 上的 ghc6 則是為了測試 xmonad 裝的, Haskell 本身做出來的執行檔就頗大,ghc6 需要 369MB 實在不意外...
底下是製作圖片的程式,實際上是用 Google Chart API 畫的:
#!/usr/bin/python # -*- coding: utf-8 -*- from pygooglechart import StackedHorizontalBarChart, Axis from subprocess import * TITLE="Debian Package Size TOP 20" PKGSIZE_PROG="./dpkgsize" OUTPUT="debian-top20pkg.png" chart = StackedHorizontalBarChart(930, 320) chart.set_bar_width(10) chart.set_title(TITLE) size_data = [] name_data = [] for ln in Popen([PKGSIZE_PROG], stdout=PIPE).stdout: size, name = ln.split() size_data.append(int(size)) name_data.append(name) chart.add_data(size_data[:20]) max_size = size_data[20] min_size = size_data[0] label = map(lambda x: str(x / 1024)+"MB", xrange(min_size, max_size, (max_size-min_size)/10)) label.reverse() rev_name_data = name_data[:20] rev_name_data.reverse() chart.set_axis_labels(Axis.LEFT, rev_name_data) chart.set_axis_labels(Axis.BOTTOM, label) print(chart.get_url()) chart.download(OUTPUT)
把 PKGSIZE_PROG 代換成自己 Distro 的就可以了:
Debian:
#!/bin/sh dpkg-query -W -f='${Installed-Size} ${Package}\n'|sort -nr
Arch:
#!/bin/sh pacman -Qi|awk '/^Installed Size/{print int($4), name} /^Name/{name=$3}'|sort -nr


Comments