Linux有问必答:如何用Perl检测Linux的发行版本-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

简介:

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

提问:我需要写一个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安装


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

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

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

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


  1. $ sudo yum -y install perl-CPAN

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


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

用Perl确定Linux发行版

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


  1. use Linux::Distribution qw(distribution_name distribution_version);
  2.  
  3. my $linux = Linux::Distribution->new;
  4.  
  5. if ($linux) {
  6. my $distro = $linux->distribution_name();
  7. my $version = $linux->distribution_version();
  8. print "Distro: $distro $version\n";
  9. }
  10. else {
  11. print "Distro: unknown\n";
  12. }

原文发布时间:2014-10-06

本文来自云栖合作伙伴“linux中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章