Debian システムのビルド日付を取得するにはどうすればいいですか?

Debian システムのビルド日付を取得するにはどうすればいいですか?

ここにあるのは、かなり古い Debian がインストールされた PowerPC デバイスです。

これは Lenny の派生として識別できます:/etc/issue言及Debian GNU/Linux 5.0。ベンダー固有のパッケージがいくつかあります。

システムのどの部分から抽出できるか建てる配布日ですか?インストール日には興味ありません。

答え1

Debian ポリシーでコンパイルされた各パッケージには、 に変更ログ ファイルが含まれています。パッケージがネイティブ Debian ソースからビルドされている場合、このファイルを呼び出すことができます。変更ログの最新のエントリは、パッケージが完成した時間、つまりパッケージ ソースへの最後の変更後、パッケージがビルドされる時間より前であるはずです。/usr/share/doc/PACKAGE-NAME/changelog.Debianchangelog.gz

コンパイル出力のタイムスタンプ(ネイティブ実行ファイル、ライブラリ、バイトコードなど) の日付は、ビルドされた時刻になります。システムのビルド日付が存在する限り、これがその日付になります。もちろん、これはパッケージごとに異なります。Debian システムは一度にビルドされるわけではありません。(理論的には可能ですが、非常に長い時間がかかります。)

.debにいくつかのファイルが存在する場合/var/cache/apt/archives、それらの変更時刻によってビルド時刻の上限が決まります。

ディレクトリの変更時刻と inode の変更時刻 ( ls -lc) は、関連するファイルの古さの下限を示します。ログは および で利用できる場合があります/var/log/dpkg.log*/var/log/apt(ディストリビューションが古すぎる場合は利用できない可能性があります。lenny にこれらがすでに存在していたかどうかは覚えていません。) ただし、これはすべてインストール時またはインストール後に行われます。

コメントで、法的調査について言及されています。これらのタイムスタンプはすべて簡単に偽造できるため、システム管理者が改ざんした疑いがない場合のみ役立ちます。

答え2

インストールされたソフトウェア (aptitude など) のビルド日を確認します。ソフトウェアにセキュリティ アップグレードがある場合はこの方法は機能しませんが、それ以外の場合は、コンパイル時間を報告するパッケージの最も古いコンパイル時間から、ある程度の見当がつくでしょう。私のシステムは Debian 7.6 (wheezy) です。私のマシンからの例をいくつか示します。

適性

faheem@orwell:~$ aptitude --version
aptitude 0.6.8.2 compiled at Nov  7 2012 07:08:03
Compiler: g++ 4.7.2
Compiled against:
  apt version 4.12.0
  NCurses version 5.9
  libsigc++ version: 2.2.10
  Ept support enabled.
  Gtk+ support disabled.
  Qt support disabled.

Current library versions:
  NCurses version: ncurses 5.9.20110404
  cwidget version: 0.5.16
  Apt version: 4.12.0

apt-get

faheem@orwell:~$ apt-get --version
apt 0.9.7.9 for amd64 compiled on Oct  8 2014 10:25:29
Supported modules:
*Ver: Standard .deb
*Pkg:  Debian dpkg interface (Priority 30)
 Pkg:  Debian APT solver interface (Priority -1000)
 S.L: 'deb' Standard Debian binary tree
 S.L: 'deb-src' Standard Debian source tree
 Idx: Debian Source Index
 Idx: Debian Package Index
 Idx: Debian Translation Index
 Idx: Debian dpkg status file
 Idx: EDSP scenario file

slrn

faheem@orwell:~$ slrn --version
slrn 1.0.1
S-Lang Library Version: 2.2.4
Compiled on: Feb 10 2014 20:58:07
Operating System: Linux

COMPILE TIME OPTIONS:
 Backends: +nntp +slrnpull +spool
 External programs / libs: +canlock +inews +ssl +uudeview +iconv
 Features: +decoding +emphasized_text +end_of_thread +fake_refs +gen_msgid
    -grouplens -msgid_cache +piping +rnlock +spoilers -strict_from
 Using 64 bit integers for article numbers.

DEFAULTS:
 Default server object:     nntp
 Default posting mechanism: nntp

ssh

faheem@orwell:~$ ssh -v
OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013

ヴィム

faheem@orwell:~$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:28:47)

オープンSSL

faheem@orwell:~$ openssl version
OpenSSL 1.0.1e 11 Feb 2013

ナノ

faheem@orwell:~$ nano --version
GNU nano version 2.2.6 (compiled 21:40:01, Jun 22 2012)

答え3

からhttps://lists.debian.org/debian-user/2013/05/msg01045.html

~# uname -a Linux wheezy 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

~# ls -l /boot/vm* -rw-r--r-- 1 ルート ルート 2833376 5月15日 23:58 /boot/vmlinuz-3.2.0-4-amd64 ~#

uname 出力には日付がなくなり、カーネル イメージ ファイルのタイムスタンプと比較できるようになりました。

ここで、uname によって報告された Debian パッケージのバージョン (上記の例では 3.2.41-2) と現在インストールされているバージョン (dpkg -l などを使用) を比較する必要があります。ただし、/proc/version ではビルド時間が引き続き報告されます。

私には説得力がありません。管理者として、インストールされたカーネル パッケージの構築に使用されたソースが何であるかは気にしません。

カーネルをビルドするために使用されるソース パッケージはカーネルを一意に識別するため、ソース パッケージのバージョンのみを気にすればよいのでしょうか?

===

私の意見では、CentOS/RHEL が uname のビルド日付を廃止したら最悪です...

関連情報