11 votos

¿Cómo puedo identificar la versión de macOS desde la línea de comandos?

Después de la detección de un sistema GNU/Linux a través de la ejecución uname, en una distribución de GNU/Linux lsb_release -a es un buen nivel de entrada de la utilidad que se puede utilizar para [intentar] averiguar la distribución de GNU/Linux nombre y en particular de la versión1.

Después de detectar un Darwin (posiblemente macOS) del sistema a través de la ejecución uname, no debe ser Diferente (tal vez no tanto...) de Pedir la versión del sistema operativo número1. Incluso si sólo funciona en mac os, sería útil.

Esto es similar a la /etc/versión para otros sistemas Unix / Linux, pero me gustaría apuntar específicamente a los macOS de comandos para una verificación de la versión. En qué forma(s) es esto posible?

28voto

uprego Puntos 103

No sé si todo esto es impuesto por Darwin, la página del manual parece que tal vez sea un Mac OS X (sic en mi página del manual a partir de septiembre de 2019), pero existe el increíble sw_vers :

 $ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   yadda yadda yadda
$ _
 

14voto

Michael Zhou Puntos 167

Aquí hay algunas otras opciones que podría usar.

 sysctl kern.version
kern.version: Darwin Kernel Version 16.7.0: Sun Jun  2 20:26:31 PDT 2019; root:xnu-3789.73.50~1/RELEASE_X86_64

sysctl kern.ostype
kern.ostype: Darwin

sysctl kern.osrelease
kern.osrelease: 16.7.0

sysctl kern.osrevision
kern.osrevision: 199506
 

Y como alternativa a sw_vers

 /usr/libexec/PlistBuddy -c "Print:ProductName" \
                        -c "Print:ProductVersion" \
                        -c "Print:ProductBuildVersion" /System/Library/CoreServices/SystemVersion.plist
Mac OS X
10.12.6
16G2128
 

4voto

duskwuff Puntos 227

LSB significa "Base estándar de Linux".

macOS no es Linux, por lo que no forma parte del proyecto LSB y no admite herramientas LSB.

2voto

yoliho Puntos 340

Utilizar el modo estándar - uname - definido en POSIX así que funciona en todos los sistemas Unix y sopme otros que proporcionan compatibilidad.

Ejemplos de mi Mac mini ejecución de macOS 10.14.6

uname -a le da todo lo que puede

Darwin mini12 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64

Dado que la pregunta que te enlace a la respuesta completa es posiblemente alterar la secuencia de comandos en https://stackoverflow.com/a/56968182/151019 El código para macOS es el mismo que para Solaris, excepto el cambio de la DIST y los valores del sistema operativo

uname -v imprime la versión del sistema operativo. (real POSIX definición es Escribir la versión actual nivel de esta versión del sistema operativo de la aplicación.) Para macOS imprime el Darwin de la versión. La página man de Linux dice que imprime el kernel de la versión. (Solaris tiene la misma definición que la de macOS hombre de la página así que supongo que es la versión del kernel de Solaris.)

Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64

y uname -r , sólo da el número (POSIX definición - Escribir el actual nivel de versión del sistema operativo de la aplicación.)

18.7.0

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X