如何使file命令使用update-mime-database命令生成的magic文件

时间:2012-02-06 12:01:12

标签: file compilation mime-types

我使用的是Ubuntu Server 11.10。

我的问题是file命令检测到应该将video/mp2t mime-type设置为application/octet-stream的文件

所以这就是我所做的:

  1. 我确保/usr/share/mime/packages/freedesktop.org.xml包含正确的mp2t描述。

  2. 我运行了update-mime-database命令,除其他外,还创建了一个新的魔术文件:/usr/share/mime/magic

  3. 我发现在运行file -v时,它说它使用/etc/magic:/usr/share/misc/magic作为魔术文件。

  4. 所以,我告诉file命令使用我的新魔法文件:file -m /usr/share/mime/magic MY_VIDEOFILE

  5. 以下是问题的起点。使用我的新魔术文件运行file命令时,我得到以下输出:

    /usr/share/mime/magic, 1: Warning: offset `MIME-Magic' invalid
    /usr/share/mime/magic, 1: Warning: type `MIME-Magic' invalid
    /usr/share/mime/magic, 2: Warning: offset `[90:application/docbook+xml]' invalid
    /usr/share/mime/magic, 2: Warning: type `[90:application/docbook+xml]' invalid
      .
      . (921 lines removed from the output)
      .
    /usr/share/mime/magic, 1173: Warning: offset `[10:text/x-tex]' invalid
    /usr/share/mime/magic, 1173: Warning: type `[10:text/x-tex]' invalid
    file: No current entry for continuation
    

    file命令看起来像魔术文件的格式与update-mime-database输出的魔术文件的格式不同。

    我在这里错过了什么?

    如何让file命令接受新的mime类型?

1 个答案:

答案 0 :(得分:1)

使用共享MIME类型数据库似乎是错误的方法。事实上,它看起来像共享MIME数据库和file命令使用单独的数据库(具有不同的格式)。

由于video/mp2t命令版本过旧,未报告MIME类型file

Ubuntu 11.10。附带file命令的5.04版。这无法报告video/mp2t类型。

这就是我为解决问题所做的工作:

我下载了libmagic1 deb package的更新版本。这个版本的版本是5.09-2。

我安装了它:

sudo dpkg -i libmagic1_5.09-2_amd64.deb

问题解决了!

$ file MY_VIDEO_FILE --mime-type
MY_VIDEO_FILE: video/mp2t