Installazione automatica del file pkg


14

Esiste la possibilità di creare un'installazione automatica di un pacchetto pkg?

Ad esempio, creando un mpkg ed eseguendo uno script che ha installato il pacchetto tramite console e programma di installazione.

Sfondo: ho dovuto distribuire un pacchetto su molti utenti finali osx. Non abbiamo 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 rendo conto con un archivio eseguibile automaticamente che avvia un msi con installazione silenziosa. Su Linux ho creato pacchetti rpm / deb ma su osx non ho trovato il modo giusto :(

Risposte:


17

Risposta breve: si.

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 .pkg o .mpkg usando questa sintassi:

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

Se il programma di installazione non è 'firmato' correttamente, dovrai aggiungerlo -allowUntrusted

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

Potrebbe anche essere necessario specificare dove desideri installarlo, utilizzando -target /(Non sono sicuro al 100% che ciò sia necessario , ma è una buona idea):

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

Ora, il problema è che sudoti chiederà la password dell'amministratore quando tenti di eseguire installer. Se vuoi automatizzare questo, devi dire al tuo Mac di non richiedere la tua sudopassword quando esegui il programma di installazione. Per fare ciò, puoi aggiungere questa linea al tuo /etc/sudoersfile:

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

Consulta le man visudoistruzioni per la modifica di quel file.

In secondo luogo, la preoccupazione pratica

Se sei l'unica persona che utilizza il tuo Mac, aggiungere la riga sopra /etc/sudoersnon è un grosso problema.

Tuttavia, se si tratta di un Mac condiviso, altre persone che fanno parte del gruppo "admin" potranno essere eseguite /usr/sbin/installersenza che venga richiesta la password.

Inoltre, ovviamente, se qualcuno entra nel tuo account "admin", anche loro, in teoria, potrebbero causare problemi /usr/sbin/installer. Sebbene non riesca a pensare esattamente a cosa farebbero, è un compromesso tra sicurezza e convenienza.

Terzo, uno script github

Ho scritto pkginstall.sh per fare alcune cose carine come registrare il processo, oltre a dirti se devi riavviare o meno dopo l'installazione del pacchetto.

Ultimo ma non meno importante: automatizzare "come?"

Per quanto riguarda come si desidera automatizzare l'installazione, ciò dipende da dettagli più specifici di ciò che si sta tentando di fare. Ad esempio, è possibile creare una cartella come ~ / Action / AutoInstallPKG / e dire launchddi installare tutti i file .pkg o .mpkg che vengono aggiunti a quella cartella, e poi spostarli da parte in seguito.

Intendo fare qualcosa del genere da molto tempo, e alla fine l'ho messo insieme. Puoi trovarlo su https://github.com/tjluoma/autopkginstall . Le istruzioni di installazione sono incluse in Github, quindi non le ripeterò qui.


Grazie, questo è un grande passo avanti per me, ma non è ancora la soluzione finale. Devo distribuire un pacchetto su molti mac diversi (quindi sudoes non è un'opzione), in cui l'utente non è autorizzato a modificare la configurazione. Quindi il modo migliore (che funziona su Windows e Linux) in cui un file su cui l'utente può fare clic e il resto verrà fatto automaticamente. Ma controllerò la tua soluzione, possibile in combinazione con iceberg o pacchetti, posso trovare una soluzione corrispondente. Quindi spero che vada bene se lascio aperta questa domanda ancora qualche giorno in modo che altri possano contribuire lì risposte a ...
Megachip,

3
Inoltre, per riferimento futuro, dettagli come quelli sarebbero utili da includere nella domanda iniziale. La risposta per un utente finale che cerca di automatizzare le installazioni sul proprio sistema è completamente diversa per chi cerca di distribuire su molti Mac e molti sistemi operativi. Probabilmente non troverai un modo che funzioni allo stesso modo su Windows, Linux e Mac OS X. Anche le aziende grandi come Dropbox hanno installatori diversi per ciascun sistema operativo.
TJ Luoma,

Hai ragione, mi dispiace per quello. Forse dovrei aggiungere questo alla domanda.
Megachip,

Grazie ancora per tutto il tuo lavoro, ho concretizzato la mia domanda [qui] ( apple.stackexchange.com/questions/120026/… ). Il tuo autopkginstall è una cosa carina, ma mi richiede di avere questo "installato" su ogni client, il che non è possibile. Sembra che la mia domanda qui non fosse abbastanza concreta. Scusatemi per questo
Megachip,

2

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

Se $ 80 è un punto critico , potresti guardare Munki , che è

"una serie di strumenti che, utilizzati insieme a un repository di pacchetti e metadati basati su server web, possono essere utilizzati dagli amministratori di OS X per gestire le installazioni di software (e in molti casi le rimozioni) su macchine client OS X."

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ù configurato e funzionante rispetto al Desktop remoto, ma ha anche molte più opzioni.

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


Sì, ma per quanto ne so hai bisogno dell'accesso root per usare il desktop remoto?
Megachip,

Sarà necessario l'accesso come amministratore per configurare il desktop remoto sui computer client. ARD non ti consentirà semplicemente di installare i file su qualsiasi Mac che vedi su una rete sarà un po 'inutile. :)
evilblender

Questa possibilità non è data, scusa.
Megachip,

2

Infine, grazie alla soluzione dr.nixon della 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.


L'utente può inserirlo negli elementi di avvio per avviarlo sempre all'avvio.
AnneTheAgile,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.