Installazione automatica del file pkg

13

C'è qualche possibilità di creare un'installazione automatica di un pacchetto pkg?

es. creare un mpkg ed eseguire uno script che ha installato il pacchetto tramite console e programma di installazione.

Sfondo: Ho dovuto distribuire un pacchetto su molti utenti finali di osx. Non abbiamo un desktop Apple e nessun accesso root a queste macchine. si tratta di un pacchetto pkg preconfigurato, ma se l'utente lo avvia in modo normale, la pre-configurazione verrà sovrascritta. Su Windows me ne accorgo con un archivio auto-eseguibile che lancia un msi con installazione silenziosa. Su Linux costruisco pacchetti rpm / deb ma su osx non ho trovato alcun modo corretto: (

    
posta Megachip 11.12.2013 - 17:04
fonte

3 risposte

2

Infine, grazie alla dr.nixon soluzione di la mia domanda concreta , devo gestire la creazione di un'installazione automatica come descritto nella domanda tramite Platypus .

L'utente deve avviare l'app, il resto verrà eseguito automaticamente.

    
risposta data 06.02.2014 - 16:45
fonte
15

Risposta breve: sì.

Risposta lunga: Sì, ma ... una risposta completa a questa domanda include una risposta tecnica e una preoccupazione pratica.

Innanzitutto, la risposta tecnica

Puoi installare un file .pkg o .mpkg usando questa sintassi:

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

Se il programma di installazione non è "firmato" correttamente, dovrai aggiungere -allowUntrusted

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

Potresti anche aver bisogno di specificare dove vuoi che sia installato, usando -target / (non sono sicuro al 100% questo è richiesto , ma è una buona idea ):

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

Ora, il problema è che sudo ti chiederà la password di amministratore quando tenti di eseguire installer . Se desideri automatizzarlo, devi dire al tuo Mac di non richiedere la tua password sudo quando esegui il programma di installazione. Per fare ciò, puoi aggiungere questa linea al tuo file /etc/sudoers :

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

Vedi man visudo per le istruzioni sulla modifica di quel file.

In secondo luogo, la preoccupazione pratica

Se sei l'unica persona che usa il tuo Mac, aggiungere la riga sopra a /etc/sudoers non è un grosso problema.

Tuttavia, se questo è un Mac condiviso, le altre persone che si trovano nel gruppo "admin" saranno in grado di eseguire /usr/sbin/installer senza che venga richiesta la loro password.

Inoltre, ovviamente se qualcuno entra nel tuo account "admin", anche loro potrebbero, teoricamente, causare danno con /usr/sbin/installer . Anche se non riesco a pensare esattamente a quello che farebbero, è un compromesso tra sicurezza e convenienza.

Terzo, uno script github

Ho scritto pkginstall.sh per fare alcune cose carine come registrare il processo, come pure come dirti se dovresti riavviare o meno dopo aver installato il pacchetto.

Ultimo ma non meno importante: Automatizza "come?"

Per quanto riguarda il modo in cui si desidera automatizzare l'installazione, ciò dipende da più specifiche di ciò che si sta tentando di fare. Ad esempio, puoi creare una cartella come ~ / Action / AutoInstallPKG / e dire launchd per installare qualsiasi file .pkg o .mpkg che viene aggiunto a quella cartella, quindi spostarlo in un secondo momento.

Ho intenzione di fare qualcosa del genere per molto tempo, e così finalmente l'ho messo insieme. Puoi trovarlo all'indirizzo link . Le istruzioni per l'installazione sono incluse in Github, quindi non le ripeterò qui.

    
risposta data 11.12.2013 - 18:41
fonte
2

Penso che potresti ballare molto vicino alla tua risposta. Hai detto che non hai il Desktop remoto di Apple. Consiglierei di prenderlo in considerazione per quello che stai cercando di fare. Lo uso come lo descrivete tutto il tempo: ho un file .pkg che deve essere installato su più computer nella mia LAN, evidenzio i computer su cui voglio installarlo e dico a Remote Desktop di installarlo. Fa molto più di questo, ma farà queste installazioni remote per te. È $ 80 per una licenza con client illimitati.

Se gli $ 80 sono un punto critico, puoi consultare munki , che è

"a set of tools that, used together with a webserver-based repository of packages and package metadata, can be used by OS X administrators to manage software installs (and in many cases removals) on OS X client machines."

Non l'ho usato da solo, ma ho molto rispetto per le persone che lo codificano e lo usano nella vita reale. È un po 'più impostato e funziona rispetto a Desktop remoto, ma ha anche molte più opzioni.

Spero che tu possa usare uno di questi due programmi per fare ciò che cerchi.

    
risposta data 17.12.2013 - 21:53
fonte

Leggi altre domande sui tag