2015-09-15 13 views
10

Gemäß den Windows-Installationsregeln sollten Programme unter C:\Program Files (64-Bit-Programm/x86-64) oder C:\Program Files (x86) (32-Bit-Programm/x86) installiert werden. Das Programm wird in einen Unterordner kopiert, der den Herstellernamen und den Programmnamen enthält.Warum installiert Chocolatey keine Pakete in `C: Programme `?

Aber warum installiert Chocolatey keine Pakete in C:\Program Files\<Vendor>\<Program>\?

10. Apps auf die richtigen Ordner standardmäßig
Benutzer eine konsistente und sichere Erfahrungen mit dem Standard-Installationsverzeichnis von Dateien, während die Option, eine App in der Lage installieren müssen, sollten ihre installieren Wahl. Es ist auch notwendig, App-Daten in der richtigen Position zu speichern, mehreren Personen zu ermöglichen, ohne verderblichen den gleichen Computer zu verwenden oder sie gegenseitig die Daten und Einstellungen zu überschreiben. Windows stellt bestimmte Orte im Dateisystem zum Speichern von Programmen und Software-Komponenten, gemeinsame App-Daten, und App-Daten für einen bestimmten Benutzer

10.1 Ihre Anwendung müssen standardmäßig im Ordner Programme installiert werden
Für native 32 -Bit- und 64-Bit-Anwendungen in% ProgramFiles% und% ProgramFiles (x86)% für 32-Bit-Anwendungen, die auf x64 ausgeführt werden. Benutzerdaten oder Anwendungsdaten dürfen aufgrund der Sicherheitsberechtigungen, die für diesen Ordner konfiguriert sind, niemals an diesem Speicherort gespeichert werden.

Quelle: Certification requirements for Windows desktop apps
Version: 10 (29. Juli 2015)

+0

Es gibt keine in Stein gemeißelt Regel für die '' -Teil. Es gibt nicht wirklich eine Regel, wo überhaupt installiert werden soll (obwohl spätere Versionen von Windows anscheinend einige verrückte Sachen erzwingen). Die einzige "Regel" ist, dass der Vorschlag für das Standardinstallationsverzeichnis die Umgebungsvariable programfiles verwendet (insbesondere wenn der Benutzer nicht auswählen kann, wo er installieren soll). * Einige Programme (wie LearnKeys (ironisch) und Asus Probe) brechen diese Regel und codieren den Pfad fest. Persönlich würde ich sehr wütend sein, wenn zum Beispiel konnte ich nicht meine Spiele in E installieren:/Games/neben meinem E:/Programme/.. – GitaarLAB

+0

@GitaarLAB Tatsächlich gibt es Zertifizierungsanforderungen geschrieben von Microsoft, der Staat zum Beispiel Wo werden standardmäßig Anwendungen installiert? Das bedeutet nicht, dass Sie das Verzeichnis in der GUI des Installationsprogramms oder durch Parameter ändern können, um beispielsweise eine andere Festplatte auszuwählen. Leider kann ich keine Dokumentversion für vor Windows 8.x "Desktop-Apps" finden. Ich bin sicher, es gab eine Regel für ' \ '. – Paebbels

+0

Großartige Ergänzung zu Ihrer Frage! (Vielleicht möchten Sie die Verzeichnisstruktur hinzufügen, die Chocolatey-Pakete für diejenigen verwenden, die das Programm nicht kennen). Aber ich Stick mit meinem Kommentar (keine Antwort): ca. 90% des (über 500) auf meinem PC installierten Programme (n) ist ohne hersteller Teil (und I * in der Regel * verwirrt nicht mit diesem Teil, ich verifiziere einfach, dass es kein naives, hartcodiertes, nicht spezifikationskonformes Installationsprogramm ist (eigentlich selten)). Die Schlüsselwörter in den Zitaten bezüglich der Zertifizierungsanforderungen, die Sie zu Ihrer Frage hinzugefügt haben, sind 'default' und '% ProgramFiles%' und '% ProgramFiles (x86)%' (was ich kommentiert habe). – GitaarLAB

Antwort

8

Es auf Ihrer Version von Chocolatey abhängt, ist es Einstellungen und die Pakete selbst.

