Store Dienst

Wenn mehre Benutzer sich einen Computer teilen, besitzt jeder Benutzer seine eigene Zero Install Konfiguration und seinen eigenen Implementierungscache. Um Speicherplatz zu sparen und unnötiges Mehrfachherunterladen von Anwendungen, die von mehr als ein Benutzer verwendet werden, zu vermeiden, kann ein gemeinsamer Cache eingesetzt werden.

Der gemeinsame Cache wird vom Zero Install Store Dienst verwaltet. Dieser Dienst stellt sicher, dass kein Benutzer, absichtlich oder unabsichtlich, den Inhalt des Cache manipulieren kann. Jeder Benutzer fügt seine heruntergeladenen Implementierungen dem gemeinsamen Cache hinzu, aber andere Benutzer rufen diese nur dann ab, wenn sie die exakt gleiche Version (mit demselben kryptografischen Hash) anfordern. Der Einsatz eines gemeinsamen Caches hat keinen Einfluss auf die Desktop Integration, daher hat jeder Benutzer weiterhin seine individuelle Anwendungsliste.

Der Zero Install Store Dienst ist standardmäßig installiert, wenn Zero Install für alle Benutzer (Maschinen-weit) eingerichtet wurde. Zero Install verwendet den Dienst automatisch wenn er verfügbar ist (außer im Portable Modus) und wechselt auf den Benutzercache zurück wenn der Dienst nicht verfügbar ist.

Speicherorte

Der Dienst nutzt standardmäßig C:\ProgramData\0install.net\implementations (siehe Speicherorte) um Implementierungen zu speichern.
Ein alternativer Speicherorte kann in der Datei C:\ProgramData\0install.net\injector\implementation-dirs angegeben werden. Achten Sie beim Einsatz eines alternativen Speicherortes darauf, dass dieser nur von SYSTEM und Administratoren beschreibbar und von Jeder lesbar ist.

Technische Details

Zero Install kommuniziert mit dem Dienst über Named Pipes. Der Benutzerprozess lädt ein Archiv in ein temporäres Verzeichnis runter und übergibt dass dessen Dateipfad an den Dienst mit einer Entpackanfrage. Der Dienst entpackt das Archiv, verifiziert den Manifest Digest und fügt die Implementierung dem Cache hinzu. Während des gesamten Vorgangs meldet der Dienst den Fortschritt an den Benutzerprozess zurück.

Named Pipes erlauben es dem Dienst die Identität des aufrufenden Benutzers anzunehmen. Das Archive wird mit den Rechten des aufrufenden Benutzers gelesen und entpackt aber mit den Rechten des Dienstes verifiziert und dem Cache hinzugefügt.

Der Dienst zeichnet Schreibzugriffe auf den Cache sowie eventuelle Probleme in der Windows Ereignisanzeige auf.

Der Zero Install Store Dienst bietet Funktionalität für Windows, die ungefähr äquivalent zum store helper unter Linux ist.