Home

技術系のメモと日々の雑感

サイズの大きな rpm パッケージを見つけるには

ディスクの空きが少ないときなど、不要なパッケージを削除したいことがよくある。
ずっと前から気になってたんだけど、こういうときってサイズの大きなパッケージからチェックしたくなるよね。
でも、それぞれのパッケージのサイズをリストする方法って聞いたことがない。
ということで適当にスクリプトを書いてみた。

#!/usr/bin/perl
open(IN, "rpm -qa |") || die "Open Error";
@pkglist = <IN>;
close(IN);
chomp(@pkglist);

foreach $pkg (@pkglist) {
  open(IN2, "rpm -qi $pkg |") || die "Open Error";
  @info = <IN2>;
  close(IN2);
  $i = 0;
  while($info[$i]){
    if($info[$i] =~ /^Name/){
      @name = split(/ +/, $info[$i]);
    }elsif($info[$i] =~ /^Size/){
      @size = split(/ +/, $info[$i]);
      last;
    }
    $i++;
  }
  print "$name[2] $size[2]¥n";
}

結果が表示されるまでにかなり待たされるのはご愛嬌ということで・・・。
サイズが大きいものから表示するときは結果を sort -k 2 -nr にパイプすればいい。
もちろん、さらに時間がかかる。
これだけ遅いと実用的じゃないかな。

この記事に対するトラックバック

この記事のトラックバックURL

-

管理人の承認後に表示されます

  • From: |
  • 2013/04/30(火) 01:20:38

この記事に対するコメント

この記事にコメントする

管理者にだけ表示を許可する