Я хотел бы принудительно обновить приложения App Store из командной строки.
Как я могу это сделать?
Apple не предоставляет помощника командной строки или каких-либо сценариев какао-классов, которые вы можете использовать для автоматизации. В отличие от общего обновления программного обеспечения, которое позволяет обновлять и устанавливать «из коробки», вы можете запрограммировать процесс нажатия кнопок мышью с помощью Automator.
Однако магазин приложений был реконструирован и выпущен с открытым исходным кодом , а также в двоичной форме :
Установка выполняется быстро и выглядит достаточно надежно в текущей версии OS X 10.11:
brew install argon/mas/mas
С опубликованным исходным кодом я ожидаю, что появятся некоторые другие реализации этого инструмента, возможно, даже одна, написанная на Python.
Если кто-то вошел в систему Mac (Windowmanager запущен), вы можете использовать Automator и функцию «наблюдайте за мной», чтобы автоматизировать обновления и хранить пароль вашего магазина в скрипте довольно небезопасно.
Вот два руководства, которые помогут вам начать работу, если это соответствует вашим потребностям.
http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/
http://automator.us/leopard/features/virtual-user.html
Когда у вас есть работающий скрипт, вы можете использовать команду командной строки open
, чтобы запустить его.
Если приложение App Store когда-либо предоставит эту функцию для сценариев, у вас будет больше параметров из командной строки. Было бы легко использовать и sdef
выгружать sdp
весь скриптовый словарь и скриптовые вещи, используя ruby из командной строки, но в настоящее время лучшим вариантом будет использование инструмента командной строки.gen_bridge_metadata
mas
softwareupdate
процесс, и он даже подключается к App Store на Mountain Lion, но только для приложений, не принадлежащих App Store.App Store просто не подходит для администрирования. Едва ли это квази-менеджер пакетов, он далеко не так полезен и надежен, как настоящие менеджеры пакетов, такие как pkgsrc, порты FreeBSD, aptitude, RPM, macports или даже softwareupdate. По моему опыту, коммерческим разработчикам непредсказуемо и борода закладывать свои продукты. Так что есть действительно только один рациональный и ответственный способ, как грамотного администратора, работать с App Store:
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.store_helper.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.storeagent.plist
sudo mkdir /System/Library/LaunchAgents\ \(disabled\)/
sudo mv /System/Library/LaunchAgents/com.apple.store* /System/Library/LaunchAgents\ \(disabled\)/
И просто выкинь это из головы, оно больше не будет тебя беспокоить. ;-)
Вместо этого используйте ARD, хотя и не менеджер пакетов, он управляет пакетами, установками, обновлениями и обновлениями, он будет делать то, что вы хотите, сэкономит ваше время и не подведет:
Для Apple Remote Desktop 3 для 10.9:
Сначала ознакомьтесь с руководством администратора, чтобы убедиться, что это правильный путь:
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
open ARD3_AdminGuide.pdf
Затем установите:
curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/031-2845.20140313.rerft/RemoteDesktopAdmin372.dmg
hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin372.dmg
sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg -target /
но это может вызвать забавную ошибку, если не работает 10.9 или если не установлена предыдущая версия ARD, и если это так, попробуйте:
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/
или с одинаковым эффектом (или/или здесь, не нужно использовать как pkgutil, так и xar... я просто тщательно):
mkdir ARDexpanded
cd ARDexpanded
xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg
И нам больше не нужен прикрепленный образ диска, так что извлеките его:
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/
А теперь, что вы увидите, если вы
cd ARDexpanded/RemoteDesktopAdmin372.pkg/
ls
является
Bom PackageInfo Payload Scripts
То, что находится в файле Payload, представляющем собой архив cpio, сжатый с помощью gzip, — это то, что вам нужно. Таким образом, с помощью нескольких переданных команд мы можем получить набор приложений:
cat Payload | gzip -d - | cpio -id
ls
возвращает:
Applications Bom Library PackageInfo Payload Scripts
И вы почти закончили.
cp -R Applications/Remote\ Desktop.app /Applications/
Теперь вы установили Apple Remote Desktop Admin 3.7.2.
Так что все, что осталось сделать, это купить лицензию:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
Запустите /Applications/Remote\ Desktop.app и выполните сериализацию. И займись делом.
Для 10.6 Snow Leopard вам понадобится немного более ранняя версия ARD:
curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf
curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/041-6789.20120917.xD6TR/RemoteDesktopAdmin353.dmg
hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin353.dmg
sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg -target /
и если он отбрасывает вам это:
installer: Cannot install on volume / because it is disabled.
installer: This update could not find Remote Desktop on this volume.
затем попробуйте:
pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg ARD353
hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update
перейти к полезной нагрузке:
cd ARD353/RemoteDesktopAdmin353.pkg/
ls
возвращает:
Bom PackageInfo Payload Scripts
Итак, запустите:
cat Payload | gzip -d - | cpio -id
ls
возвращает:
Applications Bom Library PackageInfo Payload Scripts
И вы почти закончили:
cp -R Applications/Remote\ Desktop.app /Applications/
приобрести лицензию:
open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat
Запустите /Applications/Remote\ Desktop.app и выполните сериализацию. И сделать что-нибудь.
Вы можете использовать softwareupdate
инструмент.
sudo softwareupdate -l
Список всех доступных обновлений.
sudo softwareupdate -ia
Устанавливает все доступные обновления.
bmike
сорин
bmike