J'essaie de déterminer quelle version du serveur Linux est en cours d'exécution. Je n'essaie pas de déterminer la version du noyau - mais d'évaluer le distributeur.
gcc est installé, et dans la sortie de la version, il dit RedHat
# gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
Est-ce que cela signifie que je peux supposer en toute sécurité que mon serveur est un serveur RedHat. Existe-t-il une meilleure méthode 100% pare-balles pour le savoir? Aussi pour d'autres versions de Linux - pas seulement ce serveur?
Edit: contenu de /etc/
au cas où cela aiderait - mais je voudrais une solution qui fonctionne aussi pour d'autres versions de linux.
# ls /etc/
./ backupmxhosts domainusers host.conf localdomains mailips pam.d/ relayhosts shadow trustedmailhosts
../ bashrc* exim.conf inputrc localtime man.config passwd resolv.conf skipsmtpcheckhosts userdomains
DIR_COLORS cron.deny exim.pl ld.so.cache lynx.cfg mtab profile secondarymx spammeripblocks vimrc
aliases demodomains exim.pl.local* ld.so.conf mail/ my.cnf profile.d/ senderverifybypasshosts sudoers
antivirus.exim demouids group localaliases mailhelo nsswitch.conf protocols services termcap
Je n'ai aucun fichier *release
ou*version
/etc/
# ls /etc*release; ls /etc/*version
/bin/ls: /etc/*release: No such file or directory
/bin/ls: /etc/*version: No such file or directory
J'ai essayé LSB
# lsb_release -a
LSB Version:
Distributor ID: n/a
Description: (none)
Release: n/a
Codename: n/a
Aussi - je suppose que je suis à l'intérieur d'un chroot jail
(pas vraiment sûr de ce que c'est) qui pourrait probablement être la cause de ce problème.
Mis à jour:
Je pense que cela le fait pour moi. Je pense que je peux supposer en toute sécurité que j'utilise cent-os.
# cat /proc/version
Linux version 2.6.9-103.plus.c4smp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Wed Dec 21 16:17:23 EST 2011
Réponses:
Exemples:
Ubuntu:
Red Hat / CentOS:
Voir aussi Comment savoir quelle distribution Linux vous utilisez?
la source
Sur la plupart des distributions Linux modernes, la commande suivante vous donnera ses informations:
la source
yum install redhat-lsb-core
./etc/issue
pourrait être un bon point de départ.Pour en savoir plus, inspectez les fichiers d'informations pour les différentes distributions:
Voir le forum Unix pour plus de détails.
la source
release
ouversion
dans monetc
répertoireS'il
/etc/issue
est manquant, il peut y avoir un ou plusieurs/etc/*_release
fichiers.Par exemple, mon système Ubuntu a
/etc/lsb-release
:Le système CentOS d'un ami (basé sur Red Hat) a
/etc/redhat-release
:Je ne sais pas à quel point c'est universel.
la source
release
orversion
files in my/etc/
cat / etc / issue pourrait répondre à votre question.
Les fabricants de distribution ne sont pas amicaux avec vous ici. Premièrement, chacun pense que c'est la seule vraie voie.
Très probablement, au lieu d'essayer de flairer la distribution, vous devriez regarder plus en détail la question particulière à laquelle vous devez réellement répondre. Concentrez-vous sur la fonctionnalité que vous regardez, pas sur la distribution qui la fournit. Après tout, une nouvelle version d'une distribution peut se retourner et aller dans la direction opposée sur un axe particulier.
la source
/etc/issue
sur mon serveur/etc/issue
peut contenir des séquences d'échappement telles que\n
et\l
. Pour voir ce que cela signifie,man 5 issue
etman getty
(le/etc/issue
fichier est principalement destiné à être utilisé pargetty
). Bien sûr, le propriétaire du système pourrait modifier/etc/issue
pour une raison néfaste./etc/issue
soit nécessaire d'exister ou de contenir des informations sur le fournisseur de distribution. C'est généralement le cas, mais je ne pense pas que vous puissiez vous y fier.Utilisez
facter
(oui, c'est ainsi qu'il est orthographié).Facter est un compagnon de marionnette, il fournit des variables pouvant être interrogées qui contiennent des informations sur le système.
Par exemple, voici quelques-unes des dizaines de variables que le facteur peut renvoyer
Vous pouvez simplement interroger le fait osfamily pour voir que le serveur exécute RedHat
Consultez la documentation: http://puppetlabs.com/facter
la source
uname -a
Fonctionne toujours pour n'importe quel Tux
la source
Il n'y a pas un seul moyen sûr de le faire. J'ai posé une question similaire sur unix.se et la meilleure façon d'obtenir ces informations est un script qui vérifie une variété de sources:
L'autre choix est en effet d'utiliser
gcc --version
, cargcc
est toujours compilé pour une distribution particulière, ce sera relativement portable. Je vous recommande fortement de lire la réponse acceptée à ma question chez U&L, cela explique très bien la situation.la source
Cette commande a fonctionné pour les distributions basées sur Debian et Redhat: à l'aide du filtre tr, vous convertissez le document au format un mot par ligne, puis comptez la première ligne qui contient le nom de la distribution.
la source
C'est la meilleure méthode
la source
/etc
annuaire dans la question. Comme discuté sur d'autres réponses, cette solution ne fonctionne pas pour moi./etc/
répertoire et vous pouvez voir qu'aucun fichier ne s'y terminerelease