paccacheによるディスク使用量節約の効果

2021-04-11に書いたpaccacheによるパッケージキャッシュの整理における、
残すパッケージの世代数とディスク使用容量の削減量との関係を示しておく。

bash上で、削除するパッケージ総数とそれらがHDDに占める総容量とを、残す世代数ごとに求め、
awkgnuplot用に整形し、gnuplotでグラフにしてPNG形式で出力した。

(i=0;until f=`paccache -d -k$i --nocolor|cut -d" " -f5,10,11`;[ "$f" = "found" ];do echo $((i++)) $f;done;echo $i 0 0 B)|awk '{$3/=$4=="MiB)"?1024:1;$4="";print;a=a$0"\n"}END{print "e\n"a}'|gnuplot -e "set term pngcairo;set output'foo.png';set xlabel'versions to keep';set ylabel t1='deletion candidates';set y2label(t2='disk space saved').'/GiB';set y2tics;set grid;plot'-'using 1:2title t1,''using 1:3axis x1y2 title t2;set terminal wxt 0;set output"

途中のawkによる整形で同じものを2回出力しているのは、gnuplot

plot '-' ..., '' ...

のように2回同じデータを渡すためである。
複製したデータの前に一つ目のデータの終了を示す
eの行を出力している。
もし、
awkの出力をファイルに保存し、
そのファイルを
gnuplotで指定するのなら複製は不要である。

キャッシュされたパッケージが多く、多くの世代が含まれている場合、
paccacheの複数回の実行にそれなりに時間がかかるかもしれないので、
キャッシュされていない世代まで遡らず途中で打ち切るようにしてもよいかもしれない。
また、一気にパイプで繋がずに適宜区切っていった方が間違い対策やパラメタの試行錯誤がしやすいかもしれない。

作成した結果の画像foo.pngを以下に示す。

実際に行った削減では、既に述べたように10世代前のパッケージまで残して、約6 GiBのディスク容量を節約している。