Voglio creare un makefile che compilerà i miei oggetti e li nominerà in base alla distribuzione Linux (ad esempio Suse, RedHat o Ubuntu). Come posso rilevare se il sistema operativo è Ubuntu o no?
Voglio creare un makefile che compilerà i miei oggetti e li nominerà in base alla distribuzione Linux (ad esempio Suse, RedHat o Ubuntu). Come posso rilevare se il sistema operativo è Ubuntu o no?
Risposte:
Usiamo cat /etc/lsb-release
per identificare la versione di 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"
Per altre versioni potrebbe essere
ls /etc/*release
Gentoo, RedHat, Arch e SuSE hanno tutti un file di rilascio: http://linuxmafia.com/faq/Admin/release-files.html Questo è uno script completo nel link;)
Codice di esempio per sistema operativo, architettura e versione per sistemi di tipo Ubuntu:
OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)