Czy instalacje i aktualizacje Mac App Store mogą być zautomatyzowane?

28

Jak mogę napisać skrypt instalujący lub aktualizujący aplikacje z Mac App Store? Wolałbym narzędzia wiersza poleceń, ale wystarczyłby AppleScript lub inny interfejs API.

Odpowiednie elementy układanki:

  • installer: zwróć uwagę zwłaszcza na -storeflagę używaną do symulacji instalacji App Store dla deweloperów pakietów.
  • systemupdate: jest w stanie obsługiwać aktualizacje aplikacji Apple, sygnalizuje -iinstalację i -anakazuje zainstalowanie wszystkich dostępnych aktualizacji
Joseph Holsten
źródło
Czy Twoje aplikacje zostały zakupione z jednym Apple ID, czy śledzisz indywidualny Apple ID dla każdego komputera?
bmike
@bike: Czułem się komfortowo, używając wspólnego identyfikatora Apple ID lub unikalnego dla każdej maszyny
Joseph Holsten
Zakładając, że MacWorld ma rację, że Mountain Lion wycofuje usługę aktualizacji oprogramowania i wszystko odbywa się za pośrednictwem Mac App Store, zarządzanie nią będzie wyzwaniem dla grup roboczych i przedsiębiorstw. Zastanawiam się, czy konfigurator Apple mógłby się rozwinąć, aby pomóc w zarządzaniu kontami, a Pulpit zdalny może uruchomić aktualizacje bez przeszkadzania użytkownikom, dopóki aktualizacje nie zostaną zastosowane ponownie.
bmike

Odpowiedzi:

13

Większość osób może po prostu włączyć automatyczne aktualizacje i pozwolić Apple zarządzać wszystkimi aktualizacjami. Jeśli istnieje powód, dla którego nie możesz tego zrobić lub nie chcesz, istnieje narzędzie wiersza polecenia do automatyzacji instalacji i aktualizacji App Store.

Jednym z godnych uwagi narzędzi open source do replikacji Mac App Store z wiersza poleceń jest mas :

Żeby zainstalować:

brew install mas 

Po uruchomieniu możesz zaktualizować wszystkie aplikacje dostępne w:

mas upgrade

Jeśli nie chcesz ufać oprogramowaniu zewnętrznemu za pomocą identyfikatora Apple ID, możesz także zautomatyzować interfejs użytkownika i przechowywać nazwę konta i hasło za pomocą pęku kluczy.

Rozwiązaniem Apple dla poprawek i aktualizacji zabezpieczeń innych niż App Store jest uruchomienie softwareupdatenarzędzia z wiersza poleceń, aby zaktualizować całe oprogramowanie, które Apple zamierza zainstalować bez interwencji użytkownika lub przejścia przez interfejs użytkownika App Store.

Obecnie w Lion i Mountain Lion - oznacza to, że Mac uderzy w lokalny serwer OS X, który buforuje pobrane aktualizacje systemu i oprogramowanie zainstalowane poza App Store. Jeśli nie masz lokalnego serwera aktualizacji oprogramowania, pliki będą oczywiście pobierane bezpośrednio z Apple.

W przypadku Mountain Lion 10.8.2 i niższych - wszystko nadal przechodzi przez App Store - więc oprogramowanie Apple, takie jak aktualizacje OS X, jest w pełni skryptowalne przy użyciu tego narzędzia do aktualizacji i tylko aktualizacji innych niż App Store.

Skrypty (jeszcze lub być może nigdy) nie są aplikacjami instalowanymi ze sklepu App Store, takimi jak Xcode i Pages oraz aplikacje innych firm. Oznacza to, że nie można mieć tylko jednego narzędzia do aktualizacji całego oprogramowania bez otwarcia aplikacji App Store i wpisania hasła na ekranie interfejsu użytkownika.

Co możesz zrobić, to pobrać aplikacje raz, a następnie skopiować aplikację na wiele komputerów Mac, o ile Apple ID użyty do pobrania pierwszej kopii aplikacji jest również używany na wszystkich komputerach Mac, na których uruchomiona jest aplikacja.

Znam kilka instytucji, które kupują jedną kopię każdej aplikacji na laboratorium 20 komputerów, aby uzyskać licencję na każde stanowisko, ale następnie wdrażają jeden plik na wszystkich komputerach Mac, aby po zakończeniu pobierania aktualizacji narzędzie takie jak Pulpit zdalny Apple lub Caspar lub narzędzie domowe, takie jak scplub, rsyncsłuży do przenoszenia zaktualizowanej wersji aplikacji na wszystkie komputery Mac w laboratorium.

