Xorg RandR memo

EeePC S101をプレゼンテーションに使いたいが、LCDは1024x600だし、外部プロジェクタは、普通1024x768とかだし、どうしたらいいんだろ?と思っていたのだが、これをうまく使うのかもしれない。ま、まだよく分かってないので、見当違いかもしれないが。

いちおう、忘れないように、メモメモ。参考

実はxorg.confのmodesを書いても無視されて、不思議だな〜、どこで決まってるんだろ?って思ってた。

ports memo #2

id:footnote:20080316:1205661954
こんなのシリーズ化するつもりはないのだが、新しくFreeBSDの環境整備をしていると、どうしても気になってくる。

前の結論は、誰ににも依存されていないpackageだけを探せれば、それが自分が欲しいソフトウェアなのだ!ということだった。

で、どうしたらいいか?pkg_info -Rでそのpackageに依存しているpackageを知ることができる。つまり

% pkg_info -R linux-glib2-2.6.6_1
Information for linux-glib2-2.6.6_1:

Required by:
linux-atk-1.9.1
linux-pango-1.10.2
linux-gtk2-2.6.10
nspluginwrapper-1.0.0
linux-flashplugin-7.0r73_1
linux-nvu-1.0
linux-scim-libs-1.4.4
ja-acroread8-8.1.2_2


とすると、linux-glib2-2.6.6_1が必要とされているpackageが出てくる。僕は、決してlinux-glib2-2.6.6_1を愛しているわけではないが、ja-acroread8-8.1.2_2を使いたいためにインストールされているということになる。そのja-acroread8-8.1.2_2は、

% pkg_info -R ja-acroread8-8.1.2_2
Information for ja-acroread8-8.1.2_2:

はたして、誰にも依存されていないが、僕自身がそれを必要としているわけだ。このja-acroread8-8.1.2_2みたいなのだけを探そうと思うわけである。もちろん、依存関係の途中にあるpackageを使うこともあるだろうが、それは依存関係でインストールされるのだから、気にしなくてもよいということになる。ま、依存関係が変更されると困るのだが。

さて、そうすると、pkg_info -Rをして3行で帰ってくるpackageだけをリストアップすればいいのね、ということで、

#!/usr/bin/perl
#
#

open(PF, "pkg_info | cut -d' ' -f1 |")
    or die "Can't open pkg_info pipe.";

while (<PF>) {
    chop;
    $pkg_name = $_;
    open(FH, "pkg_info -R $pkg_name | wc -l |")
        or die "Can't open pkg_info -R pipe.";

    while (<FH>) {
        chop;
        $num = $_;
        if ($num == 3) {
            print("$pkg_name\n");
        }
    }
}

となる。pkg_top.plとでも名づけよう。あなたのシステムのpackageのうち、誰にも依存されていないpackageのみをリストアップしてくれる、はずだ。

お〜これで、いいじゃん〜、と一瞬思ったのだが、意外となんで?ってものがある。たとえば、patch-2.5.4とか、GNU patchなのだが、僕はFreeBSD標準のpatchしか使ったことないですけど、、とか。つまり、portsからインストールするためだけに必要なpackageって意外とあるものなのだ。run dependとinstall dependは違うということですね。

考えようによっては、このリストで必要と思わないものは、アンインストールしてもいいかもしれない。ただ、そういうのは、いろんなところで使われているので、なにかportsからインストールする場合に、また入れるということを繰り返すことになるのは、ほぼ間違いない。

ちなみに、僕のShuttleでは、

% pkg_info | wc
     720    4851   42649
% ./pkg_top.pl | wc
      90      90    1580

720個のpackageが、90個になった。気にすべきpackageを絞り込めてるので、よしとしよう。