Saya mengotomatisasi instalasi Mac saya menggunakan boneka. Sebagai bagian dari itu saya perlu menginstal beberapa program yang datang dalam format .dmg.
Saya menggunakan yang berikut ini untuk memasangnya:
sudo /usr/bin/hdiutil mount -plist -nobrowse -readonly -quiet -mountrandom /tmp Program.dmg
Masalahnya adalah bahwa beberapa file .dmg datang dengan lisensi terlampir, dan skrip macet menerima lisensi. (Tidak ada stdin / out saat berlari dengan boneka, jadi saya tidak bisa menyetujui secara manual untuk melanjutkan.)
Apakah ada cara untuk menyetujui atau memaksa lisensi?
Jawaban:
Jika Anda memiliki GUI dan dapat melakukan dua panggilan baris perintah secara paralel, Anda dapat menggunakan
dan
yang terakhir menjalankan AppleScript berikut:
Di
bash
, saya bisa menulissumber
Ini berfungsi untuk saya ketika saya menemukan .dmg yang berisi EULA yang ingin saya instal melalui baris perintah tanpa interaksi pengguna ...
(catatan: Saya cukup yakin tidak semua pilihan di atas diperlukan untuk bypass EULA, seperti
-nobrowse
,-noverify
,-noautoopen
,-mountpoint
Namun, saya menggunakan mereka dan saya tidak tes tanpa mereka jadi saya tidak ingin mengklaim sesuatu yang saya. belum diuji.)Yang akhirnya saya dapatkan adalah direktori
di mana
right_here/
terkandung kontenfoo.dmg
tanpa diminta untuk EULA.Pastikan untuk melepaskan ketika Anda selesai!
Untuk informasi lebih lanjut: hdiutil (1) Mac OS X Pedoman Halaman .
YMMV
sumber
Jika hanya perlu "Y" yang diketikkan, maka pipa perintah yes ke perintah hdiutil:
Itu akan meniru menekan 'y' dan kembali pada baris perintah.
Untuk mengetik sesuatu yang lain, cukup letakkan di baris perintah sebagai parameter:
Itu akan memasukkan 'terima' ke dalam skrip.
Perhatikan bahwa jika skrip meminta input berulang kali, perintah yes akan memasukkan banyak entri. Anda mungkin melihat output seperti 'broken pipe' - ini hanya berarti bahwa perintah yang Anda pilih berhenti sementara 'ya' masih mengirim input.
sumber
Saya baru-baru ini menemukan DMG yang memiliki EULA dan itu benar-benar menjengkelkan saya karena saya tidak bisa skrip di sekitarnya. Saya tahu jika saya mengubah DMG ke CDR, itu melewati EULA pada pemasangan CDR.
Inilah yang saya lakukan:
Semoga ini membantu.
sumber
yes | hdiutil...
solusi akan menggantung bagi saya ketika dipanggil dari skrip python untuk beberapa alasan gila.Jika Anda memiliki EULA multi-halaman yang perlu Anda terima, Anda bisa sampai ke bagian accept dengan meletakkan
q
sebelum perintah accept Anda yang tersisa (karena yang Anda butuhkan hanyalah perintah keluar yang diterimaless
, Anda juga bisa menggunakanZZ
atauQ
).Misalnya, jika EULA mengharuskan Anda mengetik a
y
untuk menerima, Anda akan menjalankan:sumber
Bukankah Anda seharusnya menggunakan alat boneka sendiri untuk menginstal paket? Saya admin radmind sendiri dan saya tidak terbiasa dengan boneka, tetapi pemeriksaan pada wiki mereka mengungkapkan bahwa ada alat yang disebut pkgdmg yang mungkin melakukan hal yang sama dengan apa yang Anda coba capai.
http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Mac_Osx#packagepkgdmg
sumber