The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Linux::Info::KernelRelease - parses and provide Linux kernel detailed information

VERSION

version 2.16

SYNOPSIS

Getting the current kernel information:

    my $sys = Linux::Info::SysInfo->new;
    my $current = Linux::Info::KernelRelease->new;

Or using Linux::Info::SysInfo syntax sugar to achieve the same result:

    my $sys = Linux::Info::SysInfo->new;
    my $current = $sys->get_detailed_kernel;

Or using a given Linux kernel release string:

    my $kernel = Linux::Info::KernelRelease->new('2.4.20-0-generic');

Now you can compare both:

    if ($current > $kernel) {
        say 'Kernel was upgraded!';
    }

DESCRIPTION

This module parses the Linux kernel information obtained from sources like the uname command and others.

This make it easier to fetch each information piece of information from the string and also to compare different kernel versions, since instances of this class overload operators like ">=", ">" and "<".

METHODS

new

Creates a new instance.

Optionally, it might receive the following arguments:

  1. A string as parameter like the kernel release information from /proc/sys/kernel/osrelease.

  2. A instance of Linux::Info::KernelSource.

The string, if defined, will always have preference to setup the version based on it and the instance passed will be ignored.

If you want to use Linux::Info::KernelSource, be sure to pass undef as the first argument.

If none arguments are passed, a new instance of Linux::Info::KernelSource will be created, and the default locations of files to parsed will be used.

This method will also invoke the _set_proc_ver_regex method, used to parse the string at /proc/version. Subclasses must override this method, since this class won't know how to do it.

get_raw

Returns the raw information stored, as read from /proc/sys/kernel/osrelease or passed to the new method.

get_major

Returns from the version, returns the integer corresponding to the major number.

get_minor

Returns from the version, returns the integer corresponding to the minor number.

get_patch

From the version, returns the integer corresponding to the patch number.

get_build_datetime

Returns a string representing when the kernel was built, or undef if not possible to parse it.

get_compiled_by

Returns a string, representing the user who compiled the kernel, or undef if not possible to parse it.

get_gcc_version

Returns a string, representing gcc compiler version used to compile the kernel, or undef if not possible to parse it.

get_type

Returns a string, representing the features which define the kernel type, or undef if not possible to parse it.

SEE ALSO

  • https://www.unixtutorial.org/use-proc-version-to-identify-your-linux-release/

AUTHOR

Alceu Rodrigues de Freitas Junior <glasswalk3r@yahoo.com.br>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Alceu Rodrigues de Freitas Junior.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007