MIME-databasen

MIME-databasen är en samling filer som utgör:

  • Uppsättningen av kända MIME-typer
  • Metoden för att bestämma MIME-typen för en fil
  • Metainformation angående en MIME-typ, såsom en mänskligt läsbar beskrivning som används vid visning av filer av den här typen.

5.2.1. Plats

De mest viktiga och grundläggande steget för en administratör för att förstå MIME-systemet är att lära sig platserna där dessa filer är lagrade. Eftersom XDG shared mime info specification blev utformad av X Desktop Group använder det även XDG base directory specification. Det rekommenderas varmt att du gör dig hemmastadd med den här specifikationen, eftersom den även är viktig för andra systemadministrationsuppgifter såsom redigering av menyer. En kort sammfattning av katalogplatserna som hänför till MIME-specifikationen anges nedan.

MIME-databasen skapas från den uppsättning filer som finns i katalogerna $XDG_DATA_HOME/mime och $XDG_DATA_DIRS/mime. Om dessa miljövariabler inte är inställda, kommer katalogerna ~/.local/share respektive /usr/local/share:/usr/share att användas. Som du kan se från standardvärdet för $XDG_DATA_DIRS, är varje miljövariabel faktiskt en kolonseparerad lista med kataloger. Användarens databas i $XDG_DATA_HOME/mime har företräde över systemets databas i $XDG_DATA_DIRS/mime när definitionskonflikter inträffade. Precis som XDG shared mime specification, kommer vi att referera till den här uppsättningen kataloger som <MIME> i resten av det här dokumentet.

Anta till exempel att standardsökvägarna används för miljövariablerna, då betyder “Load <MIME>/text/plain.xml att följande filer ska läsas in:

  • ~/.local/share/mime/text/plain.xml
  • /usr/local/share/mime/text/plain.xml
  • /usr/share/mime/text/plain.xml

5.2.2. Innehåll

Följande är en lista över kataloger och filer som hittas i MIME-databasen tillsammans med korta beskrivningar:

<MIME>/packages/

Den här katalogen innehåller ett antal XML-filer, där varje beskriver en samling av MIME-typer. Som standard installeras filen freedesktop.org.xml i katalogen /usr/share/mime/packages. Den här filen innehåller alla standard-MIME-typer som används överallt och är välkända.

Program som tillhandahåller information om nya MIME-typer ska installera en enda ny XML-fil här. Bereonde på prefixet där programmet är installerat, kommer det att skapa filen i underkatalogen /mime/package för en av katalogerna i $XDG_DATA_HOME:$XDG_DATA_DIRS. Om till exempel ett program är installerat i /usr/bin, ska det installera en ny XML-källfil i katalogen /usr/share/mime/packages. För mer information om XML-filerna i katalogen packages, se Avsnitt 5.3 ― XML-källfilerna.

<MIME>/MEDIA/SUBTYPE.xml

Dessa kataloger och filer genereras automatiskt från samlingen av XML-källfiler i underkatalogen <MIME>/packages/ av programmet update-mime-database. Till exempel för varje mime-type-element i filen /usr/share/mime/packages/freedesktop.org.xml, skapas en katalog i /usr/share/mime/ med den media type för MIME-typen. En XML-fil skapas även i den katalogen med subtype identifier för den MIME-typen. Innehållet i den skapade XML-filen inkluderar kommentarer (och översättningar av dem), underklassdesigneringar och alias.

Exempel 5-1Exempel: filen /usr/share/mime/text/plain.xml

<?xml version='1.0' encoding='utf-8'?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/plain">
<!--Skapad automatiskt av update-mime-database. REDIGERA INTE!-->
  <comment>plain text document</comment>
  <!-- möjligen fler översättningar -->
  <comment xml:lang="sv">vanligt textdokument</comment>
  <comment xml:lang="eu">testu soileko dokumentua</comment>
  <comment xml:lang="fi">perustekstiasiakirja</comment>
  <comment xml:lang="fr">document plein texte</comment>
  <!-- möjligen fler översättningar -->
</mime-type>
Den här filen genereras av programmet update-mime-database, med standard-XML-källfilen freedesktop.org.xml.

<MIME>/globs

Innehåller en rad med en MIME-typ och ett glob-mönster, separerade av ett kolontecken. Filer som matchar glob-mönstret slås upp till den MIME-typ som angivits innan kolontecknet. Det finns speciella regler för hur filnamn matchas av glob-mönstret; för fler detaljer, se XDG shared mime specification.

Den här filen genereras också av programmet update-mime-database, med standard-XML-källfilen freedesktop.org.xml.

<MIME>/magic

En binärfil som innehåller information om hur man slår upp MIME-typer genom att “sniffa” innehåller i filen. Det här är vanligtvis en uppsättning av en eller flera regler, såsom “leta efter strängen %PDF- på byteposition 0 i filen; om den hittas, tilldela den MIME-typen application/pdf.

Den här filen genereras också av programmet update-mime-database.

<MIME>/XMLnamespaces

Innehåller en länkning av XML-namnrymder till MIME-typer. Varje rad innehåller tre fält, namnrymden, localName och MIME-typen. Varje fält är separerat med ett blanksteg. Om localName är blank, kommer det att finnas två blanksteg mellan namnrymden och MIME-typen.

Den här filen genereras också av programmet update-mime-database.

<MIME>/aliases

Innehåller en lista med alias för varje MIME-typ. Ett alias är helt enkelt en MIME-typ som ibland är känd som en annan typ. För varje rad i den här filen finns det två fält: första fältet är aliasnamnet, och det andra fältet är MIME-typen. Fälten är separerade med ett blanksteg.

Den här filen genereras också av programmet update-mime-database.

<MIME>/subclasses

Innehåller en lista med underklassade MIME-typer och deras MIME-“förälder”typ. Från XDG shared mime specification:

En typ är en underklass för en annan typ om någon instans av första typen också är en instans för den andra. Till exempel är alla filerna image/svg också text/xml, text/plain och application/octet-stream. Underklasser handlar om formatet, istället för kategorin av data (till exempel finns det ingen "generic spreadsheet"-klass som alla kalkylark ärver information från).

Formatet för den här filen liknar aliases-filen. Varje rad innehåller två fält, där det första fältet är den underklassade MIME-typen och det andra fältet är förälder-MIME-typen. Varje fält är separerat med ett blanksteg.

Den här filen genereras också av programmet update-mime-database.

5.2.3. Uppdatera MIME-databasen

Förstå hur MIME-databasen uppdateras är viktigt för administratörer som önskar att lägga till nya MIME-typer till systemet, eller annars ändra information om en MIME-typ. Programmet update-mime-database är tänkt för den här uppgiften.

Till exempel om ett program installerar information om en ny MIME-typ i /usr/share/mime/packages/diff.xml, måste update-mime-database anropas med parametern /usr/share/mime.

# update-mime-database /usr/share/mime
***
* Updating MIME database in /usr/share/mime...
***

MIME-databasen uppdateras genom att söka av alla XML-källfiler i katalogen <MIME>/packages.