Обнаружить, если установлен пакет homebrew - программирование
Подтвердить что ты не робот

Обнаружить, если установлен пакет homebrew

Я собираюсь написать оболочку script, чтобы определить, установлено ли в системе несколько пакетов homebrew. Есть ли способ использовать команду brew для достижения этого?

Я попытался использовать код выхода brew install <formula> --dry-run. Но это создает пакет, если он отсутствует.

4b9b3361

Ответ 1

Вы можете использовать

brew ls --versions myformula

для вывода установленных версий соответствующей формулы. Если формула не установлена, выход будет пустым.

При использовании последних версий homebrew, которые вы можете получить с помощью brew update, вы можете просто запустить это (спасибо Slaven):

if brew ls --versions myformula > /dev/null; then
  # The package is installed
else
  # The package is not installed
fi

Тем не менее, вероятно, неплохо проверить наличие инструмента вообще, а не просто проверить соответствующий пакет homebrew (например, выполнив поиск исполняемого файла в $PATH). Люди склонны устанавливать инструменты на довольно большом количестве способов на практике, а доморощенный - всего лишь один из них.

Ответ 2

Как насчет?

for pkg in macvim ngrep other needed packages; do
    if brew list -1 | grep -q "^${pkg}\$"; then
        echo "Package '$pkg' is installed"
    else
        echo "Package '$pkg' is not installed"
    fi
done