# Pakket (computerbestand)

In computertermen is een pakket (of package) een samengesteld bestand of een directory die een aantal bestanden bevat, maar welke als één bestand aan de gebruiker getoond wordt.
Het concept heeft z'n oorsprong in NeXTSTEP en werd op de Apple Macintosh geïntroduceerd in Mac OS versie 9; ook Mac OS X en GNUstep (een opensource-opvolger van NeXTSTEP) maken veel gebruik van pakketten en pakketbeheer. De meeste OS X-programma's zijn bijvoorbeeld pakketten, en veel "bestanden" die door deze programma's gemaakt worden, zijn eigenlijk pakketten. De packages in de programmeertaal Java zijn op een harde schijf vaak opgeslagen in gecomprimeerde ZIP- of JAR-bestanden en worden pas uitgepakt als een programma in het geheugen van een computer geladen wordt.
Omdat het besturingssysteem pakketten kan herkennen, merkt de gebruiker niet dat het eigenlijk een directory is. Wanneer bijvoorbeeld met de muis gedubbelklikt wordt op een normale directory, dan wordt die directory geopend en z'n inhoud getoond; maar dubbelklikken op een pakket dat een programma voorstelt, zorgt ervoor dat het programma dat "in" het pakket zit, geopend wordt.
Onder OS X kan de inhoud van een pakket zichtbaar gemaakt worden door op het icoon ervan te klikken terwijl de Ctrl-toets op het toetsenbord ingedrukt is (of door te klikken met de rechtermuisknop), en uit het daarop verschijnende menu Toon pakketinhoud te kiezen.

## Programmabundels

Op zowel Mac OS X als GNUstep hebben programmabundels dezelfde functie en opbouw. In het pakket bevindt zich meestal maar één directory, Contents genaamd, met daarin vaak de volgende subdirectory's:
* MacOS: hierin bevindt zich het eigenlijke programma; onder GNUstep heeft deze directory meestal de naam van het programma.
* Resources: hierin staan afbeeldingen, geluiden, tekstbestanden, enz. die het programma altijd nodig heeft (zoals afbeeldingen die in de vensters weergegeven worden); ook staan in deze directory weer subdirectory's met taalbestanden die ervoor zorgen dat het programma zich automatisch aanpast aan de taal waarop het besturingssysteem is ingesteld.
* Frameworks en/of Shared Frameworks: de bestanden in deze directory's zijn standaardbestanden die bijvoorbeeld ook in andere programma's gebruikt (kunnen) worden.
* PlugIns: hierin staan uitbreidingen die voor het programma geïnstalleerd zijn.
De voornaamste functie van pakketten is om te zorgen dat alle benodigde onderdelen van een programma bij elkaar gehouden worden. Wanneer een programma geïnstalleerd wordt onder Windows, bijvoorbeeld, worden er vaak op allerlei verschillende plaatsen op de harde schijf bestanden weggeschreven die het programma nodig heeft. Hierdoor is het moeilijk het programma te verplaatsen of te wissen, omdat het al die bestanden op vaste plaatsen verwacht; staan ze daar niet, dan weigert het programma vaak dienst. Een programma dat in een pakket zit, heeft daarentegen alle benodigde bestanden bij zich in dat pakket. Het kan daarom zonder problemen verplaatst of gewist worden als er bijvoorbeeld ruimte nodig is op de harde schijf of wanneer de gebruiker het in een andere directory wil zetten dan waarin het geïnstalleerd werd.

## Documenten

Ook de documenten van veel OS X-programma's zijn feitelijk pakketten in plaats van echte documenten. In het pakket worden alle gegevens uit het document opgeslagen, maar als losse bestanden: bijvoorbeeld de tekst in één bestand en alle afbeeldingen apart. Ter vergelijking, wanneer bijvoorbeeld Word een document met afbeeldingen opslaat, dan plaatst het de afbeeldingen en de tekst in één bestand (zie ook Office Open XML).
Een nadeel van deze methode is wel dat het voor gebruikers onverwachte gevolgen kan hebben: wanneer bijvoorbeeld een Pages-document naar een gebruiker gestuurd wordt die geen OS X gebruikt, zal de ontvanger een directory te zien krijgen met daarin wat bestanden, en dus niet het samenhangende geheel dat een Macintoshgebruiker zal zien.