Como atualizar o aplicativo App Store na linha de comando?


18

Gostaria de forçar uma atualização dos aplicativos da App Store na linha de comando.

Como posso fazer isso?


2
Não parece haver um auxiliar de linha de comando como a atualização geral do software; portanto, você pode estar limitado ao lançamento de um script que automatize os comandos da GUI. Você editaria a pergunta para esclarecer se espera que a solução "funcional" seja apenas um terminal ou se um script do Automator que digitará sua senha quando solicitado for o que você está procurando.
bmike

Estou procurando por algo autônomo, ainda que isso exija a ID / senha AppleID, acho aceitável incluí-lo no script.
22612

11
Consulte também apple.stackexchange.com/questions/42353/… para obter uma solução que chama um aplicativo de terceiros
bmike

Respostas:


6

A Apple não fornece um auxiliar de linha de comando ou qualquer classe de cacau com script que você possa usar para automação. Ao contrário da atualização geral de software, que permite atualizações e instalações prontas para uso, você pode criar um script do processo de clicar nos botões com o mouse usando o Automator.

No entanto, a loja de aplicativos sofreu engenharia reversa e lançou código-fonte aberto , além de um formato binário :

A instalação é rápida e parece ser bastante confiável na versão atual do OS X 10.11:

brew install argon/mas/mas 

Com a fonte liberada, eu esperaria que outras implementações dessa ferramenta aparecessem, talvez até uma com script em python.

Se alguém estiver conectado ao mac (o gerenciador de janelas está em execução), você poderá usar o Automator e a função "watch me do" para automatizar atualizações e armazenar a senha da sua loja no script de maneira bastante insegura.

Aqui estão dois tutoriais para você começar se isso atender às suas necessidades.

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

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

Depois de ter um script de trabalho, você pode usar o comando de linha de opencomando para iniciá-lo.

Se o aplicativo da App Store expor essa função a scripts, você terá mais opções na linha de comando. Seria fácil de usar sdef, sdpe gen_bridge_metadatapara despejar todo o dicionário de scripts e scripts coisas usando ruby na linha de comando, mas, actualmente, a melhor opção seria usar a masferramenta de linha de comando.


11
Uau, isso é realmente irritante. As atualizações de software usuais são facilmente programáveis ​​usando softwareupdate (8).
Arne #

2
Eu só queria declarar para o registro - é claro que a Apple decidiu conscientemente dificultar / não fornecer nenhuma ferramenta, gancho ou assistência para automatizar as instalações e atualizações da App Store. O sistema principal ainda tem o softwareupdateprocesso e até se conecta à App Store no Mountain Lion - mas é apenas para aplicativos que não são da App Store.
bmike

4

A App Store simplesmente não é adequada para administração. Quase um gerenciador de quase pacotes, não é tão útil ou confiável quanto os gerenciadores de pacotes reais, como pkgsrc, portas FreeBSD, aptitude, RPM, macports ou até atualização de software. Na minha experiência, é imprevisível e uma barba para desenvolvedores comerciais atrapalharem seus produtos. Portanto, existe realmente apenas uma maneira racional e responsável, como administrador competente, de trabalhar com a 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\)/

E tire isso da cabeça, isso não vai incomodá-lo mais. ;-)


Em vez disso, use o ARD, embora não seja um gerenciador de pacotes, ele gerencia pacotes, instalações, atualizações e atualizações; ele fará o que quiser, economizará tempo e não o decepcionará:

Para o Apple Remote Desktop 3, para 10.9:

Confira primeiro o guia do administrador para se convencer de que este é o caminho a seguir:

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

    open ARD3_AdminGuide.pdf

Então instale:

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 /

mas isso pode gerar um erro engraçado se não estiver executando o 10.9, ou se nenhuma versão anterior do ARD estiver instalada e, se houver, tente:

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

ou para um efeito igual (ou aqui, não é necessário usar o pkgutil e o xar ... estou sendo completo):

mkdir ARDexpanded

cd ARDexpanded

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

E não precisamos mais da imagem do disco anexada, então ejete-a:

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

E agora o que você verá se você

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

é

    Bom         PackageInfo Payload     Scripts

O que está no arquivo Payload, que é um arquivo cpio compactado com gzip, é o que você procura. Portanto, com alguns comandos canalizados, podemos acessar o pacote de aplicativos:

cat Payload | gzip -d - | cpio -id

ls

retorna:

    Applications Bom          Library      PackageInfo  Payload      Scripts

E você está quase pronto.

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

Agora você instalou o Apple Remote Desktop Admin 3.7.2

Então, tudo o que resta a fazer é comprar sua licença:

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

Inicie / Applications / Remote \ Desktop.app e serialize. E faça algum trabalho.


Para o 10.6 Snow Leopard, você precisará de uma versão ligeiramente anterior do 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 /

e se isso lhe der de volta:

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

Então tente:

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

detalhar a carga útil:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

retorna:

    Bom         PackageInfo Payload     Scripts

Então corra:

cat Payload | gzip -d - | cpio -id

ls

retorna:

Applications Bom          Library      PackageInfo  Payload      Scripts

E você está quase pronto:

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

compre sua licença:

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

Inicie / Applications / Remote \ Desktop.app e serialize. E faça algo.


11
Ótima resposta, eu aprendi várias coisas novas que posso fazer no Terminal. 1
shrx

1

Você pode usar a softwareupdateferramenta

sudo softwareupdate -l

Lista todas as atualizações disponíveis.

sudo softwareupdate -ia

Instala todas as atualizações disponíveis.


Isso não funciona para aplicativos da Appstore, apenas para pacotes da apple.
Brice

tente também: man softwareupdate
Billy McCloskey
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.