zu starten, finden Sie unter Tools vs Anwendungen und Unterscheidung der Chocolatey ( https://github.com/chocolatey/chocolatey/wiki/ChocolateyFAQs am unten).

Wenn das Paket einen native Installer (ein Tool) nicht verwenden, hängt es von , wenn das Paket Autor des bin_root Konzept verwendet hat, die nach oben und kam in einer zukünftigen Version.

Zum Beispiel wird SysInternals jetzt auf c:/sysinternals gehen, es sei denn Sie haben eine definierte $env:chocolatey_bin_root Variable. Das Konzept in der Code auch ändern, wie jetzt das es erfordert ein Unterordner des Systemlaufwerkes sein, und ich sehe nicht, wir die endgültige Funktion mit dieser Einschränkung zu entwickeln.

Wenn das Paket dieses Konzept noch nicht hat, kann man immer den Paketautor bitten, es einzubauen.

Wenn das Paket eine native Installer verwendet (eine Anwendung) kann man verwenden installArgs auf Argumente zu dem nativen Installationsprogramm übergeben (https://github.com/chocolatey/chocolatey/wiki/CommandsInstall) und es das Verzeichnis sagen, um die Anwendung zu installieren. Dies erfordert Sie wissen, was Sie an das native Installationsprogramm übergeben müssen.Wenn Sie Ihre Anwendungen in einem benutzerdefinierten Verzeichnis möchten, gibt es eine Annahme, dass Sie bereits ein erfahrener Benutzer sind so zu erwarten ist, dass Sie würde wissen, was das Installationsprogramm zu übergeben, wenn Sie eine unbeaufsichtigte Installation taten. https://groups.google.com/forum/#!msg/chocolatey/uucAz8GxebA/HEPAKp69d90J

Auch

HINWEIS:

Etwas von paraphrasiert Ab 0.9.8.24, Verzugs des Chocolatey Installationsort ist C:\ProgramData\Chocolatey

Diese auf die Angriffsfläche reduziert eine lokale Installation von chocolatey und begrenzt, wer Änderungen am Verzeichnis vornehmen kann.

Quelle: https://github.com/chocolatey/chocolatey/wiki/DefaultChocolateyInstallReasoning

Und aus eigener Erfahrung kann ich bestätigen, dass das Konzept eine hervorragende Verteidigungslinie ist (wenn sie richtig konfiguriert wurde, verwendet und verstanden).

PS:
Wie Sie bereits in Ihrer Antwort hinzugefügt, technisch die Anforderung %ProgramFiles% und %ProgramFiles(x86)% Umgebungsvariable (n soweit zutreffend).
Zum Beispiel %ProgramFiles(x86)% und könnte zu P:\Software\Programs\x86\ (statt C:\Program Files (x86)\) zeigen. offensichtlich eine Menge von Legacy-Software
Es ist (jetzt (wieder) verpackt), die nie einen <vendor> Abschnitt in dem Pfadnamen.

Hoffe, das hilft!

+3

Ich glaube, ich habe meine Schuld gefunden. Ich dachte, dass NuGet/Chocolatey-Pakete Pakete wie * .deb-Pakete sind, aber es ist nur ein Wrapper für automatisches Herunterladen und stille Installation. Daher wird das Installationsverzeichnis weiterhin vom eingebetteten oder heruntergeladenen MSI-Installationsprogramm festgelegt. Whcih of cause kann ein Standardverzeichnis oder ein benutzerdefiniertes Verzeichnis verwenden. – Paebbels

+0

Ja, genau (das war, was ich versuchte, in meiner Antwort (mit dem Wort neu verpackt und die Zitate und Unterscheidung) zu skizzieren)). Froh, dass ich helfen konnte! – GitaarLAB

+0

Einige von ihnen sind. Wir tragen normalerweise die Unterscheidung, dass, wenn die zugrunde liegende Software in Programme und Funktionen auftaucht, sie zu Programmdateien geht. Wenn es sich bei der Software um ein Tool handelt, das als Zip-Datei bereitgestellt wird, ist es nicht auf dem Computer installiert, sodass keine Integration mit Microsoft-Standorten möglich ist. – ferventcoder

Verwandte Themen