正しいMIMEタイプが存在するにもかかわらず、gzipとして処理されるxoj(Xournal)ファイル


1

だから私はアンインストールしなければならなかったPPA バージョンxournalとをしてからビルドソース(と変更)。そして今、.xojファイルはKDEのアーカイブマネージャーArkで自動的に開き、Dolphinの右クリックメニューから[プロパティ]を選択すると、タイプが「Gzipアーカイブ」である Dolphinのxojプロパティ
と識別されます。 。)以下のすべてにもかかわらず、この状況は持続します。

1)ソースパッケージに付属しているこれらのファイルをコピーした:
- xournal.xml/ usr / share / mime / packagesという/に
- xournal.desktopには、/ usr / share /アプリケーション/
- x-xoj.desktopには、/ usr / share / mimelnk /アプリケーション/

2)
application/x-xoj=xournal.desktop;
〜/ .local / share / applications / mimeapps.listに行を 追加しました

3)ファイルの関連付けのシステム設定にMIMEタイプapplication/x-xojを追加しました (適切なコンテンツを使用):(. gz拡張子のみ を指定することに注意してください:。)

file-associations-xoj
application/x-gzip
ここに画像の説明を入力してください

4)ここで 提案されているxournal.xmlように/ usr / share / mime / applicationにコピー

5) sudo update-mime-database /usr/share/mime

6)コンピューターを再起動しました

編集した追加する:
7)[.xojファイルを右クリック] - >で開く- >その他... - >、ダニが'ファイルのこのタイプのアプリケーションの関連付けを保存する] [「xournalと」を選択]もあり無効。
編集の終わり

これはKubuntu 12.04にあります。
だから、私は何が欠けていますか?

編集して追加しましたが、この質問のように
file --mime-type [filename]mimetype [filename]コマンドが異なる結果を生成することを発見しました:

archelon@ingelrayok:~/Documents/xournal$ file --mime-type 2014-02-22-Note-02-09.xoj  
2014-02-22-Note-02-09.xoj: application/x-gzip  
archelon@ingelrayok:~/Documents/xournal$ mimetype 2014-02-22-Note-02-09.xoj  
2014-02-22-Note-02-09.xoj: application/x-xoj  

ただし、application/x-gzip/ etc / mime.types にはエントリがありません(fileコマンドはそこから情報を取得すると思われます)。そして、実際には、そのファイルの冒頭のコメントによると、部分的に読み取るべきではありません:

注:「gzip」、「bzip」、「compress」などの圧縮スキームは、実際には「mime-types」ではありません。これらは「エンコーディング」であるため、このファイルに拡張子をマッピングするエントリを含めることはできませ。エンコードされたファイルの「MIMEタイプ」とは、エンコードのタイプではなく、エンコードされたデータのタイプを指します。

そのコメントはまた言っている

ユーザーは、ホームディレクトリに「.mime.types」ファイルを作成して、必要に応じて独自のタイプを追加できます。そこに含まれる定義は、ここにリストされている定義よりも優先されます。

現在、そのようなファイルはありません。私のホームディレクトリには、mimetypeコマンドの出力に明らかに関連するファイルがいくつかあります(作成しませんでした)。これらには
~/.local/share/mime/application/x-xoj.xml
~/.local/share/mime/packages/application-x-xoj.xml、および
~/.local/share/mime/typesそのテキストのみが含まれていますapplication/x-xoj
実際、ディレクトリ〜/ .local / share / mime /とその中のすべては同じタイムスタンプ(昨夜22:19)を持っているため、おそらく同じプロセスで生成されたと思われます。

mimetypefileのマンページを見て、環境変数$XDG_DATA_HOMEとを確認することにしました$XDG_DATA_DIRS。しかし、私は、環境変数の値を報告する方法を知りませんでしたので、私が試したcat $XDG_DATA_HOME、その設定(何も)の値を代わりにそれを報告します。 追加するために編集:またはそう私は最初に考えました。後で説明するように、実際には既に設定されていません。ここでecho $XDG_DATA_HOME環境変数について読んで学んだように、正しいコマンドはです。それで、それ$XDG_DATA_DIRSが設定されていることを発見しました/usr/share/default:/usr/local/share/:/usr/share/; これらの最初のものは存在しません。私はそれは重要ではないと思いますが、とにかくコマンドを実行しました

