Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

183
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!