Jeśli wybierzesz trasę indywidualnego identyfikatora Apple ID dla każdego komputera, nie będziesz w stanie wykonać skryptu instalacji aktualizacji aplikacji, ponieważ każde z nich poprosi o hasło do każdego konta, chyba że znasz się dobrze na wszystkich hasłach i wykonujesz skrypty interfejsu użytkownika, w których AppleScript może wprowadź poprawną nazwę użytkownika i hasło programowo, a następnie kliknij przycisk, aby rozpocząć proces pobierania aktualizacji każdego komputera. Sposób, w jaki aplikacje z App Store są podpisane kodem, sprawia, że ​​trudno jest po prostu wślizgnąć się w aktualizację bez unieważnienia pakietu lub w jakiś sposób odwrócić inżynierię / jailbreakowanie całego procesu sklepu z aplikacjami i omijać normalny przepływ pozwalający instalatorowi aplikacji na działanie.

bmike
źródło
6

Jest to możliwe przy użyciu masnarzędzia wiersza polecenia open source :

mas-cli

Prosty interfejs wiersza poleceń dla Mac App Store. Zaprojektowany dla skryptów i automatyzacji.

Ujawnienie: Jestem twórcą mas

argon
źródło
Wielkie dzięki za to narzędzie i opublikowanie go tutaj. Minęło dużo czasu i mam nadzieję, że Apple utrzyma stabilny interfejs API / SDK, aby narzędzie mogło działać z czasem.
bmike
3

Może chcesz sprawdzić flout-wrap i solistę . Możesz zainstalować pakiety OSX z interfejsu użytkownika za pomocą dmg_packagedostawcy. Sprawdź niektóre z przepisów w kiełkach, aby zobaczyć kilka przykładów.

Aby automatycznie aktualizować aktualizacje zabezpieczeń, użyj przepisu pivotal_workstation :: osx_updates . ( Zauważ, że to używasoftwareupdate )

W przypadku aplikacji Homebrewbrew dostawca ma upgradeakcję.

O ile mi wiadomo, nie ma dostawcy automatycznej aktualizacji aplikacji z App Store. Jednak możesz korzystać z wbudowanej funkcji automatycznej aktualizacji niektórych aplikacji w bloku executelub bashdostawcy. Możesz także użyć AppleScript w przepisie szefa kuchni, aby zautomatyzować aplikację App Store. Aby zapoznać się z niektórymi przykładami użycia wbudowanego AppleScript, zobacz przepis na sprout-osx-settings :: function_keys . (Kilka innych przykładów: sprout-osx-settings :: remove_expose_keyboard_shortcuts , sprout-osx-settings :: set_finder_show_user_home_in_sidebar )

TrinitronX
źródło
1

Nie jestem pewien co do rozwiązania typu AppleScript, ale istnieją narzędzia do zarządzania dużą liczbą systemów OS X.

Najbardziej znany mi jest radmind (który zaczynał w UMich za zarządzanie ich laboratoriami (stara strona) ).

radmind jest naprawdę nastawiony na wdrażanie standardowego szablonu systemu operacyjnego na wielu komputerach i aktualizowanie go, więc w przypadku małej witryny może to być trochę za dużo pracy. Podstawowy przepływ pracy to:

  • Zrób czystą „maszynę do budowania” i zainstaluj radmind i całe standardowe oprogramowanie.
  • Utwórz transkrypcje radmind dla tej maszyny kompilacji.
  • Zainstaluj radmind na swoich komputerach klienckich i ściągnij / zastosuj transkrypcje, aby je zainstalować.
  • W przypadku aktualizacji zaktualizuj serwer kompilacji i wykonaj zapis aktualizacji / poprawki, a następnie zastosuj go do klientów.

… W najściślejszym sensie nie oznacza to automatyzacji instalacji, ale wystarczy wykonać interaktywny bit tylko raz, a następnie przekazać zaktualizowany system operacyjny swoim klientom.

Oczywiście działa to najlepiej, jeśli możesz zainstalować standardowy zestaw oprogramowania wszędzie - jeśli Twoi klienci są wyjątkowi i wyjątkowi, może to nie być świetne rozwiązanie.

voretaq7
źródło
1
Próbuję zautomatyzować ten proces w obrębie szefa kuchni, który jest narzędziem do automatyzacji systemu, takim jak radmind. Problem polega na tym, że te narzędzia nie mogą instalować aplikacji ze sklepu Mac App Store.
Joseph Holsten
1
@JosephHolsten Procedura radmindoznaczałaby następująco: „Zainstaluj aplikację na komputerze z szablonem i zaktualizuj transkrypcję”. (Wciąż instalacja ręczna, ale jedna instalacja ręczna zamiast 1000.)
voretaq7