Как обновить приложение App Store из командной строки?

Я хотел бы принудительно обновить приложения App Store из командной строки.

Как я могу это сделать?

Похоже, что помощника командной строки, такого как общее обновление программного обеспечения, нет, поэтому вы можете быть ограничены запуском скрипта, который будет автоматизировать команды графического интерфейса. Не могли бы вы отредактировать вопрос, чтобы уточнить, ожидаете ли вы, что «рабочее» решение будет только терминалом, или вам нужен сценарий Automator, который будет вводить ваш пароль при запросе.
Я ищу что-то без присмотра, но если для этого требуется идентификатор / пароль AppleID, я считаю, что можно включить его в сценарий.
Также см. Apple.stackexchange.com/questions/42353/… для решения, которое вызывает стороннее приложение

Ответы (3)

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_metadatamas

Вау, это действительно раздражает. Обычные обновления программного обеспечения легко запускаются с помощью сценария softwareupdate(8).
Я просто хотел заявить для протокола: ясно, что Apple сознательно решила усложнить / не предоставлять никаких инструментов, крючков или помощи для автоматизации установки и обновлений App Store. В базовой системе все еще есть 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 и выполните сериализацию. И сделать что-нибудь.

Отличный ответ, я узнал много нового, что могу делать в Терминале. +1

Вы можете использовать softwareupdateинструмент.

sudo softwareupdate -l

Список всех доступных обновлений.

sudo softwareupdate -ia

Устанавливает все доступные обновления.

Это не работает для приложений Appstore, только для пакетов Apple.
попробуйте также: man softwareupdate