Cześć
Potrzebuję skryptu który by sprawdzał na jakiej dystrybucji został uruchomiony. Kombinowałem z grep i plikiem /proc/version. Ale nie chce działać :(
Proszę o jakieś wskazówki bo już nie mam kompletnie pomysłów.
Dzięki
Cześć
Potrzebuję skryptu który by sprawdzał na jakiej dystrybucji został uruchomiony. Kombinowałem z grep i plikiem /proc/version. Ale nie chce działać :(
Proszę o jakieś wskazówki bo już nie mam kompletnie pomysłów.
Dzięki
Nie ma prostego sposobu. Na Debianie masz /etc/debian_version, ale ostroznie, bo jest on tez w Ubuntu i innych debianowatych. Czasem jakaś konkretna informacja jest w /etc/issue, ale to też zgadywanie. Jedyny senwosny pomysł to zapytać usera... :)
Właśnie chodzi o coś takiego żeby na debianie i Od razu na ubuntu działało. Z zapytaniem usera to nie za bardzo bo skrypt musi być wykonywany w tle, ma za zadanie dodanie innego skryptu z firewallem do autostartu i dlatego musi wiedzieć na jakiej dystrybucji jest uruchomiony.
dodam tylko, ze na gentoo jest /etc/gentoo-release
Pliki znajdę w dokumentacji odpowiedniej dystrybucji, teraz potrzebuję tylko dowiedzieć się jak za pomocą grep wyciągnąć wzorzec z pliku porównać.
Raczej nie tyle grep, co cut byłby bardziej przydatny chyba.
Możesz to zrobić banalnie prosto (na przykładzie systemów redhat-like):
[ktos@leia ~]$ zmienna=`cat /etc/redhat-release | cut -d " " -f 1`
[ktos@leia ~]$ if [ $zmienna == "CentOS" ]; then echo "Hura, CentOS"; else echo "PLD, RHEL, Fedora albo inny potomek RedHata"; fi
Hura, CentOS
[ktos@leia ~]$
Choć IMO najbardziej istotny jest rodzaj dystrybucji, bo mimo wszystko Linux jest bardzo do siebie podobny wewnątrz pewnej rodziny. Wystarczy sprawdzać istnienie plików debian_release, redhat-release, gentoo-release na przykład i na ich podstawie wybierać co to może być.
Gorzej jak trafisz na jakiś egzotyczny system :-)
a polecenie uname -a ci nie starczy? zdaje sie że rózne dystrybucje sie tam przedstawiają. Ewentualnie mozna jeszcze sprawdzac nazwe kompilacje jądra i tam wyciagac nazwe systemu.
uname -a nie daje nazwy dystrybucji.
polecam
cat /etc/*release
bądź
ls /etc/*release