Я хотел бы принудительно обновить приложения App Store из командной строки.
Как я могу это сделать?
Я хотел бы принудительно обновить приложения App Store из командной строки.
Как я могу это сделать?
Ответы:
Apple не предоставляет помощника для командной строки или каких-либо классов какао, которые можно использовать для автоматизации. В отличие от общего обновления программного обеспечения, которое позволяет обновлять и устанавливать прямо из коробки, вы можете запрограммировать процесс нажатия кнопок мышью с помощью Automator.
Тем не менее, магазин приложений был перепроектирован и выпущен с открытым исходным кодом, а также в виде двоичной формы :
Установка быстрая, и она выглядит достаточно надежной в текущей версии OS X 10.11:
brew install argon/mas/mas
С выпуском исходного кода, я ожидаю, что появятся некоторые другие реализации этого инструмента, возможно, даже одна, написанная на python.
Если кто-то вошел в Mac (оконный менеджер запущен), вы можете использовать Automator и функцию «watch me do» для автоматизации обновлений и довольно небезопасного хранения вашего пароля хранилища в скрипте.
Вот два урока, которые помогут вам начать, если это соответствует вашим потребностям.
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
и gen_bridge_metadata
чтобы сбросить все скрипты словаря и скриптовые вещи , используя рубин из командной строки, но в настоящее время лучшего вариантом будет использовать mas
инструмент командной строки.
softwareupdate
процесс, и он даже подключается к App Store на Mountain Lion - но это только для приложений, не принадлежащих App Store.
App Store просто не подходит для администрирования. Это всего лишь квазипакетный менеджер, он не так полезен и надежен, как настоящие менеджеры пакетов, такие как pkgsrc, порты FreeBSD, aptitude, RPM, macports или даже программное обновление. По моему опыту, коммерческие разработчики непредсказуемы и борются за свои товары. Таким образом, у компетентного администратора есть только один рациональный и ответственный способ работы с 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
Устанавливает все доступные обновления.