He intentado buscar una respuesta sobre cómo se puede hacer esto, pero parece que no puedo encontrar una. Soy consciente de que para encontrar el nombre del sistema operativo en perl puede usar
$^OSin embargo, en Linux y Solaris, no importa en qué versión del sistema operativo se encuentre, solo devolverá Solaris o Linux . Me gustaría que apareciera como Solaris10 o Solaris11 . ¿Hay alguna manera de conseguir esto? yo se si entras
uname -rpuede obtener el número de versión (5.10 en Solaris, por ejemplo). ¿Alguna idea sobre cómo podría hacerse esto?
gracias =)
El módulo POSIX en perl proporciona la llamada uname, por lo que:
use POSIX qw(uname); my @uname = uname(); print $uname[0] . " " . $uname[2]; Esto proporciona la información del sistema en ejecución, no del sistema que realizó la compilación (que es de donde provienen los resultados de la Config ).
Sin embargo, en general, esta información es la versión del kernel y no la versión de marketing del producto, por lo que, por ejemplo, esto no le dirá si es un sistema Linux Mint, solo que es un sistema Linux que ejecuta el kernel 3.2.foo. .
Para los sistemas Linux basados en lsb, el comando lsb_release puede brindar esta información, por ejemplo, en un sistema Linux que tengo:
natsu ~> lsb_release -r Release: 12.04 natsu ~> lsb_release -i Distributor ID: Ubuntu Esta información se encuentra en el /etc/lsb-release .
Para Solaris, la información de la versión se encuentra en el /etc/release . La primera línea contiene el nombre del sistema operativo, por ejemplo, Solaris 10 9/10 . Hay varias líneas en este archivo y es más un campo de texto de forma libre.
use Config; print "$_\n" for @Config{qw(myuname osname osvers)};Desde la configuración de perldoc ,
El módulo Config contiene toda la información que estaba disponible para el programa Configure en el momento de compilación de Perl.
mi nombre
La salida de uname -a si está disponible, de lo contrario, el nombre de host. Todo se pone en minúsculas y se eliminan las barras y las comillas simples.
osname
Esta variable contiene el nombre del sistema operativo (por ejemplo, sunos, solaris, hpux, etc.). Puede ser útil más adelante para establecer valores predeterminados. Los espacios se reemplazan con guiones bajos. Se establece en una cadena nula si no podemos resolverlo.
osvers
Esta variable contiene la versión del sistema operativo (por ejemplo, 4.1.3, 5.2, etc.). Se utiliza principalmente para ayudar a seleccionar un archivo de sugerencias apropiado, pero puede ser útil en otros lugares para establecer valores predeterminados. Se establece en '' si no podemos resolverlo. Tratamos de ser flexibles con respecto a la cantidad de versión que se debe mantener, por ejemplo, si 4.1.1, 4.1.2 y 4.1.3 son esencialmente iguales para este paquete, los archivos de sugerencias podrían ser simplemente os_4.0 o os_4.1, etc., no manteniendo archivos separados para cada pequeño lanzamiento.