gpt4 book ai didi

linux - 如何检测特定版本的 Perl 中的操作系统名称?

转载 作者:IT王子 更新时间:2023-10-29 00:55:26 27 4
gpt4 key购买 nike

我试图寻找一个关于如何做到这一点的答案,但我似乎找不到。我知道要在 perl 中查找操作系统名称,您可以使用

$^O 

但是在 Linux 和 Solaris 中,无论您使用的是什么操作系统版本,它都只会返回 SolarisLinux。我希望它显示为 Solaris10Solaris11。有没有办法得到这个?你进来我就知道

uname -r

您可以获得版本号(例如 Solaris 中的 5.10)。关于如何做到这一点有什么想法吗?

谢谢 =)

最佳答案

perl 中的 POSIX 模块提供了 uname 调用,所以:

use POSIX qw(uname);
my @uname = uname();
print $uname[0] . " " . $uname[2];

这提供了来自正在运行的系统的信息,而不是来自执行构建的系统(这是 Config 结果的来源)。

不过,一般来说,此信息是kernel 版本,而不是产品的营销版本,因此例如,这不会告诉您它是否是 Linux Mint 系统,只是它是运行 3.2.foo 内核的 Linux 系统。

对于基于 lsb 的 Linux 系统,lsb_release 命令可以提供此信息,例如在 linux 系统上我有:

natsu ~> lsb_release  -r
Release: 12.04
natsu ~> lsb_release -i
Distributor ID: Ubuntu

此信息位于 /etc/lsb-release 文件中。

对于 Solaris,发行信息在 /etc/release 中文件。第一行包含操作系统的名称,例如Solaris 10 9/10。此文件中有多行,更像是一个自由格式的文本字段。

关于linux - 如何检测特定版本的 Perl 中的操作系统名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com