Che cos'è il formato di file PKG?
L'estensione .pkg è utilizzata, tra gli altri, all'interno del sistema operativo macOS, sviluppato da Apple. I file .pkg contengono pacchetti di file di installazione compressi con il formato interno XAR, il cui scopo è installare un'applicazione sui computer Mac. I file .pkg sono in realtà archivi XAR con un'estensione diversa e una gerarchia di file rigorosamente definita: un Sommario (Table of Contents) in XML, un payload CPIO compresso che trasporta i file dell'applicazione e script di installazione opzionali.
L'obiettivo del progetto XAR è creare un formato di archivio facilmente estensibile, e questo rende il .pkg un veicolo di distribuzione flessibile per il software macOS. Durante lo sviluppo del formato .pkg, l'obiettivo principale era creare un meccanismo che facilitasse il lavoro durante il processo di installazione - e questa priorità è stata raggiunta. L'installazione e l'aggiornamento tramite file .pkg possono essere eseguiti facilmente attraverso l'app Installer integrata in macOS o il comando installer nel Terminale. L'installazione del software può essere eseguita singolarmente o insieme a uno script pre- o post-installazione responsabile di tale processo.
L'attuale formato .pkg «piatto» (flat) è stato introdotto in Mac OS X 10.5 Leopard (2007). I pacchetti moderni devono essere firmati con un certificato Apple Developer e notarizzati per la distribuzione al di fuori del Mac App Store.
I file .pkg sono attualmente utilizzati come elencato di seguito:
- come pacchetti di installazione nei sistemi Apple - sia su computer con macOS che su iPhone (distribuiti tramite MDM o Apple Configurator)
- da Sony, per l'installazione di software e applicazioni sulle console PlayStation 3, PlayStation 4 e PlayStation 5
- storicamente dai sistemi Symbian per contenere informazioni di configurazione all'interno dei pacchetti di installazione
I formati correlati includono le immagini disco .DMG utilizzate per la distribuzione di app, i meta-pacchetti .MPKG che raggruppano più programmi di installazione .pkg e gli archivi firmati .XIP utilizzati da Xcode.
Sicurezza e incolumità
RISCHIO: MEDIUMUn .pkg per macOS può eseguire script preinstall/postinstall con privilegi elevati, quindi è più pericoloso di un'app da trascinare in Applicazioni - malware e adware sono stati distribuiti come programmi di installazione .pkg. Esegui solo pacchetti da fonti affidabili; macOS Gatekeeper avverte dei pacchetti non firmati/non notarizzati, e dovresti prestare attenzione. Ispeziona qualsiasi cosa incerta con Suspicious Package (mostra gli script e il firmatario) prima di installare.
Dettagli del formato
in sintesi- PlayStation Package - Pacchetto crittografato di gioco/DLC/aggiornamento specifico per console PS3/PS4/PS5/Vita; si installa solo sulla console corrispondente, non su un computer.
- Symbian Installer Script (.pkg) - Script di compilazione testuale obsoleto utilizzato dal vecchio packaging Symbian/Nokia SIS.
- Apple Newton Package - Formato di pacchetto raro e obsoleto per la piattaforma Apple Newton fuori produzione (il vecchio nome del database per questa estensione).
Programmi che aprono file PKG
Dettagli tecnici
specifiche approfondite| Formato interno | Archivio binario XAR (eXtensible ARchive) |
| Magic bytes | `78 61 72 21` (`xar!`) all'offset 0 del file; identifica un moderno pacchetto piatto - i vecchi pacchetti bundle sono directory senza una singola firma di file |
| Tipo MIME | `application/x-xar` |
| Sommario (Table of Contents) | Documento XML memorizzato non compresso all'interno dell'intestazione XAR, che indicizza il checksum di ogni file, il metodo di compressione e i metadati |
| Formato Payload | Archivio CPIO compresso con gzip, bzip2 o lzma all'interno del contenitore XAR |
| Distinta dei materiali (Bill of Materials) | File `Bom` all'interno del pacchetto che elenca i percorsi installati, i proprietari dei file, i permessi e le dimensioni |
| Script di installazione | Script di shell `preinstall` e `postinstall` eseguiti come root prima e dopo l'installazione del payload |
| Firma del codice | Firmato con un certificato Apple Developer ID Installer; firma verificata da macOS Gatekeeper all'avvio |
| Notarizzazione | Notarizzazione Apple richiesta per i pacchetti distribuiti al di fuori del Mac App Store su macOS 10.15 e versioni successive |
| Varianti del pacchetto | Il `.pkg` piatto è un singolo file XAR; il `.pkg` bundle legacy (pre-10.5) è una struttura di directory - entrambi condividono la stessa estensione |
| Installazione da riga di comando | `sudo installer -pkg file.pkg -target /` |
| Estrazione senza installazione | `xar -xf file.pkg` decomprime l'archivio nella directory corrente senza eseguire gli script di installazione |
| XML di distribuzione | File `Distribution` opzionale alla radice di un archivio prodotto che controlla le installazioni a scelta multipla o multi-pacchetto con logica JavaScript incorporata |
| Componente vs. archivio prodotto | Un `.pkg` può essere un semplice pacchetto componente o un archivio prodotto che raggruppa più pacchetti componenti in un unico programma di installazione |
| Rilasciato | macOS flat .pkg (XAR-based) since Mac OS X 10.5 Leopard (2007); earlier bundle .pkg since NeXTSTEP/Mac OS X 10.0 |
| Standard aperto | Sì · royalty-free |
| Specifica | github.com |
Conversioni PKG
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PKG.