Dapatkah Mac App Store menginstal & meningkatkan menjadi otomatis?

28

Bagaimana cara skrip menginstal atau meningkatkan aplikasi dari Mac App Store? Saya lebih suka alat baris perintah, tetapi AppleScript atau API lain sudah cukup.

Potongan puzzle yang relevan:

  • installer: perhatikan terutama -storeflag yang digunakan untuk mensimulasikan pemasangan App Store untuk pengembang paket.
  • systemupdate: mampu menangani pembaruan untuk aplikasi Apple, menandai -ipenginstalan dan -amemerintahkannya untuk menginstal semua pembaruan yang tersedia
Joseph Holsten
sumber
Apakah aplikasi Anda dibeli dengan satu ID Apple atau Anda melacak ID Apple individu untuk setiap mesin.
bmike
@bmike: Saya akan merasa nyaman menggunakan ID Apple bersama atau unik untuk setiap mesin
Joseph Holsten
Dengan asumsi MacWorld benar bahwa Mountain Lion mencabut layanan pembaruan perangkat lunak dan semuanya melalui Mac App Store, mengelola ini akan menjadi tantangan bagi kelompok kerja dan perusahaan. Saya bertanya-tanya apakah Apple Configurator mungkin berkembang untuk membantu mengelola akun dan Remote Desktop mungkin dapat memulai pembaruan tanpa mengganggu pengguna sampai reboot menerapkan pembaruan.
bmike

Jawaban:

13

Kebanyakan orang bisa menyalakan pembaruan otomatis dan membiarkan Apple mengelola semua pembaruan. Jika ada alasan mengapa Anda tidak bisa atau tidak mau melakukannya, alat baris perintah memang ada untuk mengotomatiskan pemasangan dan pembaruan App Store.

Salah satu alat open source terkenal untuk mereplikasi Mac App Store dari baris perintah adalah mas :

Untuk memasang:

brew install mas 

Setelah masuk, Anda dapat memperbarui semua aplikasi yang tersedia dengan:

mas upgrade

Jika Anda tidak ingin mempercayai perangkat lunak pihak ketiga dengan ID Apple Anda, Anda juga bisa mengotomatiskan UI Anda dan dapat menyimpan nama akun dan kata sandi menggunakan gantungan kunci.

Solusi Apple untuk tambalan dan pembaruan keamanan non-App Store adalah menjalankan softwareupdatealat dari baris perintah untuk memperbarui semua perangkat lunak yang ingin diinstal oleh Apple tanpa campur tangan pengguna atau melalui UI App Store.

Saat ini di Lion and Mountain Lion - ini berarti bahwa Mac akan menekan server OS X lokal yang sedang melakukan cache unduhan untuk pembaruan sistem dan perangkat lunak yang diinstal di luar App store. Jika Anda tidak memiliki server pembaruan perangkat lunak lokal, tentu saja akan mengunduh file langsung dari Apple.

Untuk Mountain Lion 10.8.2 dan lebih rendah, - semuanya masih datang melalui App Store - sehingga perangkat lunak Apple seperti pembaruan OS X sepenuhnya dapat skrip menggunakan alat ini untuk pembaruan dan pembaruan non-App Store saja.

Apa yang tidak bisa skrip (belum atau mungkin pernah) adalah aplikasi yang diinstal dari App Store seperti Xcode dan Halaman dan aplikasi pihak ketiga. Ini berarti Anda tidak dapat hanya memiliki satu alat untuk memperbarui semua perangkat lunak tanpa membuka aplikasi App Store dan memasukkan kata sandi di layar antarmuka pengguna.

Yang dapat Anda lakukan adalah mengunduh aplikasi satu kali dan kemudian menyalin aplikasi ke banyak mac asalkan ID Apple yang digunakan untuk mengunduh salinan aplikasi yang pertama juga digunakan pada semua Mac yang akan menjalankan aplikasi tersebut.

Saya tahu beberapa lembaga yang membeli satu salinan dari setiap aplikasi untuk lab 20 komputer untuk mendapatkan lisensi untuk setiap kursi, tetapi kemudian menggunakan satu file untuk semua Mac sehingga setelah satu unduhan pembaruan selesai, alat seperti Apple Remote Desktop atau Caspar atau alat buatan rumah seperti scpatau rsyncdigunakan untuk memindahkan versi aplikasi yang diperbarui ke semua Mac di lab.

