홈브루 패키지가 설치되어 있는지 감지
시스템에 여러 개의 홈브루 패키지가 설치되어 있는지 여부를 감지하기 위해 셸 스크립트를 작성하려고 합니다.이를 위해 brew 명령어를 사용할 수 있는 방법이 있습니까?
의 종료 코드를 사용해 보았습니다.brew install <formula> --dry-run
. 단, 패키지가 없는 경우 패키지가 작성됩니다.
사용할 수 있습니다.
brew ls --versions myformula
각 공식의 설치된 버전을 출력합니다.수식이 인스톨 되어 있지 않은 경우, 출력은 비어 있습니다.
최신 버전의 홈브루를 사용하는 경우brew update
(Slaven에게 감사)을 실행하면 됩니다.
if brew ls --versions myformula > /dev/null; then
# The package is installed
else
# The package is not installed
fi
단, 각 홈브루 패키지를 확인하는 것만이 아니라 툴의 존재를 확인하는 것이 좋습니다(예를 들어 실행 가능 파일을 검색하는 것).$PATH
많은 사람들이 실제로 도구를 설치하는 경향이 있는데, 홈브루는 그 중 하나일 뿐입니다.
# 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
뭘요?
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
가장 간단한 2행: 1단계, 설치 여부 확인
$ realpath . || brew install coreutils
그러면 현재 dir의 실제 경로가 인쇄됩니다. 인쇄되지 않으면 설치됩니다.그리고 그것은 심지어 진짜 경로를 찾지 못해도 실패하지 않을 것이다.
2단계, 실제 코드로 호출:
$ realpath ${someDir}
스크립트 및 자동화 사용법에 대해 다음 사항을 확인했습니다.brew bundle --help
매우 편리합니다.
실제 번들파일을 사용하지 않는 경우는, 다음의 스니펫이 스크립트로 정상적으로 동작합니다.
brew bundle -v --file=- <<-EOF
brew "mc"
brew "ffmpeg"
brew "wget"
cask "cpuinfo"
cask "intel-power-gadget"
cask "unetbootin"
cask "vlc"
EOF
좋은 점은 패키지가 설치되어 있지 않은지, 오래된지 여부를 자동으로 검출하고 그 후에야 설치됩니다.
업데이트를 원하지 않으면 플래그를 추가합니다.--no-upgrade
나는 그것을 넣었다.-v
자세한 내용을 원하지만 생략하거나 사용할 수도 있습니다.-q
더 조용한 질주를 위해서요.
언급URL : https://stackoverflow.com/questions/20802320/detect-if-homebrew-package-is-installed
'sourcecode' 카테고리의 다른 글
C#의 대소문자를 무시하고 두 문자열 비교 (0) | 2023.04.19 |
---|---|
모든 git 하위 모듈에 대한 최신 변경 내용 가져오기 (0) | 2023.04.19 |
python은 정렬된 목록을 가지고 있나요? (0) | 2023.04.19 |
Swift 3에서 상태 표시줄 스타일을 설정하는 방법 (0) | 2023.04.19 |
Bash에서 변수가 비어 있는지 확인하는 방법 (0) | 2023.04.19 |