MIME 데이터베이스
MIME 데이터베이스는 다음과 같은 정보들을 저장하는 파일의 집합입니다:
- 알려진 MIME 형식의 집합
- 파일의 MIME 형식을 알아내기 위한 방법
- MIME 형식에 대한 메타 정보. 즉, 이 형식의 파일을 표시할 때 사람이 알아보기 쉽도록 설명한 내용.
- 5.2.1. 위치
- 5.2.2. 내용
- 5.2.3. MIME 데이터베이스 형식 갱신하기
5.2.1. 위치
관리자로써, MIME 시스템을 이해하기 위해 가장 중요하고 기본적인 단계는 이러한 파일들이 저장되는 위치를 아는 것입니다. XDG 공통 MIME 정보 명세서는 X 데스크탑 그룹에서 제안되었으므로, XDG 기본 디렉토리 명세서의 내용을 따릅니다. 이 명세서는 메뉴를 편집하는 것과 같은 다른 시스템 관리 작업에서도 매우 중요하므로, 이 명세서의 내용을 숙지해 두는 것이 좋습니다.
MIME 데이터베이스는 $XDG_DATA_HOME/mime디렉토리와 $XDG_DATA_DIRS/mime 디렉토리에 있는 파일의 집합으로 구성됩니다. 만약 이러한 환경 변수들이 설정되어 있지 않다면, 기본값으로 ~/.local/share 디렉토리와 /usr/local/share:/usr/share 디렉토리를 각각 사용합니다. $XDG_DATA_DIRS 변수의 기본값에서 볼 수 있듯이, 각각의 환경 변수들은 실제로는 콜론(:)으로 구분된 디렉토리의 목록입니다. 만약 동일한 내용이 중복되는 경우에는 $XDG_DATA_HOME/mime에 있는 사용자 데이터베이스는 $XDG_DATA_DIRS/mime에 있는 시스템 데이터베이스보다 우선 순위를 가집니다. 앞으로 이 문서에서는 XDG 공통 MIME 정보 명세서와 마찬가지로 이러한 디렉토리들을 <MIME>(이)라고 가리킬 것입니다.
예를 들어, 환경 변수들의 기본값을 사용한다고 가정할 때 “Load <MIME>/text/plain.xml” 라는 표현은 다음 파일들을 읽어온다(load)는 것을 의미합니다:
- ~/.local/share/mime/text/plain.xml
- /usr/local/share/mime/text/plain.xml
- /usr/share/mime/text/plain.xml
5.2.2. 내용
다음은 MIME 데이터베이스내의 디렉토리와 파일의 목록에 대해 간략한 설명을 추가한 것입니다:
- <MIME>/packages/
-
이 디렉토리는 MIME 형식들의 집합을 설명하는 여러 XML 파일들을 포함합니다. 기본적으로 freedesktop.org.xml 파일은 /usr/share/mime/packages 디렉토리에 설치됩니다. 이 파일은 주로 사용되는 모든 기본 MIME 형식에 대한 정보를 포함합니다.
새로운 MIME 형식에 대한 정보를 제공하는 프로그램들은 여기에 하나의 새로운 XML 파일을 설치해야 합니다. 프로그램이 설치된 위치에 따라 $XDG_DATA_HOME:$XDG_DATA_DIRS 내의 한 디렉토리에 /mime/package라는 이름의 하위 디렉토리를 만들 것입니다. 예를 들어 프로그램이 /usr/bin 디렉토리에 설치되었다면, 새로운 소스 XML 파일을 /usr/share/mime/packages 디렉토리에 설치할 것입니다. packages 디렉토리 내의 XML 파일들에 대한 자세한 정보는, 5.3항 ― 소스 XML 파일 부분을 살펴보기 바랍니다.
- <MIME>/미디어/하위 형식.xml
-
이 디렉토리와 파일들은 update-mime-database 프로그램에 의해 <MIME>/packages/ 하위 디렉토리 내의 소스 XML 파일들의 집합으로부터 자동으로 생성됩니다. 예를 들어 /usr/share/mime/packages/freedesktop.org.xml 파일 내의 각 mime-type 엘리먼트들은, /usr/share/mime/ 디렉토리 내에 MIME 형식의 미디어 형식에 대한 디렉토리가 만들어져 있습니다. XML 파일은 MIME 형식의 하위 형식 이름의 디렉토리 내에도 생성됩니다. 이 XML 파일은 해당 형식에 대한 설명 (그에 대한 번역도 포함), 하위 클래스 지정(designation), 별칭 등을 포함합니다.
예제 5-1 예: /usr/share/mime/text/plain.xml 파일이 파일은 기본 소스 XML 파일인 freedesktop.org.xml을 이용하여 update-mime-database 프로그램을 통해 생성되었습니다.<?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
-
이 파일은 콜론(:) 기호로 구분된 MIME 형식과 glob 패턴으로 이루어진 한 줄로 구성됩니다. glob 패턴과 일치하는 파일들은 해당 패턴의 앞에 지정된 MIME 형식으로 인식됩니다. 파일 이름을 glob 패턴과 일치시키는 방법에 대한 특별한 규칙들이 존재합니다. 자세한 내용은 XDG 공통 MIME 명세서를 참조하기 바랍니다.
이 파일은 기본 소스 XML 파일인 freedesktop.org.xml을 이용하여 update-mime-database 프로그램을 통해 생성되었습니다.
- <MIME>/magic
-
파일의 내용을 “스니핑(sniffing)”하여 MIME 형식을 인식하는 방법에 대한 정보를 포함하는 바이너리 파일입니다. 이것은 다음과 같은 규칙들을 하나 이상 포함하는 파일입니다: “파일의 0번 오프셋 위치에서 %PDF- 문자열을 검사하여, 만약 일치하면 MIME 형식을 application/pdf로 지정합니다”.
이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.
- <MIME>/XMLnamespaces
-
이 파일은 XML 이름 공간과 MIME 형식 간의 매핑을 포함합니다. 각 줄은 이름 공간, 로컬 이름, MIME 형식의 세 필드로 이루어져 있으며, 각 필드는 공백 문자로 구분됩니다. 만약 로컬 이름이 비어있다면, 이름 공간과 MIME 형식 사이에 두 개의 공백 문자가 있어야 합니다.
이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.
- <MIME>/aliases
-
이 파일은 각 MIME 형식들에 대한 별칭(alias)의 목록을 포함합니다. 별칭은 단순히 다른 형식으로 알려진 MIME 형식입니다. 이 파일의 각 줄은 두 개의 필드로 이루어지며, 첫번째 필드는 별칭의 이름이며 두번째 필드는 MIME 형식을 가리킵니다. 각 필드는 공백 문자로 구분됩니다.
이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.
- <MIME>/subclasses
-
이 파일은 자신의 “부모(parent)” MIME 형식과 그 하위 클래스 MIME 형식에 대한 목록을 포함합니다. XDG 공통 MIME 명세서에 따르면:
이 파일의 형식은 aliases 파일과 비슷합니다. 각 줄은 공백 문자로 구분된 두 필드로 구성되며, 첫번째 필드는 하위 클래스 MIME 형식을, 두번째 필드는 부모 MIME 형식을 나타냅니다.만약 한 형식이 다른 형식의 인스턴스이기도 하다면, 이 형식은 다른 형식의 하위 클래스(subclass)입니다. 예를 들어 모든 image/svg 파일은 text/xml 파일이기도 하며 application/octet-stream 파일이기도 합니다. 하위 클래스는 데이터의 분류에 따른 것이라기 보다는 파일의 형식에 대한 것입니다 (예를 들어, 모든 스프레드시트 형식의 부모가 되는 '일반적인 스프레드시트' 클래스는 존재하지 않습니다).
이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.
5.2.3. MIME 데이터베이스 형식 갱신하기
MIME 데이터베이스를 갱신하는 방법을 이해하는 것은 새로운 MIME 형식을 시스템에 추가하거나, MIME 형식에 대한 정보를 수정해야 하는 관리자들에게는 중요합니다. update-mime-database는 이를 위한 프로그램입니다.
예를 들어 어떤 프로그램이 새로운 MIME 형식에 대한 정보를 /usr/share/mime/packages/diff.xml에 설치했다면, /usr/share/mime을 인자로 주어 update-mime-database 프로그램을 호출해야 합니다.
# update-mime-database /usr/share/mime *** * Updating MIME database in /usr/share/mime... ***
MIME 데이터베이스는 <MIME>/packages 디렉토리 내의 모든 소스 XML 파일들을 검색하여 갱신합니다.