XDG_DATA_HOME=$HOME/.local/share  

そして

XDG_DATA_DIRS=/usr/local/share/:/usr/share/  

標準に一致する。これらのいずれも違いをもたらすとは思いませんが、今度は別の再起動を試みます(とにかく、これらの環境変数は自動的にリセットされると思いますが)。次の編集:はい、そうでした。実際、変数XDG_DATA_HOMEは再びヌルになりました。

とにかく、KDEは使用している機能でfileはなく、使用している機能を使用しているようですmimetype。私が物事を正しく理解していれば、これはMIMEタイプの代わりに魔法を使用していることを意味します。私は今、この問題全体に魔法が関与しているのではないかと疑っています。

新しい編集

そのため、file マンページでは、これらがベースラインマジックファイルであると言っているようです。

/usr/share/misc/magic.mgcマジックのデフォルトのコンパイル済みリスト。
/ usr / share / misc / magicデフォルトのマジックファイルを含むディレクトリ。

(私はこれらを持っています; / usr / share / misc / magicは空のフォルダー/ usr / share / file / magicへのリンクで、/ usr / share / misc / magic.mgcはファイル/ usr / share /へのリンクですfile / magic.mgc-後者はgobbledygookでいっぱいの2.1 MBファイルです)および次のテキスト:

これらのファイルを識別する情報

(つまり、「ファイルの先頭近くの特定の場所に「マジックナンバー」が保存されているファイル」)

/ etc / magicおよびコンパイルされたマジックファイル
/usr/share/misc/magic.mgcから、または
コンパイルされたファイルが存在しない場合はディレクトリ/ usr / share / misc / magicのファイルから読み込まれます。さらに、
$ HOME / .magic.mgcまたは$ HOME / .magicが存在する場合、
システムマジックファイルよりも優先して使用されます。

ここでstrace提案されているように、これで確認しました。)$ HOME / .magic.mgcも$ HOME / .magicもシステムに存在しません。しかし、おそらくxojファイルにはファイルを魔法のように識別するgobbledygookが正確に含まれapplication/x-gzipているため、それらを作成しても意味がありません(間違っている場合は修正してください)。

したがって、私が探している解決策は、MIMEタイプ仕様で特定のファイル拡張子のマジックをオーバーライドする方法です。私はそれがどのように達成されるかについてのヒントを提供するかもしれないように見える何かを見たと思ったが、私は今それを見つけることができない。しかし、確かにそのような方法が存在します。


xojDolphinのファイルでコンテキストメニューを開き、[開く... ] を選択してから[アプリケーションの関連付けを記憶する...]をチェックしましたか?
warvariuc 14

はい。機能しません。(「システム構成の更新」ウィンドウが表示され、Xournalでファイルが開きますが、閉じた後はすべて同じです。ファイルをクリックしてArkで開きます。)
Archelon 14

私はあなたを助けることはできませんが、私は上尋ねることをお勧めKDEフォーラム答えを見つけるために多くのより多くのチャンスがあるので、
warvariuc

回答:


1

答えではなく、単なるコメント:

試したがcat $XDG_DATA_HOME、値を報告する代わりに(何も設定せずに)値を設定した

cat確かに変数の値を設定しません。cat指定した名前のファイルの内容を印刷するか、ファイル名がない場合は標準入力から読み取ったものを印刷します。さらに、変数は実行中のシェル(通常/bin/bash)によって展開されるためcat、変数の名前さえ表示されません。

今、あなたの特定の状況では、変数は一見設定されcatていないため、何にも拡張されず、したがってパラメータはなく、したがってcatstdinから出力され、私はあなたがCtrl-CそれをCtrl-D終了するか、多分(ファイルの終わり)する必要があると思います。


「だから、XournalのPPAバージョンをアンインストールし、ソースからビルド(変更を加えて)しなければなりませんでした。そして、KDEのアーカイブマネージャーArkで.xojファイルが自動的に開きます」正しく動作しますか?
クラスティ14

「Ctrl-Cで終了する必要があると思います」:はい。「ppaバージョンがインストールするファイルと、それがどのように正しく機能するかを分析してみてください」:まさにそれをしようとすることになると思います。
アーケロン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.