[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:18120] Re: utmp warning
たはら@会津大です.
>>> Sun, 3 Oct 1999 20:11:33 +0900 の刻に 「suisa」、すなわち
>>> suisa@xxxxxxxxxxxxxxxxxx("T.N.") 氏曰く
suisa> 沼尻と言います。
suisa> At Fri, 1 Oct 1999 10:33:38 +0900,
suisa> Yuusuke Tahara <m5021212@xxxxxxxxxxxx> wrote:
>
> たはら@会津大です.
>
> script などを使って,dpkg-buildpackage でパッケージを作ろうとしたとき
> に,
>
> no utmp entry available, using value of LOGNAME ("tahara") at /usr/lib/dpkg/controllib.pl line 40.
>
> という warning がたくさん出ます.調べてみたら (最初のシェルは tcsh です)
suisa> (省略)
> という具合いに,script 起動時に perl の getlogin() (= getlogin(3)?) が
> 空を返すことがわかりました.無視してもいいのですが,気持悪いので直した
> いです.どうしたらよいでしょうか?
suisa> 消極的な解決法ですが、X 上ではなく Ctrl+Alt+F1 などでコンソールに降りてから
suisa> dpkg-buildpackage を実行すると、LOGNAME がセットされエラーが表示されなくなります。
これは,たぶん「getlogin() で utmp のエントリーが得られないから,代り
に LOGNAME を使うよ」と言っているのではないかと思うのですが..つまり,
LOGNAME はセットされているけど getlogin() が効いてないんだと思います.
suisa> 確か、Online manual だか JF の文章だかで「X 上からログインすると LOGNAME がセットされない」
suisa> という記述があったような気がするので、多分それが関係していると思います。
suisa> ただ、パッケージを作るのにわざわざコンソールに降りるのも煩わしいので、X 上でこの問題を
suisa> 解決する方法があったら、私も知りたいです。
私の環境だと,コンソールからログインしても変りませんでした.
したがって,沼尻さんの状況とは異なるのかも知れません.
# なんとなく原因は fakeroot 関係のような気がしてます.
とりあえず,getlogin() について Perl 本には
「/etc/utmp から,(もし見つかれば)現在のログイン名を返す.
偽が返されたら,getpwuid を試してみれば良い.」
とありましたので,/usr/lib/dpkg/controllib.pl の最初の方で
$getlogin = getlogin();
とあるのを,Perl 本の通りに
$getlogin = getlogin() || (getpwuid($<))[0];
に変更したら,警告は出なくなりました.
suisa> ちなみに
> script などを使って,dpkg-buildpackage でパッケージを作ろうとしたとき
suisa> Linux Japan 5月号によると、パッケージを作るときには debuild というコマンドが推奨されて
suisa> いるみたいですね。(potato の devscriptsパッケージに入っています。)
うぅ知らなかった...
教えてくださってありがとうございます.(^^;
--- Tahara Yuusuke <m5021212@xxxxxxxxxxxx>
-> The University of Aizu / Department of Computer Systems
-> http://www.u-aizu.ac.jp/%7Em5021212/
-> ICQ: 38459330(@work), 35702748(@lab), 14439176(@home)