Come posso aprire manualmente un file .pkg?

60

Alcune applicazioni arrivano in file .pkg e ti chiedono la password di amministratore, anche se tutto ciò che fanno è copiare il binario in / Applicazioni.

Mi piace avere le mie applicazioni in ~ / Applicazioni, e non mi piace dare autorizzazioni amministrative a tutto ciò che non è dalla nave madre.

C'è un modo per aprire manualmente il file .pkg ed estrarre l'applicazione? C'è PackageMaker negli Strumenti per sviluppatori, ma non sembra farlo (ha prodotto un output che mi fa pensare che non ci siano script o altri pezzi nell'installer, solo l'applicazione).

    
posta Thilo 09.06.2011 - 16:23
fonte

9 risposte

66

Se fai clic con il pulsante destro del mouse e fai clic su Mostra contenuto pacchetto otterrai alcuni file in una cartella Contenuti. (Nota: se non vedi Mostra contenuto pacchetto dovrai aprire Terminal.app ed eseguire pkgutil --expand mystubbornpackage.pkg path/to/expand )

Uno è un file BOM (distinta materiali) che diventa una ricevuta che è possibile utilizzare per disinstallare l'app. Questo file contiene un manifest di tutto ciò che il pacchetto installerà e dove; per leggere questo file, utilizzare lsbom .

La maggior parte dei pacchetti (sto usando Office 2008 qui) hanno anche un file Archive.pax.gz, questo contiene tutto ciò che il programma di installazione si sposterà nelle varie cartelle come indicato nel file BOM. La maggior parte delle app sembra avere l'app in questo archivio, sebbene il trascinamento in / Applications possa lasciarlo senza framework che deve essere eseguito; quindi dovrai capire di quali altri file ha bisogno e dove ne ha bisogno per farlo funzionare.

Inoltre, tutti i pacchetti possono registrare i messaggi, se colpisci Cmd-L (o scegli l'opzione Registro installatore dal menu Finestra , puoi visualizzarli mentre vengono generati. Ciò potrebbe darti un'idea di quali cose extra sta installando, o almeno alcune informazioni in più se non sei sicuro del pacchetto.

    
risposta data 09.06.2011 - 17:55
fonte
33

Oltre a ciò che Matthew Hall ha detto, puoi anche premere Cmd-I nell'app Installer per vedere quali file installerà il programma di installazione e dove.

    
risposta data 09.06.2011 - 18:28
fonte
7

Se non ti fidi abbastanza del programma di installazione da fornire le autorizzazioni amministrative per l'installazione, allora perché ti fidi del binario in / Applicazioni?

Pacifist ti consente di esaminare i file del pacchetto. Questo non ti consente di "estrarre il file binario".

    
risposta data 09.06.2011 - 16:34
fonte
4

In alternativa puoi provare,

sudo installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/

o

installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
    
risposta data 09.06.2011 - 18:01
fonte
2
  1. Dopo aver aperto il pacchetto, cerca il file Archive.pax.gz che è stato menzionato in precedenza.

  2. Crea una nuova cartella vuota sul tuo desktop nominandola come desideri. Di solito li chiamo "xxxx" o "zzzz" ecc. Per semplificare la digitazione più tardi.

  3. Opzione: trascina una copia del file Archive.pax.gz nella nuova cartella "xxxx" sul desktop.

    Se il file si trova all'interno di un supporto di sola lettura, puoi semplicemente trascinarlo nella cartella "xxxx" senza il tasto Opzione per creare una copia.

  4. Ora apri Terminal.app e nella riga di comando accedi alla tua nuova directory "xxxx" ed elenca i contenuti della directory per confermare che il tuo file Archive.pax.gz è lì:

    cd ~/Desktop/xxxx
    ls -al
    
  5. Ora ci sono due semplici comandi da inserire:

    gunzip -v Archive.pax.gz
    

    Gzip ti dirà che ha sostituito "Archive.pax.gz" con "Archive.pax") Ora elenca di nuovo il contenuto della directory per confermarlo.

    pax -r -f Archive.pax
    

    (Devi separare -r e -f , poiché -rf non funzionerà)

  6. Infine, elenca nuovamente i contenuti della directory con ls -al . Oltre al tuo file Archive.pax, ora vedrai una gerarchia di directory che probabilmente contiene una o più directory.

    I file in quella gerarchia di directory ti illustreranno dove il programma di installazione di OS X installa i file sul tuo sistema come se la tua directory "xxxx" fosse la directory root "/".

  7. Se lo desideri, puoi copiare manualmente quei file nelle loro destinazioni.

risposta data 13.08.2011 - 15:09
fonte
1

pkgutil --expand non mi è riuscito con il seguente errore:

Error encountered while creating .. Error 17: File exists

Ma sono riuscito a estrarre i file con xar invece:

xar -xvf foo.pkg

    
risposta data 20.12.2017 - 05:14
fonte
1

Lo strumento migliore per l'ispezione dei file del pacchetto è Pacchetto sospetto . Permette anche di copiare i file dal pacchetto.

Non solo fornirà tutte le informazioni necessarie nell'app ma installerà anche un plug Quick Look in modo da selezionare semplicemente il file del pacchetto e premere la barra spaziatrice per aprire una finestra con le informazioni più essenziali.

    
risposta data 20.12.2017 - 08:14
fonte
0

Il Unarchiver può farlo; farà lo stesso di pkgutil --expand ma usando il drag-and-drop. È in ogni caso un sostituto migliore per l'Archive Utility.app di Apple.

    
risposta data 15.11.2013 - 21:37
fonte
0

UnArchiver ha fatto il trucco.

Installa UnArchiver, apri UnArchiver; mentre è aperto - fai doppio clic su quel fastidioso MAMP_MAMP_3.5.pkg

Segui i passaggi per installare MAMP.

    
risposta data 12.06.2016 - 21:23
fonte

Leggi altre domande sui tag