Як оновити додаток App Store з командного рядка?


18

Я б хотів змусити оновити програми App Store з командного рядка.

Як я можу це зробити?


2
Немає помічника командного рядка, як загальне оновлення програмного забезпечення, тому ви можете обмежитися запуском скрипту, який автоматизує команди GUI. Ви б редагували питання, щоб уточнити, чи очікуєте ви, що "робоче" рішення буде лише терміналом або якщо сценарій Автоматизатора, який буде вводити ваш пароль при запиті, це те, що ви шукаєте.
bmike

Я шукаю щось без нагляду, все ж якщо для цього потрібен ідентифікатор / пароль AppleID, я вважаю нормальним, щоб включити його до сценарію.
sorin

1
Також дивіться apple.stackexchange.com/questions/42353/… про рішення, яке викликає сторонній додаток
bmike

Відповіді:


6

Apple не постачає помічників командного рядка або будь-яких класів какао, які можна писати, до яких можна зав'язатись для автоматизації. На відміну від загального оновлення програмного забезпечення, яке дозволяє оновлювати та встановлювати поза коробкою, ви можете скриптувати процес натискання кнопок мишею за допомогою Automator.

Однак магазин додатків був розроблений з реверсом і випустив відкритий код , а також двійкову форму :

Установка швидка, і вона видається досить надійною в поточній версії OS X 10.11:

brew install argon/mas/mas 

З випущеним джерелом, я б очікував, що з'являться інші реалізації цього інструменту, можливо, навіть одна сценарій з python.

Якщо хтось увійшов у mac (запускається вікно управління), ви можете використовувати 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і gen_bridge_metadataщоб скинути всі скрипти словника і скріптові речі , використовуючи рубін з командного рядка, але в даний час кращого варіантом буде використовувати masінструмент командного рядка.


1
Ого, це справді дратує. Зазвичай оновлення програмного забезпечення легко прописати за допомогою оновлення програмного забезпечення (8).
Арн

2
Я просто хотів заявити для запису - Зрозуміло, Apple свідомо вирішила ускладнити / не надати жодного інструмента чи гачка чи допомоги для автоматизації встановлення та оновлень App Store. Основна система все ще має softwareupdateпроцес, і вона навіть підключається до App Store на Mountain Lion - але це лише для додатків App Store.
bmike

4

App Store просто не підходить для адміністрування. Ледь не квазіпакетний менеджер, він не є настільки корисним або надійним, як реальні менеджери пакунків, такі як pkgsrc, порти FreeBSD, здатність, RPM, макпорти або навіть оновлення програмного забезпечення. На мій досвід, комерційним розробникам непередбачувано боротися за вироби. Отже, як компетентний адміністратор, є лише один раціональний та відповідальний спосіб роботи з 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

Запустіть / Програми / Віддалене \ 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

Запустіть / Програми / Віддалене \ Desktop.app та серіалізуйте. І зробити щось.


1
Чудова відповідь, я дізнався купу нового, що я можу зробити в Терміналі. +1
shrx

1

Можна скористатися softwareupdateінструментом.

sudo softwareupdate -l

Список усіх доступних оновлень.

sudo softwareupdate -ia

Встановлює всі доступні оновлення.


Це не працює для додатків Appstore, лише для яблучних пакетів.
Бріс

спробуйте також: man softwareupdate
Біллі Макклоскі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.