[bash] sprawdzanie rodzaju dystrybucji

[bash] sprawdzanie rodzaju dystrybucji
  • Rejestracja: dni
  • Ostatnio: dni
0

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

mysz
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 79
0

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... :)

  • Rejestracja: dni
  • Ostatnio: dni
0

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.

dodekam
  • Rejestracja: dni
  • Ostatnio: dni
0

dodam tylko, ze na gentoo jest /etc/gentoo-release

  • Rejestracja: dni
  • Ostatnio: dni
0

Pliki znajdę w dokumentacji odpowiedniej dystrybucji, teraz potrzebuję tylko dowiedzieć się jak za pomocą grep wyciągnąć wzorzec z pliku porównać.

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
0

Raczej nie tyle grep, co cut byłby bardziej przydatny chyba.

Możesz to zrobić banalnie prosto (na przykładzie systemów redhat-like):

Kopiuj
[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 :-)

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1164
0

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.

dodekam
  • Rejestracja: dni
  • Ostatnio: dni
0

uname -a nie daje nazwy dystrybucji.

  • Rejestracja: dni
  • Ostatnio: dni
0

polecam
cat /etc/*release
bądź
ls /etc/*release

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.