В настоящее время я использую менеджер пакетов Homebrew, и мой вопрос: возможно ли написать сценарий bash для выполнения brew update
и, в конечном итоге, brew upgrade
при первом открытии оболочки? Я использую iTerm в данный момент.
13
~/.bash_profile
файле. Вам нужно будет проверить, открыт ли только 1 сеанс терминала, а затем запуститьbrew update
. Проверьте stackoverflow.com/questions/6172663/… для определения количества окон терминала.~/.bash_profile
автоматически выполняется в начале сеанса терминала. Эта проверка необходима, если вам нужно запуститьbrew update
при первом запуске. Если Вы хотите запустить это каждый раз , когда открывается новое окно, пропустите этот шаг и запуститьbrew update
в~/.bash_profile
.Ответы:
Это очень легко сделать.
Для эффективности (и крутого фактора) я бы использовал такой инструмент, как Lingon, чтобы периодически запускать этот скрипт, используя launchctl / launchd, вместо того, чтобы каждый раз запускать оболочку. На моем MacBook требуется 3 секунды для обновления во второй раз (без работы, DNS-кэша и т. Д.) И для запуска в первый раз (без работы) требуется 10 секунд или более 15 секунд, если требуется пакет быть загруженным или скомпилированным.
Возможно, один раз в день или один раз в час - выполнение в фоновом режиме будет достаточно для выполнения этих времен?
Вы можете сделать простой скрипт,
/usr/local/bin/brewup
который вызывает brew по очереди и записывает результаты в системный журналЯ просто звоню в кафе, когда собираюсь приготовить чай или когда я начинаю, и позволяю ему работать в фоновом режиме.
источник
launchd
вcron
том, что он более устойчивый, более энергосберегающий и более естественно обрабатывает интервалы сна / пропущенного времени.t
флага. Я использую его, чтобы найти эти сообщения в море журналов с помощью простого словаgrep
илиlog
команды и предиката / поискового запроса.Существует инструмент под названием homebrew-autoupdate, который сделает это за вас. Он может автоматически запускаться
brew update
в фоновом режиме каждые 24 часа (настраивается), чтобы всегда иметь свежие доморощенные данные при переходе к установке / обновлению пакетов.Для его установки запустите
brew tap domt4/autoupdate
иbrew autoupdate --start 43200
настройте автообновление каждые 12 часов (43200 секунд).источник
Я предпочитаю обновлять Homebrew при запуске. У меня есть скрипт
Update Homebrew.sh
в~/Library/Scripts
:Этот скрипт запускается при запуске с помощью
launchd
. Для этого я имеюUpdate Homebrew.plist
в~/Library/LaunchAgents
:Обратите внимание, что он может не обновляться надежно, если у вас есть, скажем, MacBook, и вы открываете и закрываете только крышку. Тем не менее, это хорошо работает для моего iMac, который я регулярно выключаю и запускаю. Дайте мне знать, если это работает!
источник