Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
¿Cómo detecto el nombre del sistema operativo en Perl para una versión en particular?

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

 $^O

Sin 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 -r

puede obtener el número de versión (5.10 en Solaris, por ejemplo). ¿Alguna idea sobre cómo podría hacerse esto?

gracias =)

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

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.

over 4 years ago · Santiago Trujillo Denunciar

0

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.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda