Instalasi file pkg tanpa pengawasan

14

Apakah ada kemungkinan untuk membuat instalasi paket pkg tanpa pengawasan?

Misalnya membuat mpkg dan menjalankan skrip yang menginstal paket melalui konsol dan installer.

Latar Belakang: Saya harus menggunakan paket ke banyak pengguna osx. Kami tidak memiliki desktop apel dan tidak memiliki akses root ke mesin ini. ini adalah paket pkg yang telah dikonfigurasikan, tetapi jika pengguna meluncurkannya dengan cara normal, konfigurasi pra akan ditimpa. Di windows saya menyadari ini dengan arsip selfexecutable yang meluncurkan msi dengan instalasi diam. Di linux saya membuat paket rpm / deb tapi di osx saya tidak menemukan cara yang tepat :(

Megachip
sumber

Jawaban:

17

Jawaban Singkat: ya.

Jawaban Panjang: Ya, tapi ... jawaban lengkap untuk pertanyaan ini mencakup jawaban teknis dan masalah praktis.

Pertama, jawaban teknis

Anda dapat menginstal .pkg atau .mpkg menggunakan sintaks ini:

sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"

Jika pemasang tidak 'ditandatangani' dengan benar, Anda harus menambahkan -allowUntrusted

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"

Anda mungkin juga perlu menentukan di mana Anda ingin menginstalnya, menggunakan -target /(Saya tidak 100% yakin ini diperlukan , tapi itu ide yang bagus):

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /

Sekarang, masalahnya adalah Anda sudoakan ditanyakan kata sandi administrator saat Anda mencoba menjalankannya installer. Jika Anda ingin mengotomatisasi ini, Anda harus memberi tahu Mac Anda untuk tidak meminta sudokata sandi saat menjalankan penginstal. Untuk melakukan itu, Anda dapat menambahkan baris ini ke /etc/sudoersfile Anda :

%admin ALL=NOPASSWD: /usr/sbin/installer

Lihat man visudoinstruksi untuk mengedit file itu.

Kedua, perhatian praktis

Jika Anda adalah satu-satunya orang yang menggunakan Mac Anda, menambahkan baris di atas /etc/sudoersbukanlah masalah besar.

Namun, jika ini adalah Mac yang dibagikan, maka orang lain yang berada di grup 'admin' akan dapat berjalan /usr/sbin/installertanpa diminta kata sandi mereka.

Juga, jelas jika seseorang masuk ke akun 'admin' Anda, mereka juga bisa, secara teoritis, menyebabkan kerusakan /usr/sbin/installer. Meskipun saya bingung untuk memikirkan apa yang akan mereka lakukan, itu adalah pertukaran keamanan dan kenyamanan.

Ketiga, skrip github

Saya menulis pkginstall.sh untuk melakukan beberapa hal yang bagus seperti mencatat prosesnya, dan juga memberi tahu Anda apakah Anda seharusnya melakukan reboot atau tidak setelah menginstal paket.

Terakhir tetapi tidak kalah penting: Otomatiskan "bagaimana?"

Sejauh bagaimana Anda ingin mengotomatiskan instalasi, itu tergantung pada lebih spesifik apa yang Anda coba lakukan. Anda dapat, misalnya, membuat folder seperti ~ / Action / AutoInstallPKG / dan memberi tahu launchduntuk menginstal file .pkg atau .mpkg yang ditambahkan ke folder itu, dan kemudian memindahkannya ke samping sesudahnya.

Saya bermaksud melakukan hal seperti ini sejak lama, dan akhirnya saya menyatukannya. Anda dapat menemukannya di https://github.com/tjluoma/autopkginstall . Instruksi pemasangan disertakan di Github, jadi saya tidak akan mengulanginya di sini.

TJ Luoma
sumber
Terima kasih, ini adalah langkah maju yang besar bagi saya, tetapi masih bukan solusi akhir. Saya harus menggunakan paket ke banyak mac yang berbeda (jadi sudo bukan pilihan), di mana pengguna tidak diperbolehkan mengubah konfigurasi. Jadi cara terbaik (yang bekerja di windows dan linux) di mana file yang pengguna dapat mengklik dan sisanya akan dilakukan secara otomatis. Tapi saya akan memeriksa solusi Anda, mungkin dalam kombinasi dengan gunung es atau paket saya dapat menemukan solusi yang cocok. Jadi harap ini ok jika saya membiarkan pertanyaan ini terbuka beberapa hari lagi sehingga orang lain dapat berkontribusi di sana jawaban untuk ...
Megachip
3
Juga, untuk referensi di masa mendatang, detail seperti itu akan membantu untuk dimasukkan dalam pertanyaan awal Anda. Jawaban untuk pengguna akhir yang mencari untuk mengotomatisasi instalasi pada sistem mereka sama sekali berbeda untuk seseorang yang mencoba mendistribusikan ke banyak Mac dan banyak OS. Anda tidak akan menemukan cara yang bekerja dengan cara yang sama pada Windows dan Linux dan Mac OS X. Bahkan perusahaan sebesar Dropbox memiliki penginstal yang berbeda untuk setiap OS.
TJ Luoma
Anda benar, maaf soal itu. Mungkin saya harus menambahkan ini ke pertanyaan.
Megachip
Terima kasih lagi untuk semua pekerjaan Anda, saya sudah mempertanyakan pertanyaan saya [di sini] ( apple.stackexchange.com/questions/120026/… ). Instalasi otomatis Anda adalah hal yang baik, tetapi mengharuskan saya untuk memiliki ini "diinstal" pada setiap klien, yang tidak mungkin. Sepertinya pertanyaan saya di sini tidak cukup konkret. Maaf untuk itu
Megachip
2

Saya pikir Anda mungkin menari sangat dekat dengan jawaban Anda sendiri. Anda menyebutkan bahwa Anda tidak memiliki Remote Desktop Apple. Saya akan merekomendasikan mempertimbangkan untuk apa yang Anda coba lakukan. Saya menggunakannya saat Anda menjelaskannya sepanjang waktu - Saya memiliki file .pkg yang perlu diinstal pada banyak komputer di LAN saya, saya menyoroti komputer yang saya inginkan terinstal, dan memberi tahu Remote Desktop untuk menginstalnya. Memang lebih dari ini, tetapi AKAN melakukan instalasi jarak jauh ini untuk Anda. Ini adalah $ 80 untuk lisensi dengan klien tanpa batas.

Jika $ 80 adalah poin yang sulit - Anda bisa melihat munki , yaitu

"seperangkat alat yang, digunakan bersama dengan repositori paket dan metadata paket berbasis webserver, dapat digunakan oleh administrator OS X untuk mengelola pemasangan perangkat lunak (dan dalam banyak kasus, pemindahan) pada mesin klien OS X."

Saya belum menggunakannya sendiri, tetapi sangat menghormati orang-orang yang mengkodekannya dan menggunakannya dalam kehidupan nyata. Ini lebih mengatur dan berfungsi daripada Remote Desktop - tetapi memiliki lebih banyak opsi juga.

Semoga Anda dapat menggunakan salah satu dari dua program ini untuk melakukan apa yang Anda cari.

evilblender
sumber
Ya, tapi sejauh yang saya tahu Anda perlu akses root untuk menggunakan remote desktop?
Megachip
Anda akan memerlukan akses administrator untuk mengatur desktop jarak jauh pada mesin klien. ARD tidak akan membiarkan Anda menginstal file di mac apa pun yang Anda lihat di jaringan tidak akan. :)
evilblender
Kemungkinan ini tidak diberikan, maaf.
Megachip
2

Akhirnya, berkat solusi dr.nixon dari pertanyaan konkret saya , saya harus menangani pembuatan instalasi tanpa pengawasan sebagaimana dijelaskan dalam pertanyaan melalui Platypus .

Pengguna harus memulai aplikasi, sisanya akan dilakukan secara otomatis.

Megachip
sumber
Pengguna dapat memasukkannya ke item startup agar selalu mulai saat boot.
AnneTheAgile