Jika Anda memilih rute masing-masing Apple ID untuk setiap mesin, Anda tidak akan dapat membuat skrip instalasi pembaruan Aplikasi karena masing-masing akan meminta kata sandi untuk setiap akun kecuali Anda merasa nyaman mengetahui semua kata sandi dan melakukan skrip UI di mana AppleScript dapat masukkan nama pengguna dan kata sandi yang benar secara terprogram dan kemudian klik tombol untuk memulai proses pengunduhan untuk setiap pembaruan mesin. Cara aplikasi app store menandatangani kode membuatnya sulit untuk hanya meluncur dalam pembaruan tanpa membatalkan paket atau entah bagaimana membalikkan rekayasa / jailbreaking seluruh proses app store dan menghindari aliran normal membiarkan penginstal aplikasi melakukan kerjanya.

bmike
sumber
6

Ini dimungkinkan menggunakan masutilitas baris perintah sumber terbuka :

mas-cli

Antarmuka baris perintah sederhana untuk Mac App Store. Dirancang untuk scripting dan otomatisasi.

Pengungkapan: Saya adalah pencipta mas

argon
sumber
Terima kasih banyak untuk alat itu dan mempostingnya di sini. Sudah lama datang dan saya harap Apple menjaga stabil API / SDK untuk membiarkan alat tetap bekerja seiring waktu.
bmike
3

Anda mungkin ingin memeriksa sprout-wrap dan solois . Anda dapat menginstal paket OSX dari uri menggunakan dmg_packagepenyedia. Lihatlah beberapa resep dalam kecambah untuk beberapa contoh.

Untuk memperbarui pembaruan keamanan secara otomatis, gunakan resep pivotal_workstation :: osx_updates . ( Perhatikan bahwa ini menggunakansoftwareupdate )

Untuk aplikasi Homebrew , brewpenyedia memiliki upgradetindakan.

Sejauh yang saya tahu, tidak ada penyedia untuk memperbarui aplikasi App Store secara otomatis. Namun, Anda mungkin dapat menggunakan fitur pembaruan otomatis bawaan dari beberapa aplikasi dalam blok executeatau bashpenyedia. Anda juga dapat menggunakan AppleScript dalam resep koki untuk mengotomatiskan aplikasi App Store. Untuk beberapa contoh menggunakan AppleScript sebaris, lihat resep sprout-osx-settings :: function_keys . (Beberapa contoh lain: sprout-osx-settings :: remove_expose_keyboard_shortcuts , sprout-osx-settings :: set_finder_show_user_home_in_sidebar )

TrinitronX
sumber
1

Saya tidak yakin tentang solusi tipe AppleScript, tetapi ada alat untuk mengelola sejumlah besar sistem OS X.

Yang paling saya kenal adalah radmind (yang dimulai di UMich untuk mengelola lab mereka (situs lama) ).

Radmind benar-benar diarahkan untuk menggunakan templat OS standar ke banyak mesin dan menjaganya agar tetap terbaru, jadi untuk situs kecil itu mungkin terlalu banyak pekerjaan. Alur kerja dasar adalah:

  • Buat "mesin bangun" yang bersih dan instal radmind & semua perangkat lunak standar Anda.
  • Buat transkrip radmind untuk mesin build itu.
  • Instal radmind pada mesin klien Anda dan tarik / terapkan transkrip untuk menginstalnya.
  • Untuk pembaruan, perbarui server build dan buat transkrip pembaruan / tambalan, kemudian terapkan ke klien.

... Jadi dalam arti yang paling ketat itu bukan mengotomatiskan pemasangan, tetapi Anda hanya perlu melakukan sedikit interaktif satu kali dan kemudian mendistribusikan OS yang diperbarui kepada klien Anda.

Jelas ini bekerja paling baik jika Anda dapat menginstal satu set perangkat lunak standar di mana-mana - Jika klien Anda semuanya spesial dan unik ini mungkin bukan solusi yang bagus.

voretaq7
sumber
1
Saya mencoba untuk mengotomatisasi proses ini di dalam chef, yang merupakan alat otomatisasi sistem seperti radmind. Masalahnya adalah tidak ada cara bagi alat-alat ini untuk menginstal aplikasi dari toko aplikasi mac.
Joseph Holsten
1
@JosephHolsten Prosedurnya radmindadalah "Instal aplikasi pada mesin template Anda dan perbarui transkrip". (Masih instalasi manual, tetapi satu instalasi manual bukan 1000.)
voretaq7