자동 업데이트 Homebrew : possibile는 실행하기 위해 떠들썩한 파티의 스크립트를

나는 현재 브루 패키지 관리자를 사용하고 있는데 내 질문은 : possibile는 실행하기 위해 떠들썩한 파티의 스크립트를 작성하는 것입니다 brew update결국하고 brew upgrade처음으로 쉘을 열 때마다? 현재 iTerm을 사용하고 있습니다.



답변

이것은 매우 쉽습니다.

효율성 (그리고 멋진 요소)을 위해 Lingon 과 같은 도구를 사용하여 쉘을 시작할 때마다 launchctl / launchd를 사용 하여이 스크립트를 주기적으로 시작합니다. MacBook에서 두 번째 업데이트 (작업 없음, DNS 캐시 세트 등)를 업데이트하는 데 3 초가 걸리고 처음으로 작업을 수행하는 데는 10 초가 걸리고 (작업이 완료되지 않은 경우) 패키지가 필요한 경우 15 초 이상 걸립니다. 다운로드하거나 컴파일해야합니다.

아마도 하루에 한 번 또는 한 시간에 한 번-백그라운드에서 실행하는 것이 충분할 때가 충분합니까?

/usr/local/bin/brewupbrew를 차례로 호출하여 결과를 시스템 로그에 기록 하는 간단한 스크립트 를 만들 수 있습니다.

#!/bin/bash

brew=/usr/local/bin/brew
logger=/usr/bin/logger

$brew update 2>&1  | $logger -t brewup.update
$brew upgrade 2>&1 | $logger -t brewup.upgrade
$brew cleanup 2>&1 | $logger -t brewup.cleanup

차를 만들려고 할 때 또는 시작할 때 맥주를 부릅니다.

brewup &

답변

homebrew-autoupdate 라는 도구 가 있습니다. brew update패키지를 설치 / 업그레이드 할 때 항상 새로운 홈 브루 데이터를 갖도록 24 시간마다 (구성 가능) 백그라운드에서 자동으로 실행될 수 있습니다 .

그것을 실행 설치 brew tap domt4/autoupdate하고 brew autoupdate --start 43200는 매 12 시간마다 (4만3천2백초)를 자동으로 업데이트하도록 구성 할 수 있습니다.


답변

시작시 Homebrew를 업데이트하는 것을 선호합니다. 스크립트 Update Homebrew.sh가 있습니다 ~/Library/Scripts:

#!/usr/local/bin/bash

for cmd in update upgrade cleanup\ -s; do
  brew $cmd
done

이 스크립트는 시작시을 사용하여 실행됩니다 launchd. 이를 위해, 나는이 Update Homebrew.plist~/Library/LaunchAgents:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>Update Homebrew</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/Daan/Library/Scripts/Update Homebrew.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

예를 들어 MacBook을 사용하고 뚜껑을 열었다 닫으면 안정적으로 업데이트되지 않을 수 있습니다. 그러나, iMac에서는 정기적으로 종료하고 시동하는 것이 좋습니다. 작동하는지 알려주세요!