2

Linuxにはポータブルアプリの実装がいくつかありますが、すべてのMacOSXアプリはポータブルのようです。Mac OS Xはこのモデルを完全に採用しているので、この問題の解決策はすでにあると思います。

Windowsは、ファイルをあちこちに配置し、レジストリの内容を変更することでアプリを「インストール」するため、ファイルの関連付けを簡単に行うことができます。しかし、Mac OS X(またはその他)用のMPlayerをダウンロードしたとしましょう。すべての映画をMPlayerで開きたい。次に、MPlayerのアプリバンドルを移動することにしました(ポータブルですよね?)。協会は壊れますか?それとも、OS Xではまったくそうではありませんか?

Linuxでポータブルアプリをどのように実装しますか?OS Xのモデルに似ている必要がありますか?これは非常に自由形式の質問であることを私は知っていますが、どんな提案でもありがたいです。

4

2 に答える 2

2

各ファイルブラウザ(Nautilus、Konquerorなど)は、独自のファイルの関連付けを使用するように構成する必要があります。幸いなことに、Free Desktopプロジェクトは、(他の多くのものの中でも)ファイルの関連付けの標準化に取り組んできました。共有MIMEデータベースの説明によると、正式な仕様はまだ作成されていませんが、形式はほぼ標準化されています。

Free Desktopプロジェクトは、.desktopファイルを使用して「移植性」を提供します(おそらく、これには別の単語を使用する必要があります...おそらく「移動可能」ですか?)。実行可能ファイルをの外に移動すると、正しい場所を指すようにをPATH更新できます。.desktop

基本的に、Linuxコミュニティでは、これらの目標を達成するためのよりユーザーフレンドリーで開発者フレンドリーな(つまり標準化された)方法に向けて進行中の作業がたくさんあります。しかし、物事はまだ終わっていません。

于 2011-01-10T04:43:15.087 に答える
2

OSXのLaunchServicesデータベースは、いくつかの方法でドキュメントバインディングを追跡します。通常、アプリケーションを移動した場合でも、アプリケーションとの一致を試みるのが最善です。

lsregister -dumplsregisteris )を実行/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregisterして、LaunchServicesデータベースがバインディングについて何を示しているかを確認できます。たとえば、テキストファイルをバインドしてTextWranglerで開くと、次のように表示されます。

handler id:            3124
    content type:  public.plain-text
    options:       
    all roles:     com.barebones.textwrangler (0x3ea30180)

public.plain-textプレーンテキストを表すUniformTypeIdentifier(1つ以上のファイル拡張子、MIMEタイプなどにマップされ、サブタイプを持つ場合があります)でありcom.barebones.textwrangler、TextWranglerのバンドルIDです。

ドキュメントバインディングに関してこれほど堅牢なLinux標準を私は知りません。Macのようなことを行うには、まず、アプリケーションの場所や名前に関係なく、アプリケーションを識別するための標準的な方法が必要になります(Javaパッケージのようなものなど)。 / reverse-MacのDNSメソッド)、次にタイプマッピングとバインディングのレジストリ。その後に十分なデスクトップ環境が続き、アプリケーションがインストールされたときにアプリケーションを登録する方法があります。

Info.plistこの情報を保存するために、Macアプリケーションバンドルのように必ずしも個別のファイルは必要ありません。Mac OS Xでも、Launch Servicesが適切にインデックスを付けるバイナリセクションに情報を埋め込むことができます(これは個別の「フォーク」または拡張属性ではないことに注意してください。デバッグ情報を実行可能ファイルに埋め込むようなものです)。したがって、おそらく.desktopファイルの派生物を埋め込むことができます。一方、コンテンツを認識する方法が必要になります。file(1)理想的には、ドキュメントタイプを識別するコマンドのように、コンテンツをスニッフィングすることさえできます。従来のMacOSは、Translation Managerを使用してこれを実行しました(これにより、ある形式から別の形式へのコンバーター、およびスニファーの登録が可能になりました)。

UTIとTranslationManagerは、(d)クリップボードを処理し、コンテンツとディスク上のファイルをドラッグアンドドロップします。これらのフォーマット表現を統合することは、作業中に非常に役立ちます。

于 2011-01-10T06:21:38.917 に答える