Linux有問必答:如何用Perl檢測Linux的發行版本

譯者: geekpi發表於2014-10-06

提問:我需要寫一個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中國 榮譽推出

相關文章