Domanda

Ci sono alcune implementazioni di applicazioni portatili in Linux, ma sembra che tutti Mac OS X applicazioni sono portatili. Dal momento che Mac OS X abbraccia completamente questo modello, sto supponendo che già hanno una soluzione a questo problema.

Dal momento che Windows "installa" Applicazioni di mettere i file in tutto il luogo, e cambiare le cose nel Registro di sistema, le associazioni di file possono essere fatte facilmente. Ma, diciamo che ho appena scaricato MPlayer per Mac OS X (o qualsiasi altra cosa). Voglio che tutti i miei film per aprire in MPlayer. Poi, ho deciso di spostare fascio app di MPlayer (ehi, è portatile, giusto?). Sarà la pausa associazione? O è che non come è fatto a tutti su OS X?

Come sarebbe uno implementare applicazioni portatili in Linux? Dovrebbe essere simile al modello di OS X? So che questa è una domanda molto a tempo indeterminato, ma tutti i suggerimenti sono apprezzati.

È stato utile?

Soluzione

banca dati Launch Services di OS X registra attacchi di documenti in diversi modi, in genere lo fa del suo meglio per cercare di abbinare un programma, anche se si è spostato.

È possibile eseguire lsregister -dump (lsregister è /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister) per vedere cosa dice il database Launch Services su un vincolante. Per esempio, se i file di testo che si legano ad aprire con TextWrangler, vedo:

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

public.plain-text è un Uniform Type Identifier (che mappa a uno o più estensioni di file, tipi MIME, ecc, e possono avere sottotipi) che rappresenta solo testo, e com.barebones.textwrangler è l'ID fascio di TextWrangler.

Non sono a conoscenza di Linux standard robusti come questo per il legame a fare qualcosa di simile al Mac documento, prima che ci sarebbe bisogno di essere un metodo standard per identificare le applicazioni indipendentemente dalla loro ubicazione o il nome (come il Java pacchetto-like / metodo sul Mac reverse-DNS), poi un registro di sistema per mapping dei tipi e le associazioni che è stato seguito da ambienti desktop abbastanza per essere utile, e in qualche modo di registrare le applicazioni come sono installati.

Non c'è necessariamente bisogno file separati, come Info.plist in fasci di applicazioni Mac, per memorizzare queste informazioni; anche su Mac OS X è possibile incorporare le informazioni in una sezione di binario che gli indici lanciare i servizi più che bene (si noti che questa non è una "forchetta" separato o attributi estesi, è come incorporare informazioni di debug in un file eseguibile). Quindi, forse, alcuni derivato dei file .desktop potrebbe essere incorporato. Sull'altra estremità, avresti bisogno di un modo di riconoscere contenuti. Idealmente si sarebbe anche in grado di fare il contenuto sniffing come il comando file(1) per identificare un tipo di documento; Mac OS Classic ha fatto questo con la Translation Manager (che ha permesso la registrazione di convertitori da un formato ad un altro, così come sniffer).

infezioni del tratto urinario e la maniglia Translation Manager (d) appunti e drag & contenuto calo, così come i file su disco; unificare queste rappresentazioni di formato è molto utile, mentre siete a questo.

Altri suggerimenti

Ogni file browser (ad esempio Nautilus, Konqueror) dovrebbe essere configurato per utilizzare le proprie associazioni di file. Per fortuna, il progetto gratis ha lavorato sulla standardizzazione associazioni di file (tra molte altre cose). Secondo il condiviso descrizione MIME banca dati , nessuna specifica formale è stato ancora scritto , ma il formato è praticamente standardizzato.

Il progetto Free Desktop utilizza anche i file .desktop di fornire "portabilità" (forse si dovrebbe usare un'altra parola per questo ... forse "mobile"?). Se si sposta l'esterno eseguibile di PATH, è possibile aggiornare il .desktop a punto alla posizione corretta.

In sostanza, c'è un sacco di lavori in corso nella comunità Linux muoversi verso altri (cioè standardizzati) modi di facile utilizzo e developer-friendly di realizzare questi obiettivi. Ma le cose non ancora avvenute.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top