La base de datos MIME
La base de datos MIME es una colección de archivos que sirve para:
- El conjunto de tipos MIME conocidos
- El método para determinar el tipo MIME para un archivo
- Meta información relacionada con el tipo MIME, tal como una descripción entendible por personas para usar cuando se muestren archivos de este tipo.
- 5.2.1. Ubicación
- 5.2.2. Contenido
- 5.2.3. Actualizar la base de datos MIME
5.2.1. Ubicación
Como administrador, el paso más importante y básico para entender el sistema MIME es aprender las ubicaciones donde esos archivos se almacenan. Ya que laEspecificación de información MIME compartida XDG fue creada por el X Desktop Group, también usa la especificación de base de directorio XDG. Es muy recomendable que se familiarice con esta especificación, ya que es importante para otras tareas de administración como editar los menús. Más abajo se proporciona un pequeño resumen de las ubicaciones de los directorios de la especificación MIME.
La base de datos MIME se crea del juego de archivos ubicados en los directorios $XDG_DATA_HOME/mime y $XDG_DATA_DIRS/mime. Si estas variables de entorno no están establecidas, entonces los valores predeterminados serán~/.local/share y /usr/local/share:/usr/share respectivamente. Como se puede ver del valor predeterminado para $XDG_DATA_DIRS, cada variable de entorno es una lista de directorios separada por dos puntos. La base de datos del usuario en $XDG_DATA_HOME/mime tiene preferencia sobre la base de datos del sistema en $XDG_DATA_DIRS/mime cuando se encuentren definiciones en conflicto. Similar a la especificación de información MIME compartida XDG, de ahora en adelante las referencias a este juego de directorios se harán como <MIME> para el resto del documento.
Por ejemplo, asumiendo rutas predeterminadas para las variables de entorno, «Load <MIME>/text/plain.xml» significa cargar los siguientes archivos:
- ~/.local/share/mime/text/plain.xml
- /usr/local/share/mime/text/plain.xml
- /usr/share/mime/text/plain.xml
5.2.2. Contenido
Lo siguiente es una lista de los directorios y archivos que se encuentran dentro de la base de datos MIME junto con descripciones breves.
- <MIME>/packages/
-
Este directorio contiene cierto número de archivos XML, cada uno de los cuales describe una colección de tipos MIME. De forma predeterminada, el archivo freedesktop.org.xml está instalado en el directorio /usr/share/mime/packages. Este archivo contiene todos los tipos MIME predeterminados que están ampliamente reconocidos y son ampliamente usados.
Las aplicaciones que proporcionan información acerca de nuevos tipos MIME deben instalar un sólo archivo XML aquí. Dependiendo del prefijo donde la aplicación está instalada, creará en el archivo en el subdirectorio /mime/package de uno de los directorios en $XDG_DATA_HOME:$XDG_DATA_DIRS. Por ejemplo, una aplicación instalada en /usr/bin deberá instalar un nuevo archivo fuente XML en el directorio /usr/share/mime/packages. Para obtener más información acerca de los archivos XML en el directorio packages, consulte la Sección 5.3: Los archivos fuente XML.
- <MIME>/MEDIA/SUBTYPE.xml
-
Estos directorios y archivos se generan automáticamente de la colección de archivos fuente XML en subdirectorio <MIME>/packages/ por la aplicación update-mime-database. Por ejemplo, para cada elemento mime-type en el archivo /usr/share/mime/packages/freedesktop.org.xml, se crea un directorio en /usr/share/mime/ con el tipo de medio del tipo MIME. Se crea un archivo XML en ese directorio con el identificador de subtipo de ese tipo MIME. El contenido del archivo XML creado incluye comentarios (y traducciones de los mismos) designaciones de subclases y alias.
Ejemplo 5-1 Ejemplo: archivo /usr/share/mime/text/plain.xmlEste archivo se genera con la aplicación update-mime-database, usando el archivo fuente XML predeterminado freedesktop.org.xml.<?xml version='1.0' encoding='utf-8'?> <mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/plain"> <!--Created automatically by update-mime-database. DO NOT EDIT!--> <comment>plain text document</comment> <!-- possibly more translations --> <comment xml:lang="es">documento de texto sencillo</comment> <comment xml:lang="eu">testu soileko dokumentua</comment> <comment xml:lang="fi">perustekstiasiakirja</comment> <comment xml:lang="fr">document plein texte</comment> <!-- possibly more translations --> </mime-type>
- <MIME>/globs
-
Contiene una línea con el tipo MIME y el patrón global, separados por dos puntos. Los archivos que coincidan con el patrón global se resuelven con el tipo MIME especificado antes de los dos puntos. Existen reglas especiales acerca de cómo los nombres de archivo coinciden con el patrón global, para obtener más detalles vea la especificación MIME compartida XDG.
Este archivo también está generado por la aplicación update-mime-database, usando el archivo fuente predeterminado XML freedesktop.org.xml.
- <MIME>/magic
-
Un archivo binario que contiene información acerca de cómo se resuelven los tipos MIME «husmeando» en el contenido del archivo. Generalmente esto comporta un juego de una o más reglas tales como «comprobar la cadena %PDF- en el desplazamiento de byte 0 en el archivo, si se encuentra, asignarlo al tipo MIME application/pdf»
Este archivo también se genera con la aplicación update-mime-database
- <MIME>/XMLnamespaces
-
Contiene un mapeado de los nombres de espacio XML de los tipos MIME. Cada línea contiene tres campos, el nombre de espacio, el nombre local y el tipo MIME. Cada campo está separado por un espacio. Si el nombre local está vacío, entonces existen dos espacios entre el nombre de espacio y el tipo MIME.
Este archivo también se genera con la aplicación update-mime-database
- <MIME>/aliases
-
Contiene una lista de alias para cada tipo MIME. Un alias es simplemente un tipo MIME que a veces se conoce como otro tipo. Para cada línea de este archivo existen dos campos: el primer campo es el nombre del alias y el segundo campo es el tipo MIME. Los campos están separados por un espacio.
Este archivo también se genera con la aplicación update-mime-database
- <MIME>/subclasses
-
Contiene una lista de subclases de tipos MIME y sus tipos MIME «padre». De la especificación MIME compartida XDG:
El formato de este archivo es mimilar al archivo aliases. Cada línea contiene dos campos donde el primer campo es la subclase del tipo MIME y el segundo campo es el tipo MIME padre. Cada campo se separa con un espacio.Un tipo es una subclase de otro tipo si alguna instancia del primer tipo es también instancia del segundo. Por ejemplo, todos los archivos image/svg también son archivos text/xml, text/plain y application/octet-stream. Las subclases existen por el formato más que por la categoría de los datos (por ejemplo, no existe una clase «hoja de cálculo genérica» que hereden todas las hojas de cálculo).
Este archivo también se genera con la aplicación update-mime-database
5.2.3. Actualizar la base de datos MIME
Para los administradores que desean añadir nuevos tipos MIME al sistema, es importante comprender cómo se actualiza la base de datos MIME , o de otra manera modificar la información acerca de un tipo MIME. La aplicación update-mime-database se encarga de éste propósito.
Por ejemplo, si una aplicación instala información acerca de un nuevo tipo MIME en /usr/share/mime/packages/diff.xml, entonces se debe llamar a update-mime-database con el parámetro /usr/share/mime.
# update-mime-database /usr/share/mime *** * Updating MIME database in /usr/share/mime... ***
La base de datos MIME se refresca escaneando todos los archivos fuente XML en el directorio <MIME>/packages.