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