11 votes

Comment puis-je identifier la version de MacOS à partir de la ligne de commande ?

Après avoir détecté un système GNU/Linux en exécutant uname , dans une distribution GNU/Linux lsb_release -a est un bon niveau d'entrée un utilitaire que vous pourriez utiliser pour [essayer de] trouver le nom de la distribution GNU/Linux et sa version particulière. 1 .

Après avoir détecté un système Darwin (éventuellement MacOS) en exécutant la commande uname il doit y avoir un Différents (peut-être pas tant que ça...) manière de Demandez à le numéro de version du système d'exploitation 1 . Même s'il ne fonctionne que sur MacOS, il serait utile.

Ceci est similaire à la /etc/release pour les autres Unix / Linux mais j'aimerais cibler spécifiquement MacOS pour script une vérification de la version. De quelle(s) manière(s) cela est-il possible ?

28voto

146438 Points 60

Je ne sais pas si tout cela est imposé par Darwin, la page de manuel semble indiquer que c'est peut-être un truc de Mac OS X (sic dans ma page de manuel en septembre 2019), mais il y a le génial sw_vers :

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

14voto

Michael Zhou Points 167

Voici d'autres options que vous pourriez utiliser.

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

Et comme alternative à 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

LSB signifie "Linux Standard Base".

MacOS n'est pas Linux, il ne fait donc pas partie du projet LSB et ne prend pas en charge les outils LSB.

2voto

yoliho Points 340

Utilisez la méthode standard - uname - définie dans POSIX fonctionne donc dans tous les systèmes Unix et sopme d'autres qui assurent la compatibilité.

Exemples tirés de mon Mac mini fonctionnant sous MacOS 10.14.6

uname -a donne tout ce qu'il peut

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

Compte tenu de la question que vous mettez en lien, la réponse complète est peut-être de modifier le script en https://stackoverflow.com/a/56968182/151019 Le code pour MacOS est le même que pour Solaris sauf qu'il faut changer les valeurs DIST et OS

uname -v imprime la version du système d'exploitation. (La définition POSIX réelle est Écrire le niveau de version actuel de cette version de l'implémentation du système d'exploitation). Pour MacOS, il affiche la version Darwin. La page de manuel Linux dit qu'elle affiche la version du noyau. (Solaris a la même définition que la page de manuel MacOS, je suppose donc qu'il s'agit de la version du noyau Solaris).

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

et uname -r donne juste le numéro (définition POSIX - Écrire le niveau de version actuel de l'implémentation du système d'exploitation).

18.7.0

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X