Ho un'app ho bisogno di creare un programma di installazione per, e tutto il programma di installazione deve fare (oltre a copiare l'app) è eseguire uno script (o eseguibile) che non fa parte del app stessa. Qualche aiuto su come posso farlo? Vedo nel scheda Requisiti c'è un Risultati di Script azione, e c'è anche la preinstallare azioni nella scheda azioni che ha un Apri file azione. Ognuno di questi lavori o dovrei cercare altrove?Utilizzo di PackageMaker per eseguire uno script all'installazione
risposta
Here è un buon How-to
Ci sono 7 tipi di script che può essere lanciato durante il processo di installazione:
InstallationCheck: Questo script viene lanciato all'inizio del processo di installazione (anche prima della fase di autenticazione). Può essere usato per verificare che il pacchetto possa essere installato su questo computer.
VolumeCheck: Questo script viene avviato nel passaggio "Seleziona destinazione". Viene utilizzato per determinare su quale volume è possibile installare il pacchetto.
preflight: Questo script viene avviato subito dopo che l'utente ha fatto clic sul pulsante "Installa".
preinstallazione/preupgrade: Questo script viene lanciato dopo lo script di preflight se c'è una (nel caso di una singola installazione del pacchetto); altrimenti subito dopo che l'utente ha fatto clic sul pulsante "Installa".
Come vedi, ci sono 2 tipi di script qui. Il preinstallato viene lanciato quando il pacchetto non è mai stato installato (da un punto di vista Installer.app), il preupgrade viene avviato quando il pacchetto è già stato installato. Per determinare se un pacchetto è già stato installato o meno, Installer.app sta dando un'occhiata al contenuto della seguente directory:/Library/Receipts. Se c'è un file denominato PackageName.pkg al suo interno, il pacchetto è già stato installato, altrimenti è la prima installazione.
postinstall/post-aggiornamento: Questo script viene avviato dopo che i file nel pacchetto sono stati installati. Vedi (preinstall/preupgrade) per vedere quale è stato lanciato.
postflight: Questo script viene avviato dopo lo script postinstall/postupgrade o quando il pacchetto è stato installato.
Questo articolo è stato aggiornato, ma ha alcune informazioni molto utili sugli script a metà. Cerca la tabella che mostra le variabili della riga di comando viste da shell e perl, oltre ad alcuni valori di stato di uscita utili.
Non mi sembrava giusto copiare le informazioni qui, quindi scuse per aver risposto per riferimento. –
Umm, sei collegato allo stesso articolo che la risposta di Epatel stava già collegando a .. – yairchu
Sono appena riuscito a includere uno script Shell nel pacchetto che ho creato con PackageMaker. Ho dovuto aggiungere la mia app agli elementi di login dopo l'installazione, quindi ho creato uno script chiamato postflight.sh
e lo ho inserito in una cartella.(sembra che funzioni con qualsiasi posizione)
E poi nel mio pacchetto, ho Applicazioni. In Contenuto, Pacchetto: Applicazioni, nella scheda Script, scelgo lo postflight.sh
nella sezione Postflight. Questo è tutto.
miei postflight.sh
inizia con
#!/bin/bash
e quindi ha qualche script per mettere l'applicazione negli elementi di login. Quando non ce l'ho, potrei fare il pacchetto, ma l'installazione fallì. Spero che questo sia utile.
"solo una cartella". Grazie. L'unico pezzo di dati che mantiene il mio pacchetto dalla compilazione è dove mettere il maledetto script di installazione. – mcandre
Nel caso questo aiuti qualcuno: se la CLI del packagemaker viene utilizzata con l'opzione --scripts, i nomi dei file di script non dovrebbero avere un'estensione .sh. Basta nominarli preflight, postflight, ecc. – pepsi
Grazie, ma ho una domanda veloce: ho creato lo script postinstall, ma come faccio a fare riferimento all'eseguibile che voglio eseguire, in altre parole come includo quell'eseguibile (non parte dell'applicazione reale) nel pacchetto e come sarebbe il suo percorso (nello script postinstall). –