❏ 站外平台:

Linux有问必答:如何用Perl检测Linux的发行版本

译者: LCTT geekpi

| 2014-10-06 22:15   评论: 3 收藏: 2 分享: 4    

提问:我需要写一个Perl程序,它会包含Linux发行版相关的代码。为此,Perl程序需要能够自动检测运行中的Linux的发行版(如Ubuntu、CentOS、Debian、Fedora等等),以及它是什么版本号。如何用Perl检测Linux的发行版本?

如果要用Perl脚本检测Linux的发行版,你可以使用一个名为Linux::Distribution的Perl模块。该模块通过检查/etc/lsb-release以及其他在/etc下的发行版特定的目录来猜测底层Linux操作系统。它支持检测所有主要的Linux发行版,包括Fedora、CentOS、Arch Linux、Debian、Ubuntu、SUSE、Red Hat、Gentoo、Slackware、Knoppix和Mandrake。

要在Perl中使用这个模块,你首先需要安装它。

在Debian或者Ubuntu上安装 Linux::Distribution

基于Debian的系统直接用apt-get安装

$ sudo apt-get install liblinux-distribution-packages-perl 

在Fedora、CentOS 或者RHEL上安装 Linux::Distribution

如果你的Linux没有Linux::Distribution模块的安装包(如基于红帽的系统),你可以使用CPAN来构建。

首先确保你的Linux系统安装了CPAN

$ sudo yum -y install perl-CPAN 

然后,使用这条命令来构建并安装模块:

$ sudo perl -MCPAN -e 'install Linux::Distribution' 

用Perl确定Linux发行版

Linux::Distribution模块安装完成之后,你可以使用下面的代码片段来确定你运行的Linux发行版本。

use Linux::Distribution qw(distribution_name distribution_version);

my $linux = Linux::Distribution->new;

if ($linux) {
  my $distro = $linux->distribution_name();
  my $version = $linux->distribution_version();
  print "Distro: $distro $version\n";
}
else {
  print "Distro: unknown\n";
}

via: http://ask.xmodulo.com/detect-linux-distribution-in-perl.html

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出



最新评论

微博评论 2014-10-07 07:33 3 回复
一个模块就搞定了 还是骆驼猛 不知道python有没有这种模块
微博评论 2014-10-06 22:33 2 回复
这只能说使用了一个PerI模块,说不上写了一个程序。
微博评论 2014-10-06 22:33 3 回复
@我的印象笔记
LCTT 译者
geekpi 💎💎💎💎
共计翻译: 2095.5 篇 | 共计贡献: 3750
贡献时间:2013-10-25 -> 2024-01-31
访问我的 LCTT 主页 | 在 GitHub 上关注我


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。