Я работаю над Perl-скриптом, который должен написать файл конфигурации. Мне нужно знать, работает ли скрипт в Ubuntu для установки некоторых специфичных для Ubuntu значений (в основном, отключить единую панель). Сценарий не может требовать никаких пакетов Perl, которые могут отсутствовать в пользовательской системе.
Как я могу проверить, является ли система Ubuntu или другим дистрибутивом Linux?
Вы можете проверить содержимое файла /etc/lsb-release
.
Альтернативный ответ: https://metacpan.org/pod/Linux:: Распространение
use Linux::Distribution qw(distribution_name);
print "Do your stuff here\n" if( distribution_name eq 'ubuntu' );
Вы можете проверить вывод lsb_release
, не анализируя файл вручную или не загружая внешний модуль:
#!/usr/bin/perl
# ...
my $id = `lsb_release -si`;
chomp($id);
if($id eq "Ubuntu") {
# set Ubuntu-specific values
}
# ...