アプリ版:「スタンプのみでお礼する」機能のリリースについて

レッドハット8を再インストールして気づいたのですがタイムスタンプが未来のファイルがあるのです。
/etc/mail中の
sendmail.cf
virtusertable.db
domaintable.db
mailertable.db
のタイムスタンプが9時間先になっています。
インストール直後まだ何もしてないのにいきなり未来のファイルがあるのです!?
この他にもあるかも知れませんがとりあえず発見したのがこの4ファイルです。
何で気が付いたかといいますと
sendmailを起動しようとしたら次のエラーメッセージが表示されたからです。

sendmailを起動中: make: *** 警告: ファイル `sendmail.cf' の修正時刻が未来の時刻です (2006-07-06 09:10:49 > 2006-07-06 00:39:24)
make: 警告: クロックの歪みを検出。不完全なビルド結果になるかも知れません。

このあとsendmailは起動するのですが、何で未来のファイルがあるのか疑問です。
以前もsendmailを使用していましたが、こんなことは初めてです。
いったいこれは何なんでしょうか。
インストールのしかたがいけないのでしょうか。
ちゃんと、アジア/東京を選択したのですけどねぇ~。
BIOSの時計もさすがに9時間は進んでいませんでしたし・・・。
9時間先というのは、ちょうどグリニッジの時刻なのでしょうかねぇ~。
確かタイムスタンプを変更するコマンドがあったような気もしますが、
前はそんなことしなくても普通に起動できてたんです。
なぜだか原因わかる方いませんか。

A 回答 (1件)

インストーラのバグというか、仕様のようです。


あと、9時間以上たてばエラーは出なくなります。

インストール時には、BIOS時刻から読んだ時刻を元に、UTCにセットしています。sendmailのパッケージをインストールすると、newaliasesコマンドが発行されますので、その時点のタイムスタンプでファイルが作成されます。

最終的には同じ時刻を元にJSTにセットする(タイムゾーンの設定でBIOS時刻がUTCとしてセットしていない場合:ローカル時間に設定している場合)ようになりますから、時刻的には9時間前にずれます。したがって、未来のタイムスタンプになるわけです。

わかりにくいと思いますから、具体的な時刻で考えてみます。処理の間で時刻が進まないものとして考えます。
(1) 10:00にインストーラ上でnewaliasesを実行
  →タイムスタンプ=10:00UTC
(2) タイムゾーンを変更(ローカル時間に設定)
  →システム時計=10:00JST (UTCでは01:00)
(3) 再起動してnewaliases実行
  →実行時間10:00JST (ファイルのタイムスタンプは19:00JST)

という形になります。

実際にインストールが行われている状態(パッケージ名とプログレスバーが出てる画面)で、コンソールに戻って(ctrl+alt+F2)dateコマンドを打ってみてください。
    • good
    • 0
この回答へのお礼

mazingaさんご返信ありがとうございます。
仕様ということは今後も修正されないのでしょうね。
以前sendmailを使用していたときはインストール後9時間以上経過してから起動したからエラーが発生しなかったのですね。
レッドハット8のインストーラーは最小構成を選択してもsendmailが入ってしまうので、
レッドハットインストール後9時間以内にsendmailを起動しないとこの仕様は発見できないってことですね!
タイムスタンプを変更するコマンドとはtouchのことでした(ファイルを作成するコマンドだと思っていた)。
sendmailの起動前にtouchを行うように変更したら、エラーは発生しなくなりました。
仕様というのであれば、この方法で回避するのがスマートですよね。
ところでレッドハットのインストーラーは別名アナコンダというそうですが、
なんであんな気持ち悪いヘビの名前にしたのだろう???

お礼日時:2006/07/07 23:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!