我这里有一个 powerpc 设备,上面安装了相当古老的 Debian。
它可以被识别为 Lenny 导数:/etc/issue
提及Debian GNU/Linux 5.0
。有一些特定于供应商的软件包。
我可以使用系统的哪些角落来提取建造分发日期?我对安装日期不感兴趣。
答案1
每个使用 Debian 策略编译的软件包都包含一个.如果软件包是从本机 Debian 源构建的,则可以调用该文件。更改日志中的最新条目应该是包最终确定的时间,即在对包源进行最后一次更改之后、构建包之前。/usr/share/doc/PACKAGE-NAME/changelog.Debian
changelog.gz
这编译输出的时间戳(本机可执行文件、库、字节码等)将是它们的构建时间。只要系统的构建日期存在,就是这样。当然,每个软件包都是不同的——Debian 系统不是一次性构建的。 (嗯,理论上是可以的,但是需要很长时间。)
如果某些.deb
文件存在于 中/var/cache/apt/archives
,则它们的修改时间将给出其构建时间的上限。
目录的修改时间和 inode 更改时间 ( ls -lc
) 给出了所涉及文件的寿命的下限。日志可能在/var/log/dpkg.log*
和中可用/var/log/apt
。 (如果发行版太古老的话,也许不会,我不记得这些是否已经存在于 lenny 中。)但这都是安装时或安装后的。
您在评论中提到了法律调查。所有这些时间戳都很容易伪造,因此只有在系统管理员不被怀疑篡改它们的情况下它们才有用。
答案2
检查已安装软件的构建日期,例如 aptitude。如果软件进行了安全升级,则这将不起作用,但否则,一堆确实报告其编译时间的软件包的早期编译时间会给您一些想法。我的系统是 Debian 7.6(喘息)。以下是我的机器上的一些示例。
资质
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
斯尔恩
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 root root 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 中的构建日期,那会很糟糕......