Есть ли способ (из скрипта) идентифицировать системный менеджер пакетов по умолчанию?
Чтобы уточнить, что я хочу сделать, это запустить данную команду, и в Debian или любом из его производных он вернет что-то вроде «apt», в openSUSE он вернет «zypp», в Fedora и др. Он вернет "yum", в Arch Linux он вернет "pacman" и т. д.
Я знаю, что могу сделать это с помощью чего-то вроде следующего, я просто подумал, есть ли более надежный метод, который не сломается, как только появится исполняемый файл с тем же именем.
which apt >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "apt"
fi
# etc...
apt-get
.Вместо того, чтобы идентифицировать двоичные программы, вы должны начать с идентификации дистрибутивов,
Просто дайте вам несколько строк, которые работают в скриптах bash:
Этим частям нельзя доверять, но обычно люди этого не делают.
источник
Я решил пойти по этому пути после рассмотрения других. Это возникло у меня, когда я запускал много док-контейнеров и нуждался в curl / jq и не мог полагаться на то, что было доступно от работы к работе.
источник