Bagaimana cara memperbarui aplikasi App Store dari baris perintah?

18

Saya ingin memaksa pembaruan aplikasi App Store dari baris perintah.

Bagaimana saya bisa melakukan ini?

Sorin
sumber
2
Tampaknya tidak ada pembantu baris perintah seperti pembaruan perangkat lunak secara keseluruhan sehingga Anda mungkin terbatas untuk meluncurkan skrip yang akan mengotomatiskan perintah GUI. Apakah Anda mengedit pertanyaan untuk mengklarifikasi jika Anda mengharapkan solusi "berfungsi" menjadi terminal saja atau jika skrip Automator yang akan memasukkan kata sandi Anda ketika ditanya adalah apa yang Anda cari.
bmike
Saya mencari sesuatu yang tidak dijaga, masih jika ini memerlukan ID / kata sandi AppleID saya menemukan ok untuk memasukkannya ke dalam skrip.
sorin
1
Lihat juga apple.stackexchange.com/questions/42353/… untuk solusi yang memanggil aplikasi pihak ketiga
bmike

Jawaban:

6

Apple tidak menyediakan pembantu baris perintah atau kelas kakao skrip yang dapat Anda gunakan untuk otomatisasi. Berbeda dengan pembaruan perangkat lunak secara keseluruhan, yang memungkinkan pembaruan dan pemasangan di luar kotak, Anda dapat membuat skrip proses mengklik tombol dengan mouse menggunakan Automator.

Namun, app store telah direkayasa balik dan dirilis open source serta bentuk biner :

Instalasi cepat dan tampaknya cukup dapat diandalkan pada versi OS X 10.11 saat ini:

brew install argon/mas/mas 

Dengan sumber yang dirilis, saya berharap beberapa implementasi lain dari alat ini muncul, mungkin bahkan satu skrip dengan python.

Jika seseorang masuk ke mac (windowmanager sedang berjalan), Anda dapat menggunakan Automator dan fungsi "watch me do" untuk mengotomatiskan pembaruan dan menyimpan kata sandi toko Anda di dalam skrip dengan cukup tidak aman.

Berikut adalah dua tutorial untuk membantu Anda memulai jika ini memenuhi kebutuhan Anda.

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

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

Setelah memiliki skrip yang berfungsi, Anda dapat menggunakan perintah baris openperintah untuk memulai.

Jika aplikasi App Store memaparkan fungsi itu ke skrip, Anda akan memiliki lebih banyak opsi dari baris perintah. Ini akan mudah digunakan sdef, sdpdan gen_bridge_metadatauntuk membuang seluruh kamus dan skrip hal-hal skrip menggunakan ruby dari baris perintah, tetapi saat ini pilihan terbaik adalah menggunakan masalat baris perintah.

bmike
sumber
1
Wow, ini sangat menyebalkan. Pembaruan perangkat lunak yang biasa mudah skrip menggunakan pembaruan perangkat lunak (8).
Arne
2
Saya hanya ingin menyatakan untuk catatan - Jelas Apple telah secara sadar memutuskan untuk membuatnya sulit / tidak menyediakan alat atau pengait atau bantuan untuk mengotomatiskan pemasangan dan pembaruan App Store. Sistem inti masih memiliki softwareupdateproses dan bahkan terhubung ke App Store di Mountain Lion - tetapi itu hanya untuk aplikasi non App Store.
bmike
4

App Store sama sekali tidak cocok untuk administrasi. Hampir tidak sebagai manajer paket-kuasi, itu hampir tidak berguna atau dapat diandalkan seperti manajer paket nyata seperti pkgsrc, port FreeBSD, aptitude, RPM, macports atau bahkan pembaruan perangkat lunak. Dalam pengalaman saya, itu tidak dapat diprediksi dan janggut bagi pengembang komersial untuk memperdagangkan barang-barang mereka. Jadi sebenarnya hanya ada satu cara rasional dan bertanggung jawab, sebagai administrator yang kompeten, untuk bekerja dengan 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\)/

Dan singkirkan saja dari pikiran Anda, itu tidak akan mengganggu Anda lagi. ;-)


Sebaliknya, gunakan ARD, meskipun bukan manajer paket, ini mengelola paket, instalasi, pembaruan, dan peningkatan, itu akan melakukan apa yang Anda inginkan, menghemat waktu Anda, dan tidak akan mengecewakan Anda:

Untuk Apple Remote Desktop 3, untuk 10.9:

Lihat panduan admin terlebih dahulu untuk meyakinkan diri sendiri bahwa ini adalah cara untuk pergi:

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

    open ARD3_AdminGuide.pdf

Kemudian instal:

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 /

tetapi itu mungkin menimbulkan kesalahan lucu jika tidak menjalankan 10.9, atau jika tidak ada versi ARD sebelumnya diinstal, dan jika ya, coba:

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

atau untuk efek yang sama (baik / atau di sini, tidak perlu menggunakan pkgutil dan xar ... Saya hanya menyeluruh):

mkdir ARDexpanded

cd ARDexpanded

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

Dan kita tidak lagi membutuhkan gambar disk terpasang, jadi keluarkan:

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

Dan sekarang apa yang akan Anda lihat jika Anda

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

adalah

    Bom         PackageInfo Payload     Scripts

Apa yang ada di file Payload, yang merupakan arsip cpio yang dikompres dengan gzip, adalah yang Anda cari. Jadi dengan beberapa perintah pipa kita bisa sampai ke bundel aplikasi:

cat Payload | gzip -d - | cpio -id

ls

pengembalian:

    Applications Bom          Library      PackageInfo  Payload      Scripts

Dan Anda hampir selesai.

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

Sekarang Anda telah menginstal Apple Remote Desktop Admin 3.7.2

Jadi yang harus dilakukan hanyalah membeli lisensi Anda:

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

Peluncuran / Aplikasi / Remote \ Desktop.app dan serialkan Dan menyelesaikan beberapa pekerjaan.


Untuk 10.6 Snow Leopard, Anda memerlukan ARD versi yang sedikit lebih awal:

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 /

dan jika itu membalas Anda:

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

lalu coba:

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

telusuri ke Payload:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

pengembalian:

    Bom         PackageInfo Payload     Scripts

Jadi jalankan:

cat Payload | gzip -d - | cpio -id

ls

pengembalian:

Applications Bom          Library      PackageInfo  Payload      Scripts

Dan Anda hampir selesai:

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

beli lisensi Anda:

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

Peluncuran / Aplikasi / Remote \ Desktop.app dan serialkan Dan menyelesaikan sesuatu.

chillin
sumber
1
Jawaban yang bagus, saya belajar banyak hal baru yang bisa saya lakukan di Terminal. +1
shrx
1

Anda bisa menggunakan softwareupdatealat ini.

sudo softwareupdate -l

Daftar semua pembaruan yang tersedia.

sudo softwareupdate -ia

Instal semua pembaruan yang tersedia.

Moritz Petersen
sumber
Ini tidak berfungsi untuk aplikasi Appstore, hanya untuk paket apple.
Brice
coba juga: man softwareupdate
Billy McCloskey