hack のためのネタ帳, etc,,,

×

状況

の通りなのだが、
do-release-upgrade しようとしたら、
ストレージの空き容量不足で無理って言われてしまったのだが、
/var/lib/apt/lists
以下に、*Contents*.lz4 とかいう名前で
  • FileSystem 上のパス名
  • コンポーネント名/カテゴリ名/パッケージ名
の対応を記録したファイルが容量馬鹿食いしてた。

やりたい事

とりあえず、main, restricted, universe, multiverse の 4 つある component で落とせるものがないかを調べたいので、
install 済みの package がどの component に所属しているのかを調べたい。

解法

ubuntu package strict universe multiverse」でググったところ、以下のページを見つけた。

これを参考に、以下のような処理で、一覧を作成。
dpkg -l | grep -E ^ii | awk '$0=$2' | sort > installed.txt

for i in {main,restricted,universe,multiverse}; do
  echo $i
  find /var/lib/apt/lists -maxdepth 1 -type f -not -iname lock -and -iname '*'$(lsb_release -cs)'*'$i'*Packages' \
  | xargs awk '/^Package:/ {print $2}' \
  | sort \
  | uniq > "$i.txt"
done

for i in {main,restricted,universe,multiverse}; do
  join installed.txt $i.txt > $i.installed.txt
done
結果
$ wc *
    413     413    6106 installed.txt
    215     215    2656 main.installed.txt
  23327   23327  667901 main.txt
      0       0       0 multiverse.installed.txt
    906     906   14936 multiverse.txt
      0       0       0 restricted.installed.txt
  21767   21767 1002442 restricted.txt
     24      24     256 universe.installed.txt
  54195   54195  992787 universe.txt
 100847  100847 2687084 total
restricted と multiverse の package は使ってないことが分かった。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます

広告募集中