Je veux créer un makefile qui compilera mes objets et les nommera selon la distribution Linux (par exemple Suse, RedHat ou Ubuntu). Comment puis-je détecter si le système d'exploitation est Ubuntu ou non?
Je veux créer un makefile qui compilera mes objets et les nommera selon la distribution Linux (par exemple Suse, RedHat ou Ubuntu). Comment puis-je détecter si le système d'exploitation est Ubuntu ou non?
Réponses:
Nous utilisons cat /etc/lsb-release
pour identifier la version d'Ubuntu:
sh-3.2$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"
Pour d'autres versions, il pourrait être
ls /etc/*release
Gentoo, RedHat, Arch & SuSE ont tous un fichier de version: http://linuxmafia.com/faq/Admin/release-files.html Ceci est un script complet dans le lien;)
Exemple de code pour le système d'exploitation, l'architecture et la version pour les systèmes de type Ubuntu:
OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)