Czy istnieje sposób (ze skryptu) zidentyfikowania domyślnego menedżera pakietów systemowych?
Aby wyjaśnić, chcę uruchomić dane polecenie, a na Debianie lub dowolnej jego pochodnej zwróci coś w rodzaju „apt”, na openSUSE zwróci „zypp”, na Fedorze i innych zwróci „mniam”, w Arch Linux zwróci „pacman” itp.
Wiem, że mogę to zrobić w następujący sposób, po prostu zastanawiałem się, czy istnieje bardziej niezawodna metoda, która nie ulegnie awarii, gdy tylko pojawi się plik wykonywalny o tej samej nazwie.
which apt >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "apt"
fi
# etc...
apt-get
.Zamiast identyfikować programy binarne, powinieneś zacząć od identyfikacji dystrybucji,
Wystarczy podać kilka wierszy, które działają w skryptach bash:
Przez te części nie można ufać, ale generalnie ludzie tego nie zrobią.
źródło
Zdecydowałem się pójść tą drogą po przejrzeniu pozostałych. To przyszło mi do głowy, gdy uruchomiłem wiele kontenerów dokerów i potrzebowałem curl / jq i nie mogłem polegać na tym, co było dostępne od zadania do zadania.
źródło