시스템에 여러 홈브류 패키지가 설치되어 있는지 감지하는 쉘 스크립트를 작성하려고합니다. 이를 달성하기 위해 brew 명령을 사용하는 방법이 있습니까?
의 종료 코드를 사용해 보았습니다 brew install <formula> --dry-run
. 그러나 이것이없는 경우 패키지를 빌드합니다.
답변
당신이 사용할 수있는
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
즉, 각 홈브류 패키지를 확인하는 것뿐만 아니라 도구의 존재를 확인하는 것이 좋습니다 (예 :에서 실행 파일 검색 $PATH
). 사람들은 실제로 많은 방법으로 도구를 설치하는 경향이 있으며 homebrew는 그중 하나 일뿐입니다.
답변
이건 어떤가요?
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
답변
# install if we haven't installed any version
brew ls --versions $lib || brew install $lib
# install if we haven't installed latest version
brew outdated $lib || brew install $lib
답변
가장 쉬운 2 줄 : 1 단계, 설치되었는지 확인
$ realpath . || brew install coreutils
이것은 현재 디렉토리의 실제 경로를 인쇄하고 그렇지 않은 경우이를 설치합니다. 그리고 실제 경로를 찾을 수 없어도 실패하지 않습니다.
2 단계, 실제 코드에서 호출합니다.
$ realpath ${someDir}
답변
