Chciałbym wymusić aktualizację aplikacji App Store z wiersza poleceń.
W jaki sposób mogę to zrobić?
Chciałbym wymusić aktualizację aplikacji App Store z wiersza poleceń.
W jaki sposób mogę to zrobić?
Odpowiedzi:
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 open
polecenia.
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
, sdp
i gen_bridge_metadata
aby 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ć mas
narzędzia wiersza poleceń.
softwareupdate
proces, a nawet podłącza się do App Store w Mountain Lion - ale dotyczy to tylko aplikacji innych niż App Store.
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ś.
Możesz użyć tego softwareupdate
narzędzia.
sudo softwareupdate -l
Wyświetla wszystkie dostępne aktualizacje.
sudo softwareupdate -ia
Instaluje wszystkie dostępne aktualizacje.