Jak zaktualizować aplikację App Store z wiersza poleceń?

18

Chciałbym wymusić aktualizację aplikacji App Store z wiersza poleceń.

W jaki sposób mogę to zrobić?

sorin
źródło
2
Wygląda na to, że nie ma pomocnika z linii poleceń, takiego jak ogólna aktualizacja oprogramowania, więc możesz być ograniczony do uruchomienia skryptu, który zautomatyzuje polecenia GUI. Czy edytujesz pytanie, aby wyjaśnić, czy spodziewasz się, że „działające” rozwiązanie będzie tylko terminalem, czy też skrypt Automatora, który po wprowadzeniu hasła wprowadzi hasło, jest tym, czego szukasz.
bmike
Szukam czegoś bez nadzoru, ale jeśli wymaga to identyfikatora / hasła AppleID, uważam, że mogę to uwzględnić w skrypcie.
sorin
1
Zobacz także apple.stackexchange.com/questions/42353/…, gdzie znajdziesz rozwiązanie, które wywołuje aplikację innej firmy
bmike

Odpowiedzi:

6

Apple nie dostarcza pomocnika wiersza poleceń ani żadnych skryptowalnych klas kakao, do których można się przyczepić w celu automatyzacji. W przeciwieństwie do ogólnej aktualizacji oprogramowania, która umożliwia aktualizacje i instalacje po wyjęciu z pudełka, możesz za pomocą Automatora przeprowadzić skrypt klikania przycisków myszą.

Jednak sklep z aplikacjami został poddany inżynierii wstecznej i wydany jako open source, a także w formie binarnej :

Instalacja jest szybka i wydaje się być dość niezawodna w bieżącej wersji OS X 10.11:

brew install argon/mas/mas 

Po wydaniu źródła spodziewam się, że pojawią się inne implementacje tego narzędzia, być może nawet jedna ze skryptami w języku Python.

Jeśli ktoś jest zalogowany na komputerze Mac (uruchomiony jest menedżer okien), możesz użyć Automatora i funkcji „obserwuj mnie”, aby zautomatyzować aktualizacje i dość niepewnie zapisać hasło do sklepu w skrypcie.

Oto dwa samouczki, które pomogą Ci zacząć, jeśli spełnia twoje potrzeby.

http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/

http://automator.us/leopard/features/virtual-user.html

Gdy masz już działający skrypt, możesz go uruchomić za pomocą wiersza openpolecenia.

Jeśli aplikacja App Store kiedykolwiek udostępni tę funkcję skryptom, będziesz mieć więcej opcji z wiersza poleceń. Byłoby to łatwy w użyciu sdef, sdpi gen_bridge_metadataaby zrzucić całą skryptów słownika i skryptów rzeczy za pomocą rubin z linii poleceń, ale w chwili obecnej najlepszym rozwiązaniem byłoby, aby użyć masnarzędzia wiersza poleceń.

bmike
źródło
1
Wow, to jest naprawdę denerwujące. Zwykłe aktualizacje oprogramowania można łatwo skryptować za pomocą softwareupdate (8).
Arne,
2
Chciałem tylko oświadczyć, że to rekord - jasne jest, że Apple świadomie postanowił utrudnić / nie udostępnić żadnego narzędzia ani haka ani pomocy w automatyzacji instalacji i aktualizacji App Store. System podstawowy wciąż ma softwareupdateproces, a nawet podłącza się do App Store w Mountain Lion - ale dotyczy to tylko aplikacji innych niż App Store.
bmike
4

App Store po prostu nie nadaje się do administrowania. Jako menedżer quasi-pakietów, nie jest tak przydatny ani niezawodny jak prawdziwe menedżery pakietów, takie jak pkgsrc, porty FreeBSD, aptitude, RPM, macports, a nawet aktualizacja oprogramowania. Z mojego doświadczenia wynika, że ​​jest to nieprzewidywalne i brodę dla deweloperów komercyjnych, aby hockować swoje towary. Tak naprawdę jest tylko jeden racjonalny i odpowiedzialny sposób, jako kompetentny administrator, do pracy z 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\)/

I po prostu zapomnij o tym, nie będzie ci to więcej kłopotać. ;-)


Zamiast tego użyj ARD, choć nie jest menedżerem pakietów, zarządza pakietami, instalacjami, aktualizacjami i aktualizacjami, zrobi to, co chcesz, zaoszczędzisz czas i nie zawiedzie:

W przypadku Apple Remote Desktop 3, w wersji 10.9:

Najpierw zapoznaj się z przewodnikiem administratora, aby przekonać się, że jest to właściwy sposób:

curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf

    open ARD3_AdminGuide.pdf

Następnie zainstaluj:

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 /

ale może to spowodować zabawny błąd, jeśli nie działa 10.9 lub jeśli nie jest zainstalowana poprzednia wersja ARD, a jeśli tak, spróbuj:

pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/

lub dla równego efektu (albo / albo tutaj, nie muszę używać zarówno pkgutil, jak i xar ... Jestem po prostu dokładny):

mkdir ARDexpanded

cd ARDexpanded

xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg

Nie potrzebujemy już dołączonego obrazu dysku, więc wysuń go:

hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/

A teraz co zobaczysz, jeśli ty

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

jest

    Bom         PackageInfo Payload     Scripts

To, czego szukasz w pliku ładunku, czyli archiwum CPIO skompresowanym za pomocą gzip, jest tym, czego szukasz. Tak więc za pomocą kilku potokowych poleceń możemy dostać się do pakietu aplikacji:

cat Payload | gzip -d - | cpio -id

ls

zwroty:

    Applications Bom          Library      PackageInfo  Payload      Scripts

I prawie skończyłeś.

cp -R Applications/Remote\ Desktop.app /Applications/

Teraz zainstalowałeś Apple Remote Desktop Admin 3.7.2

Pozostaje więc tylko zakup licencji:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Uruchom / Aplikacje / Remote \ Desktop.app i serializuj. I zrób trochę pracy.


Do wersji 10.6 Snow Leopard potrzebujesz nieco wcześniejszej wersji 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 /

a jeśli odrzuci to:

    installer: Cannot install on volume / because it is disabled.
    installer: This update could not find Remote Desktop on this volume.

więc spróbuj:

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

przejdź do ładunku:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

zwroty:

    Bom         PackageInfo Payload     Scripts

Więc uruchom:

cat Payload | gzip -d - | cpio -id

ls

zwroty:

Applications Bom          Library      PackageInfo  Payload      Scripts

I prawie skończyłeś:

cp -R Applications/Remote\ Desktop.app /Applications/

zakup licencję:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Uruchom / Aplikacje / Remote \ Desktop.app i serializuj. I zrób coś.

wyluzowana
źródło
1
Świetna odpowiedź, nauczyłem się wielu nowych rzeczy, które mogę zrobić w terminalu. +1
shrx
1

Możesz użyć tego softwareupdatenarzędzia.

sudo softwareupdate -l

Wyświetla wszystkie dostępne aktualizacje.

sudo softwareupdate -ia

Instaluje wszystkie dostępne aktualizacje.

Moritz Petersen
źródło
To nie działa dla aplikacji Appstore, tylko dla pakietów Apple.
Brice
spróbuj także: aktualizacja oprogramowania man
Billy McCloskey