Pkg dosyasının katılımsız kurulumu


14

Bir pkg paketinin katılımsız kurulumu oluşturma imkanı var mı?

Örneğin, bir mpkg oluşturmak ve paketi konsol ve yükleyici aracılığıyla yükleyen bir komut dosyası çalıştırmak.

Arka plan: Birçok osx son kullanıcısına bir paket dağıtmak zorunda kaldım. Apple masaüstümüz yok ve bu makinelere root erişimi yok. bunlar önceden yapılandırılmış bir paket paketidir, ancak kullanıcı paketi normal şekilde başlatırsa, ön yapılandırmanın üzerine yazılır. Pencerelerde bunu sessiz kurulum ile bir msi başlatan kendi kendine çalıştırılabilir bir arşivle anlıyorum. Linux üzerinde rpm / deb paketleri inşa ediyorum ama osx üzerinde uygun bir yol bulamadım :(

Yanıtlar:


17

Kısa Cevap: evet.

Uzun Cevap: Evet, ama… bu soruya tam bir cevap teknik bir cevap ve pratik bir endişe içeriyor.

İlk olarak, teknik cevap

Bu sözdizimini kullanarak bir .pkg veya .mpkg yükleyebilirsiniz:

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

Yükleyici doğru şekilde 'imzalanmamış' ise, -allowUntrusted

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

Ayrıca belirtmek gerekebilir nerede bunu kullanarak yüklü istiyorum -target /(Bu 100% emin değilim gereken , ama iyi bir fikirdir):

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

Şimdi sorun, sudoçalıştırmayı denediğinizde sizden yönetici şifrenizi isteyecek olmasıdır installer. Bunu otomatikleştirmek istiyorsanız, Mac'inize sudoyükleyiciyi çalıştırırken şifrenizi istememesini söylemeniz gerekir. Bunu yapmak için, bu satırı /etc/sudoersdosyanıza ekleyebilirsiniz :

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

man visudoBu dosyayı düzenleme ile ilgili talimatlar için bkz .

İkincisi, pratik endişe

Mac'inizi kullanan tek kişi sizseniz, yukarıdaki satırı eklemek /etc/sudoersçok önemli değildir.

Ancak, bu paylaşılan bir Mac ise, 'admin' grubundaki diğer kişiler /usr/sbin/installerparolaları sorulmadan çalışabilir .

Ayrıca, eğer birisi 'yönetici' hesabınıza girerse, teorik olarak da kötüye neden olabilir /usr/sbin/installer. Tam olarak ne yapacaklarını düşünmeme rağmen kaybolduğum halde, güvenliğe karşı kolaylık dengesi.

Üçüncü olarak, bir github betiği

İşlemi günlüğe kaydetme gibi bazı güzel şeyler yapmak için pkginstall.sh yazdım , ayrıca paketi yükledikten sonra yeniden başlatmanız gerekip gerekmediğini size söyledim.

Son fakat en az değil: "Nasıl?"

Kurulumu nasıl otomatikleştirmek istediğinize göre, bu, yapmaya çalıştığınız şeyin daha ayrıntılı özelliklerine bağlıdır. Örneğin, ~ / Action / AutoInstallPKG / gibi bir klasör oluşturabilir ve launchdbu klasöre eklenen tüm .pkg veya .mpkg dosyalarını kurup daha sonra kenara taşımanızı söyleyebilirsiniz.

Uzun zamandır böyle bir şey yapmayı kastediyorum ve bu yüzden sonunda bir araya getirdim. Https://github.com/tjluoma/autopkginstall adresinde bulabilirsiniz . Kurulum talimatları Github'da verilmiştir, bu yüzden burada tekrar etmeyeceğim.


Teşekkürler, bu benim için büyük bir adım, ama yine de nihai çözüm değil. Kullanıcının yapılandırmayı değiştirmesine izin verilmeyen birçok farklı mac'e (sudoes bir seçenek değil) bir paket dağıtmak zorundayım. Böylece kullanıcının tıklayabileceği ve geri kalanı otomatik olarak yapılacak bir dosya (windows ve linux üzerinde çalışır) en iyi yolu. Ancak çözümünüzü kontrol edeceğim, buzdağı veya paketlerle birlikte mümkün olan bir çözüm bulabilirim. Umarım bu soruyu birkaç gün daha açık bırakırsam, diğerleri orada cevaplara katkıda bulunabilir ...
Megachip

3
Ayrıca, ileride başvurmak üzere, bunlar gibi ayrıntılar ilk sorunuza dahil edilmenize yardımcı olacaktır. Sistemlerindeki kurulumları otomatikleştirmek isteyen bir son kullanıcının cevabı, birçok Mac'e ve birçok OS'ye dağıtmaya çalışan biri için tamamen farklıdır. Windows, Linux ve Mac OS X'te aynı şekilde çalışan bir yol bulamazsınız. Dropbox kadar büyük şirketlerin bile her işletim sistemi için farklı yükleyicileri vardır.
TJ Luoma

Haklısın, bunun için üzgünüm. Muhtemelen bunu soruya eklemeliyim.
Megachip

Tüm çalışmalarınız için tekrar teşekkürler, sorumu [burada] somutlaştırıyorum ( apple.stackexchange.com/questions/120026/… ). Autopkginstall güzel bir şey, ama bu her istemcide "yüklü" olmasını gerektirir, ki bu mümkün değil. Benim sorum burada yeterince somut değildi. Bunun için üzgünüm
Megachip

2

Sanırım kendi cevabınıza çok yakın dans ediyor olabilirsiniz. Apple'ın Uzak Masaüstü'nüz olmadığını belirtiyorsunuz. Yapmaya çalıştığınız şey için düşünmenizi tavsiye ederim. Her zaman açıkladığınız gibi kullanıyorum - LAN'ımdaki birden fazla bilgisayara yüklenmesi gereken bir .pkg dosyası var, yüklenmesini istediğim bilgisayarları vurguladım ve Uzak Masaüstü'ne yüklemesini söyledim. Bundan çok daha fazlasını yapar, ancak bu uzaktan yüklemeleri sizin için YAPACAKTIR. Sınırsız müşteri lisansı için 80 $ 'dır.

80 $ bir anlaşmazlık noktası ise - bakabilir Munki olan

"web sunucusu tabanlı bir paket deposu ve paket meta verileri ile birlikte kullanılan bir dizi araç, OS X yöneticileri tarafından OS X istemci makinelerinde yazılım yüklemelerini (ve çoğu durumda kaldırma işlemlerini) yönetmek için kullanılabilir."

Kendim kullanmadım, ancak kodlayan ve gerçek hayatta kullanan insanlara çok saygı duyuyorum. Uzak Masaüstü'nden biraz daha fazla ayarlanmış ve çalışmaktadır - ancak çok daha fazla seçeneğe sahiptir.

Umarım bu iki programdan birini kullanarak peşinde olduğun şeyi yapabilirsin.


Evet, ama bildiğim kadarıyla uzak masaüstünü kullanmak için root erişimine ihtiyacınız var mı?
Megachip

İstemci makinelerde uzak masaüstünü kurmak için yönetici erişimine ihtiyacınız olacaktır. ARD sadece ağ üzerinde gördüğünüz herhangi bir mac üzerinde dosyaları kurmanıza izin vermez. :)
evilblender

Bu olasılık verilmedi, üzgünüm.
Megachip

2

Son olarak, somut sorumun dr.nixon çözümü sayesinde, Platypus aracılığıyla soruda açıklandığı gibi katılımsız bir kurulumun oluşturulmasını ele almalıyım .

Kullanıcı uygulamayı başlatmak zorunda, gerisi otomatik olarak yapılacaktır.


Kullanıcı her zaman önyüklemede başlaması için başlangıç ​​öğelerine koyabilir.
AnneTheAgile
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.